import { AbstractPropertyExpression, ColSpec, ColSpecArray, ColSpecArrayInstance, ColSpecInstanceValue, type ObserverContext, PRIMITIVE_TYPE, type PureModel, VariableExpression, SimpleFunctionExpression, type ValueSpecification, type CollectionInstanceValue, type PrimitiveInstanceValue } from '@finos/legend-graph';
export type LambdaBody = {
    function?: string;
    name?: string;
    parameters: LambdaBody[];
    _type: string;
    type?: string;
    value?: string | number | boolean | ColSpec | ColSpecArray;
    values?: LambdaBody[];
    body?: LambdaBody[];
    property?: string;
};
export declare class ParsedFunctionExpression {
    name: string;
    processedParameters: (CollectionInstanceValue | PrimitiveInstanceValue | AbstractPropertyExpression | ParsedFunctionExpression)[];
    constructor(name: string, processedParameters?: ParsedFunctionExpression['processedParameters']);
}
export declare class DataQualityLambdaParameterParser {
    static processPrimitiveParameter(param: LambdaBody, graph: PureModel, observerContext: ObserverContext): PrimitiveInstanceValue;
    static processVariableDeclaration(param: {
        name?: string;
    }): VariableExpression;
    static processColSpecArray(param: LambdaBody, observerContext: ObserverContext): ColSpecArrayInstance;
    static processColSpec(param: LambdaBody, observerContext: ObserverContext): ColSpecInstanceValue;
    static processPropertyParameter({ property, parameters }: LambdaBody, observerContext: ObserverContext): AbstractPropertyExpression;
    static processCollectionParameter({ values }: LambdaBody, graph: PureModel, observerContext: ObserverContext): CollectionInstanceValue;
    static processFunctionParameter({ parameters, function: name }: LambdaBody, graph: PureModel, observerContext: ObserverContext): ParsedFunctionExpression;
    static createSimpleFunctionExpression(name: string, parameters: ValueSpecification[], observerContext: ObserverContext): SimpleFunctionExpression;
    static isSupportedPrimitive(type: string): boolean;
    static getPrimitiveType(type: string): PRIMITIVE_TYPE;
    static validateLambdaParameter({ parameters, body }: LambdaBody): void;
}
//# sourceMappingURL=DataQualityLambdaParameterParser.d.ts.map