import type { PartialDeep, Promisable, ReadonlyDeep } from 'type-fest';
import type { PipelineJson } from '../../pipeline/PipelineJson/PipelineJson';
import type { InputParameters } from '../../types/typeAliases';
import type { PipelineExecutorResult } from '../PipelineExecutorResult';
import type { CreatePipelineExecutorOptions } from './00-CreatePipelineExecutorOptions';
/**
 * @@@
 *
 * @private internal type of `executePipeline`
 */
type ExecutePipelineOptions = Required<CreatePipelineExecutorOptions> & {
    /**
     * @@@
     */
    readonly inputParameters: Readonly<InputParameters>;
    /**
     * @@@
     */
    onProgress?(newOngoingResult: PartialDeep<PipelineExecutorResult>): Promisable<void>;
    /**
     * @@@
     */
    readonly pipeline: PipelineJson;
    /**
     * @@@
     */
    readonly preparedPipeline: ReadonlyDeep<PipelineJson>;
    /**
     * @@@
     */
    readonly setPreparedPipeline: (preparedPipeline: ReadonlyDeep<PipelineJson>) => void;
    /**
     * @@@
     */
    readonly pipelineIdentification: string;
};
/**
 * @@@
 *
 * Note: This is not a `PipelineExecutor` (which is binded with one exact pipeline), but a utility function of `createPipelineExecutor` which creates `PipelineExecutor`
 *
 * @private internal utility of `createPipelineExecutor`
 */
export declare function executePipeline(options: ExecutePipelineOptions): Promise<PipelineExecutorResult>;
export {};
