export type HerdrPaneAction = "live"; export type HerdrAgentState = "idle" | "working" | "blocked" | "unknown"; export type HerdrAgentStatus = HerdrAgentState | "done"; export interface HerdrPaneStatus { state: HerdrAgentStatus; } export interface HerdrPaneRequest { action: HerdrPaneAction; cwd: string; command: string; paneId?: string; } export interface HerdrWorkspacePaneRequest { cwd: string; workspaceLabel?: string; workspaceId?: string; tabLabel: string; command: string; } export interface HerdrWorkspacePane { workspaceId: string; tabId: string; paneId: string; } export type HerdrCommandRunner = (args: readonly string[]) => Promise; export declare const herdrCommandRunner: HerdrCommandRunner; export declare function herdrPaneId(env?: NodeJS.ProcessEnv): string | undefined; export declare function herdrAvailable(env?: NodeJS.ProcessEnv): boolean; export declare function herdrPaneCommand(request: HerdrPaneRequest): string; export declare function openHerdrPane(request: HerdrPaneRequest, runner?: HerdrCommandRunner): Promise; export declare function openHerdrWorkspacePane(request: HerdrWorkspacePaneRequest, runner?: HerdrCommandRunner): Promise; export declare function openHerdrLivePane(request: HerdrPaneRequest | HerdrWorkspacePaneRequest, runner?: HerdrCommandRunner): Promise; export declare function waitForHerdrPane(paneId: string, runner?: HerdrCommandRunner, options?: { signal?: AbortSignal; intervalMs?: number; startupTimeoutMs?: number; originatingEntrypoint?: string; onStatus?: (state: HerdrAgentStatus) => void | Promise; }): Promise<"closed" | "exited" | "idle" | "aborted">; export interface HerdrAgentReporter { reportSession(session: { sessionId?: string; sessionPath?: string; }, sessionStartSource?: string): Promise; reportState(state: HerdrAgentState, message?: string, session?: { sessionId?: string; sessionPath?: string; }): Promise; release(): Promise; } export declare function createHerdrAgentReporter(paneId: string, agent: string, runner?: HerdrCommandRunner): HerdrAgentReporter;