/** * JQHTML v2 Lifecycle Manager * * Components boot when created. Boot is the first entry on the component's lifecycle * queue (component-queue.ts): it holds the component's lock from boot start through the * end of its on_ready(), so a render()/load()/reload()/refresh() made meanwhile - * on_ready() included - waits and runs after it. When calls are waiting as boot ends, * 'ready' fires once they have run (the queue is idle). * * Lifecycle order: * 1. create() - SYNC - Calls on_create() BEFORE first render * 2. render() - SYNC - Creates DOM, instantiates child components, calls on_render() * 3. _load() - ASYNC - Calls on_load() if overridden, may trigger re-render if this.data changes. * Every component then gets on_loaded() and 'loaded' (without on_load(), at this point). * 4. ready() - ASYNC - Waits for children to be ready, calls on_ready() * * Key insight: create/render/on_render are synchronous. If a component doesn't * override on_load(), the entire create→render→on_render chain completes without * yielding to the event loop. This means parent components can access child * components in their on_render() as long as the children don't have async on_load(). */ import type { Jqhtml_Component } from './component.js'; export type LifecyclePhase = 'render' | 'create' | 'load' | 'ready'; export declare class LifecycleManager { private static instance; static get_instance(): LifecycleManager; constructor(); /** * Boot a component - run its full lifecycle * Called when component is created * * Supports lifecycle truncation flags: * - _load_only: on_create + on_load only. No render, no children, no on_render, no on_loaded/'loaded', no on_ready. * - _load_render_only: on_create + render + on_load + re-render. No on_render, no on_loaded/'loaded', no on_ready. */ boot_component(component: Jqhtml_Component): Promise; } //# sourceMappingURL=lifecycle-manager.d.ts.map