import type { SessionContextRecord } from "../state/state-types"; import type { SessionLifecycle } from "./session-lifecycle"; type ChorusReadinessStateStore = { readOpenCodeState(): Promise<{ sessionContext?: SessionContextRecord; }>; readSharedState?(): Promise<{ context?: { projectUuid?: string; projectGroupUuid?: string; }; }>; updateOpenCodeState(updater: (state: Record) => Record): Promise; setActivated?(activated: boolean): void; }; type ChorusReadinessClient = { callTool(name: string, args?: Record): Promise; }; type ChorusReadinessBridge = { refresh(): Promise; }; type ChorusReadinessTui = { showToast(input: { title?: string; message?: string; variant?: "info" | "success" | "warning" | "error"; duration?: number; }): Promise; }; export type ChorusReadinessOptions = { sessionLifecycle: SessionLifecycle; chorusClient: ChorusReadinessClient; stateStore: ChorusReadinessStateStore; lazyBridge: ChorusReadinessBridge; onReady?: (sessionId: string) => Promise; tui?: ChorusReadinessTui; directory: string; enableSessionContextSummary?: boolean; logger?: { info(message: string): Promise; }; stagingDir?: string; }; export declare class ChorusReadiness { private readonly options; private doneSessionIds; private inFlightReadiness; private hasShownConnectionToast; constructor(options: ChorusReadinessOptions); ensureReady(sessionId: string, mode: "visible" | "silent"): Promise; markSessionEnded(sessionId: string): void; showConnectionToast(): Promise; private runReadiness; private resolveProjectGroupName; private resolveBoundProjectUuid; private detectOpenSpec; private showToast; } export declare function formatPermissions(permissions: SessionContextRecord["agent"] extends infer T ? T extends { permissions?: infer P; } ? P | undefined : never : never): string; export declare function filterProjectsByBinding(projects: SessionContextRecord["projects"], boundProjectUuid: string | undefined): SessionContextRecord["projects"]; export declare function buildProjectScopeStr(projects: SessionContextRecord["projects"], projectGroupName?: string): string; export {};