import type { PipelineJson } from '../../pipeline/PipelineJson/PipelineJson';
/**
 * Validates PipelineJson if it is logically valid
 *
 * It checks:
 * -   if it has correct parameters dependency
 *
 * It does NOT check:
 * -   if it is valid json
 * -   if it is meaningful
 *
 * Note: [🔂] This function is idempotent.
 *
 * @param pipeline valid or invalid PipelineJson
 * @returns the same pipeline if it is logically valid
 * @throws {PipelineLogicError} on logical error in the pipeline
 *
 * @public exported from `@promptbook/core`
 */
export declare function validatePipeline(pipeline: PipelineJson): PipelineJson;
/**
 * Validates pipeline inner function.
 *
 * @private internal function for `validatePipeline`
 */
export declare function validatePipeline_InnerFunction(pipeline: PipelineJson): void;
/**
 * TODO: [🧞‍♀️] Do not allow joker + foreach
 * TODO: [🧠] Work with promptbookVersion
 * TODO: Use here some json-schema, Zod or something similar and change it to:
 *     > /**
 *     >  * Validates PipelineJson if it is logically valid.
 *     >  *
 *     >  * It checks:
 *     >  * -   it has a valid structure
 *     >  * -   ...
 *     >  ex port function validatePipeline(promptbook: really_unknown): asserts promptbook is PipelineJson {
 */
