import { type ScopeValidationResult } from "./prepared-scope.js";
export interface ExecutionEntry {
    task: string;
    timestamp: string;
    tokensUsed: number;
    filesTouched: string[];
    success: boolean;
    duration: number | null;
    tool: string | null;
    confidence: string;
    runKey?: string;
    completionSource?: string | null;
    outOfScopeFiles?: string[];
    workflow?: string | null;
    workflowStepId?: string | null;
    skillsApplied?: string[];
    tokenSource?: "measured" | "estimated" | "none" | null;
}
export interface ExecutionLogState {
    artifactType: "kiwi-control/execution-log";
    version: 2;
    entries: ExecutionEntry[];
    totalExecutions: number;
    totalTokensUsed: number;
    averageTokensPerRun: number;
    successRate: number;
}
export interface ExecutionCompletionOptions {
    completionSource: string;
    confidence?: string | null;
    tokensUsed?: number | null;
    tool?: string | null;
}
export interface ExecutionCompletionResult {
    evaluated: boolean;
    recorded: boolean;
    validation: ScopeValidationResult | null;
    entry: ExecutionEntry | null;
    feedbackRecorded: boolean;
}
export declare function loadExecutionLog(targetRoot: string): Promise<ExecutionLogState>;
export declare function persistExecutionLog(targetRoot: string, state: ExecutionLogState): Promise<string>;
export declare function recordExecution(targetRoot: string, entry: Omit<ExecutionEntry, "timestamp">): Promise<ExecutionLogState>;
export declare function recordPreparedScopeCompletion(targetRoot: string, options: ExecutionCompletionOptions): Promise<ExecutionCompletionResult>;
export interface ExecutionSummary {
    totalExecutions: number;
    totalTokensUsed: number;
    averageTokensPerRun: number;
    successRate: number;
    recentExecutions: Array<{
        task: string;
        success: boolean;
        tokensUsed: number;
        filesTouched: number;
        tool: string | null;
        timestamp: string;
    }>;
    tokenTrend: "improving" | "stable" | "worsening" | "insufficient-data";
}
export declare function buildExecutionSummary(targetRoot: string): Promise<ExecutionSummary>;
//# sourceMappingURL=execution-log.d.ts.map