import { IFlowSchema } from "./index";
import { IJSONExpression } from "..";
import { IObjectType } from "./flow/composite/object";
import { ISimpleType } from "./flow/simple";
import { getDependencies } from "../jsonexpression";
import { IArrayType } from "./flow/composite/array";
declare type ICondPath = {
    expr: IJSONExpression;
    value: string | boolean | number;
}[];
export interface IBlockDetails {
    condPath: ICondPath;
    schema: ISimpleType | IObjectType | IArrayType;
    deps: ReturnType<typeof getDependencies>;
}
export interface IBlocks {
    [path: string]: {
        items: IBlockDetails[] | undefined;
        deps: IBlockDetails["deps"];
    } | undefined;
}
export declare function compileSchema(schema: IFlowSchema): IBlocks;
export {};
