export interface ExecutionResult {
    executor: string;
    ok: boolean;
    projectName: string;
    artifactPath: string;
    stdout: string;
    stderr?: string;
    command: string[];
    exitCode?: number | null;
    signal?: NodeJS.Signals | null;
    startedAt?: string;
    finishedAt?: string;
    durationMs?: number;
    metadataPath?: string;
    status?: 'success' | 'partial' | 'failed';
    fallbackUsed?: boolean;
    providerUnavailable?: boolean;
    initRan?: boolean;
    selfEvalSummary?: string;
    commandProvenance?: string;
}
export type ExecutorKind = 'codex' | 'gemini' | 'claude' | 'openclaude';
export declare class TaskExecutor {
    private artifactsDir;
    private commandTimeoutMs;
    constructor();
    execute(kind: ExecutorKind, prompt: string, projectName: string): Promise<ExecutionResult>;
    executeWithCodex(prompt: string, projectName: string): Promise<ExecutionResult>;
    executeWithGemini(prompt: string, projectName: string): Promise<ExecutionResult>;
    executeWithClaude(prompt: string, projectName: string, cliName: 'claude' | 'openclaude'): Promise<ExecutionResult>;
    private ensureArtifactDir;
    private safeRead;
    private runShellCommand;
    private hasClaudeInit;
    private buildClaudeInitInstruction;
    private buildClaudeInitCommand;
    private buildClaudeExecCommand;
    private writeExecutionMetadata;
    private extractCodexFinalMessage;
    private extractGeminiFinalMessage;
    maskSensitiveText(text: string): string;
}
