export interface RendererHandle { start(): void | Promise; destroy(): void | Promise; } export interface ProcessLike { on(event: string, listener: (...args: unknown[]) => void): unknown; off(event: string, listener: (...args: unknown[]) => void): unknown; exit(code?: number): void; } export type Disposer = () => void | Promise; export interface LifecycleOptions { readonly handle: RendererHandle; readonly process?: ProcessLike | undefined; readonly disposers?: readonly Disposer[] | undefined; readonly onError?: ((error: unknown) => void) | undefined; readonly onSigint?: (() => void) | undefined; readonly epilogue?: (() => void | Promise) | undefined; } export declare const SIGINT_QUIT_WINDOW_MS = 1500; export declare class RendererLifecycle { private readonly options; private readonly proc; private readonly disposers; private started; private shuttingDown; private shutdownPromise; private destroyed; private epilogueRan; private lastSigintAt; private readonly listeners; constructor(options: LifecycleOptions); get isDestroyed(): boolean; start(): Promise; shutdown(): Promise; private runShutdown; private runEpilogue; shutdownAndExit(code: number): Promise; private installHandlers; private addListener; private removeHandlers; }