export type HerdrState = "idle" | "working" | "blocked"; /** The saved session in the pane, and the command that reopens it. */ export type HerdrSession = { id: string; resumeArgv: string[]; }; export type HerdrReporter = { /** Report a state in the background. A repeat of the last report is dropped. */ report: (state: HerdrState, message?: string) => void; /** Report blocked while `wait` runs, then working. */ whileBlocked: (message: string, wait: () => Promise) => Promise; /** The session in the pane. It goes out with every later report, unless * Herdr has refused a resume command in this run. */ setSession: (session: HerdrSession) => void; /** Clear the agent from the pane. Resolves once Herdr answers or the report times out. */ release: () => Promise; }; /** A reporter that shows this program in Herdr as `name`. It does nothing * outside Herdr, or when `name` is empty. */ export declare function herdrReporter(env: Record, name: string): HerdrReporter;