import type { TerminalCompositor } from '../terminal-compositor.js'; import { OverlayComposer } from './overlay-composer.js'; import { createStageTracker } from '../commands/interactive/loop-stage.js'; import { type SourceState } from './stream-renderer-source.js'; import { type ChildActivityTracker } from './child-activity-select.js'; import type { ToolLane } from '../commands/interactive/tool-lane.js'; import type { ThinkingLane } from '../commands/interactive/thinking-lane.js'; import type { StreamingMarkdownRenderer } from '../markdown-stream.js'; import type { Writer } from '../slash/types.js'; import type { ProgressEvent } from '../../agent/types.js'; import { type TtfbTickCtx } from './stream-renderer-ttfb.js'; import { type SubagentStatusBarSpec } from '../render.js'; export interface LifecycleContext extends TtfbTickCtx { compositor: TerminalCompositor | null; overlayComposer: OverlayComposer | null; stageTracker: ReturnType; thinkingLane: ThinkingLane; toolLane: ToolLane; streamingMarkdownRef: { current: StreamingMarkdownRenderer | null; }; lastProgressByTask: Map; thinkingMode: 'off' | 'summary' | 'live' | 'digest'; out: Writer; sources: Map; pauseTickInterval: ReturnType | null; resizeUnsub: (() => void) | null; } export declare function registerOverlaySlots(overlayComposer: OverlayComposer, ctx: Readonly> & { sources?: ReadonlyMap; childActivity?: ChildActivityTracker; getInterrupting: () => boolean; getSoftStopping: () => boolean; getActiveSubagents?: () => ReadonlyMap; }): void; export declare function formatInterruptAffordance(interrupting: boolean): string; export declare function subscribeToResize(overlayComposer: OverlayComposer, disposed: boolean): () => void; export declare function checkPauseAnnotations(ctx: LifecycleContext): boolean;