interface AgentState { present: boolean; enabled: boolean; replacePlan: boolean | null; promptAppendConfigured: boolean; } interface ApprovalWhitelistState { present: boolean; enabled: boolean; mode: string; hostPermissionMode: string; readOnlyCommands: string[]; writeAllowPaths: string[]; denyPaths: string[]; denyCommands: string[]; configured: boolean; } export interface OpenCodeEnvironment { workspaceRoot: string; opencodeDir: string; opencodeDirExists: boolean; configPath: string; configExists: boolean; configStatus: string; configError: string; examplePath: string; exampleExists: boolean; mode: string; recommendedAgentsReady: boolean; enabledAgents: string[]; agents: Record; backgroundTasksConfigured: boolean; autoResumeEnabled: boolean; approvalWhitelist: ApprovalWhitelistState; watchdogSuperviseReady: boolean; autonomyReady: boolean; approvalWhitelistHelperPath: string; approvalWhitelistHelperExists: boolean; approvalWhitelistRunnerPath: string; approvalWhitelistRunnerExists: boolean; approvalWhitelistWatchdogPath: string; approvalWhitelistWatchdogExists: boolean; tmuxScanHelperPath: string; tmuxScanHelperExists: boolean; tmuxRescueHelperPath: string; tmuxRescueHelperExists: boolean; rel: { opencodeDir: string; configPath: string; examplePath: string; approvalWhitelistHelperPath: string; approvalWhitelistRunnerPath: string; approvalWhitelistWatchdogPath: string; tmuxScanHelperPath: string; tmuxRescueHelperPath: string; }; } export declare function detectOpenCodeEnvironment(workspaceRoot: string): Promise; export {};