import { RenderResult } from "./types.js";

//#region src/core/lifecycle.d.ts
interface LifecycleHost {
  dispatch(callback: () => boolean): void;
  mount(child: LifecycleChild): void;
  unmount(): void;
}
interface LifecycleChild {
  devStrictMode?: boolean;
  setVersion(version: number): void;
  render(): RenderResult;
  commit(render: RenderResult): void;
}
declare class SchedulerLifecycleHost implements LifecycleHost {
  private _scheduler;
  private _queue;
  private _isMounted;
  private _child;
  constructor();
  private _handleUpdate;
  dispatch(callback: () => boolean): void;
  mount(child: LifecycleChild): void;
  unmount(): void;
}
declare class CompositeHookLifecycle {
  private _hosts;
  private _child;
  private _scheduler;
  private _version;
  get version(): number;
  mount(rawChild: LifecycleChild): void;
  unmount(): void;
  dispatch(callback: () => boolean): void;
  registerHost(host: LifecycleHost): () => void;
}
//#endregion
export { CompositeHookLifecycle, LifecycleChild, LifecycleHost, SchedulerLifecycleHost };
//# sourceMappingURL=lifecycle.d.ts.map