import type { SessionActivity } from "./activity.js"; import type { HerdrEnvironment } from "./environment.js"; import { type HerdrDiagnostic } from "./transport.js"; export interface PaneIdentity { id: string; path?: string; resume?: string[]; } export interface PaneReportingOptions { clock?: () => number; timeoutMs?: number; diagnostic?: (diagnostic: HerdrDiagnostic) => void; } export interface PaneOwner { environment: HerdrEnvironment; identity: PaneIdentity; options: PaneReportingOptions; status: "active" | "releasing" | "retired"; seq: number; identitySent: boolean; resumeUnsupported: boolean; lastDeliveredActivity?: SessionActivity; pending?: { activity: SessionActivity; skipUnchanged: boolean; }; flight?: Promise; release?: Promise; flush(): Promise; } export declare function claimPaneReporting(environment: HerdrEnvironment, identity: PaneIdentity, options?: PaneReportingOptions): Promise; export declare function reportPaneActivity(owner: PaneOwner, activity: SessionActivity, skipUnchanged?: boolean): void; /** Fence and drain a local reporter without unregistering the still-running agent. */ export declare function retirePaneReporting(owner: PaneOwner): Promise; export declare function releasePaneReporting(owner: PaneOwner): Promise; /** * Clears Atomic's registration in this pane when no reporter can: an explicit quit the engine child never recorded, * because it was stopped mid-recovery or did not answer, would otherwise leave the conversation eligible for restore. */ export declare function releaseUnownedPaneRegistration(environment: HerdrEnvironment, options?: PaneReportingOptions): Promise; //# sourceMappingURL=pane-owner.d.ts.map