import { type CloneWirePolicy, type RepoCredential } from './repo-credential.js'; export type RunCheckoutMode = 'reuse' | 'fresh'; export interface RunRepoSpec { url: string; branch?: string; credential?: RepoCredential | null; clone_policy?: CloneWirePolicy | null; } export type RunProvisionKind = 'qa' | 'security' | 'action' | 'chat' | 'orchestration'; export interface RunCompletionRoute { getTool: 'get_qa_run' | 'get_security_run' | null; completeTool: 'complete_qa_run' | 'complete_security_run' | 'complete_action_run'; failureStatus: 'error' | 'failed'; } export declare function resolveRunCompletionRoute(kind: 'qa' | 'security' | 'action'): RunCompletionRoute; export interface RunProvision { kind: RunProvisionKind; run_id: string; workspace_id: string; workspace_folder: string; checkout_mode: RunCheckoutMode; repo: RunRepoSpec | null; } export interface RunProvisionResult { ok: boolean; dir: string; steps: string[]; notes?: string[]; error?: string; } export declare function parseRunProvision(raw: unknown): RunProvision | null; export interface RunBaseReconcile { base: string; drifted: boolean; serverAuthoritative: boolean; } export declare function reconcileRunBaseWorkingDir(cachedCwd: string, serverWorkingDir: string | null | undefined): RunBaseReconcile; export declare function resolveRunFolder(p: RunProvision, baseWorkingDir: string): string; export declare function provisionRunWorkspace(p: RunProvision, baseWorkingDir: string): Promise;