import { IFlowConfig, IPayload, IValidationResult } from "../helper";
import { IKeyPath } from "../../../helper/immutable";
import { IObjectPropertyAndCondition } from "../composite/object";
import { IJSONExpression } from "../../../jsonexpression";
export declare type ISwitchType<IData = {}, IContext = {}, A = {}, B = {}, C = {}, D = {}, E = {}, F = {}> = {
    type: "switch";
    blockId?: string;
    switch: IJSONExpression<IData, IContext>;
    cases: {
        [key: string]: IObjectPropertyAndCondition<IData, IContext, A, B, C, D, E, F>[];
    };
};
export declare type ISwitchPayload = IPayload & {
    refPath: IKeyPath;
};
export declare function validateSwitchCondition(schema: ISwitchType, payload: ISwitchPayload, config: IFlowConfig): IValidationResult;
