export interface HerdrStatusBridgeEvents { on(event: string, handler: (data: unknown) => void): (() => void) | undefined; emit(event: string, data: unknown): void; } export interface HerdrStatusRun { id: string; agent?: string; agents?: string[]; needsAttention?: boolean; attentionLabel?: string; } export interface HerdrStatusBridgeOptions { events: HerdrStatusBridgeEvents; env?: Record; /** Current authoritative active-run projection, used before TTL refresh. */ getRuns?: () => Iterable; runHerdr: (args: readonly string[]) => void | Promise; ttlMs?: number; refreshMs?: number; timers?: { setInterval: typeof setInterval; clearInterval: typeof clearInterval; }; } export interface HerdrStatusBridge { /** * Binds the pane owner. Only the root interactive session may publish pane * metadata: headless parents (print/json), non-UI harnesses, and child * runtimes must never fight the pane's lifecycle authority over display * state. Also re-syncs runs that survived a reload/resume. */ sessionStarted(input: { hasUI: boolean; runs: Iterable; }): void; agentStarted(): void; flush(): Promise; dispose(): void; } export declare function registerHerdrStatusBridge(options: HerdrStatusBridgeOptions): HerdrStatusBridge; //# sourceMappingURL=herdr-status.d.ts.map