import type { Promisable, ReadonlyDeep, WritableDeep } from 'type-fest';
import type { TaskJson } from '../../pipeline/PipelineJson/TaskJson';
import type { LlmCall } from '../../types/LlmCall';
import type { ExecutionReportJson } from '../execution-report/ExecutionReportJson';
import type { $OngoingTaskResult } from './$OngoingTaskResult';
/**
 * Appends the prompt execution report for prompt-task attempts.
 *
 * @private function of `executeAttempts`
 */
export declare function reportPromptExecution(options: {
    /**
     * Metadata describing the current loop iteration.
     */
    readonly attempt: {
        readonly isJokerAttempt: boolean;
    };
    /**
     * Task currently being executed.
     */
    readonly task: ReadonlyDeep<TaskJson>;
    /**
     * Mutable execution report object to append prompt execution data to.
     */
    readonly $executionReport: WritableDeep<ExecutionReportJson>;
    /**
     * Optional callback invoked with each LLM call.
     */
    logLlmCall?(llmCall: LlmCall): Promisable<void>;
    /**
     * Mutable per-task execution state.
     */
    readonly $ongoingTaskResult: $OngoingTaskResult;
}): void;
