import { type StdinClaimHandle } from './input/stdin-claim.js'; import type { SpinnerController } from './input/spinner.js'; import type { CaretBlinkController } from './input/caret-blink.js'; import type { SuggestEngine } from './terminal-compositor.types.js'; import type { BandRowMeta, CompositorScrollRegionGuard, KeyInfo, LogUpdateFn } from './terminal-compositor.types.js'; import type { KeyDispatchHost } from './terminal-compositor.input-dispatch.js'; export interface LifecycleHost { repaint(): void; resetState(): void; readonly repaintCount: number; readonly stdout: NodeJS.WriteStream; readonly stdin: NodeJS.ReadStream; armed: boolean; suspended: boolean; wasRaw: boolean; stdinClaim: StdinClaimHandle | null; handleKeypress: ((char: string | undefined, key: KeyInfo) => void) | null; resizeUnsub: (() => void) | null; resizeImmediateUnsub: (() => void) | null; disarmRows: number; logUpdate: LogUpdateFn | null; readonly scrollRegion?: CompositorScrollRegionGuard; anchorRow: number | undefined; declaredAnchorRow: number | undefined; canceled: boolean; readonly spinnerController: SpinnerController; readonly caretBlinkController: CaretBlinkController; readonly ghostEngine: SuggestEngine | undefined; lastKnownRows: number; pendingResizeErase: { top: number; bottom: number; } | null; readonly committedBand: string[]; readonly committedBandMeta: BandRowMeta[]; readonly committedBandTopRow: number; readonly committedBandBottomRow: number; readonly committedBandPaintedRows: number; bandGeometryStale: boolean; lifecycleStateDirty: boolean; clearCommittedBand(): void; } export declare function suspendInput(self: LifecycleHost): void; export declare function resumeInput(self: LifecycleHost): void; export declare function arm(self: LifecycleHost & KeyDispatchHost): Promise; export declare function disarm(self: LifecycleHost): void; export declare function endTurnFlush(self: LifecycleHost): void;