import type { IRender } from "../render/render_interface"; import { type ViewRecord } from "./internal_view"; import type { Wildcard } from "./wildcard"; import { type Maybe } from "../functional/maybe"; import type { Key } from "../functional/key"; import type { SlotContent, ViewFn } from "../public/view"; export type Scheduler = (callback: () => void) => void; export declare class Engine { #private; renderer: IRender; constructor(renderer: IRender, scheduler?: Scheduler); newView(viewFn: ViewFn, parent: Maybe, props: Props, slot: Maybe, userKey: Maybe): ViewRecord; view(viewFn: ViewFn, props: Props, slot: Maybe, userKey: Maybe): ViewRecord; views(views: Maybe): void; initViewBody(view: ViewRecord): void; createRoot(children: () => void, props: Wildcard): ViewRecord; markDirty(view: ViewRecord): void; markMoved(view: ViewRecord): void; schedule(): void; nextProps(view: ViewRecord, nextProps: Props, nextSlot: Maybe, preCollectedSc?: Maybe): void; reconcile(view: ViewRecord): void; dispose(view: ViewRecord): void; render(): void; }