import type { ReadonlyDeep } from 'type-fest';
import type { PipelineJson } from '../../pipeline/PipelineJson/PipelineJson';
import type { TaskJson } from '../../pipeline/PipelineJson/TaskJson';
import type { Parameters, ReservedParameters } from '../../types/Parameters';
import type { ExecutionTools } from '../ExecutionTools';
/**
 * Options for retrieving reserved parameters for a pipeline task, including context, pipeline, and identification.
 *
 * @private internal type of `getReservedParametersForTask`
 */
type GetReservedParametersForTaskOptions = {
    /**
     * The execution tools to be used during the execution of the pipeline
     */
    readonly tools: ExecutionTools;
    /**
     * The prepared and validated pipeline in which the task resides.
     */
    readonly preparedPipeline: ReadonlyDeep<PipelineJson>;
    /**
     * The task for which reserved parameters are being retrieved.
     */
    readonly task: ReadonlyDeep<TaskJson>;
    /**
     * Parameters to complete the content of the task for embedding and context.
     */
    readonly parameters: Readonly<Parameters>;
    /**
     * String identifier for the pipeline, used in error messages and reporting.
     */
    readonly pipelineIdentification: string;
    /**
     * If true, the preparation logs the reserved parameters for debugging purposes.
     */
    readonly isVerbose?: boolean;
};
/**
 * Retrieves all reserved parameters for a given pipeline task, including context, knowledge, examples, and metadata.
 * Ensures all reserved parameters are defined and throws if any are missing.
 *
 * @param options - Options including tools, pipeline, task, and context.
 * @returns An object containing all reserved parameters for the task.
 *
 * @private internal utility of `createPipelineExecutor`
 */
export declare function getReservedParametersForTask(options: GetReservedParametersForTaskOptions): Promise<Readonly<ReservedParameters>>;
export {};
