import type { JDLRuntime } from '../types/runtime.js';
export declare const buildJDLAstBuilderVisitor: (runtime: JDLRuntime) => {
    prog(context: any): {
        applications: never[];
        deployments: never[];
        constants: {};
        entities: never[];
        relationships: never[];
        enums: never[];
        options: {};
        useOptions: never[];
    };
    constantDeclaration(context: any): {
        name: any;
        value: any;
    };
    entityDeclaration(context: any): {
        annotations: any[];
        name: any;
        tableName: any;
        body: never[];
        documentation: null;
    };
    annotationDeclaration(context: any): {
        optionName: any;
        type: string;
        optionValue?: undefined;
    } | {
        optionName: any;
        optionValue: any;
        type: string;
    };
    entityTableNameDeclaration(context: any): any;
    entityBody(context: any): any;
    fieldDeclaration(context: any): {
        name: any;
        type: any;
        validations: never[];
        documentation: any;
        annotations: any[];
    };
    type(context: any): any;
    validation(context: any): any;
    minMaxValidation(context: any): {
        key: any;
        value: any;
        constant: boolean;
    } | {
        key: any;
        value: any;
        constant?: undefined;
    };
    pattern(context: any): {
        key: string;
        value: any;
    };
    relationDeclaration(context: any): any;
    relationshipType(context: any): any;
    relationshipBody(context: any): {
        from: any;
        to: any;
        options: {
            global: any[];
            source: any;
            destination: any;
        };
    };
    relationshipSide(context: any): any;
    relationshipOptions(context: any): any;
    relationshipOption(context: any): {
        optionName: string;
        type: string;
    };
    enumDeclaration(context: any): {
        name: any;
        values: any;
        documentation: null;
    };
    enumPropList(context: any): any;
    enumProp(context: any): any;
    entityList(context: any): any[];
    exclusion(context: any): any;
    unaryOptionDeclaration(context: any): {
        optionName: any;
        list: any;
        excluded: never[];
    };
    binaryOptionDeclaration(context: any): {
        optionName: any;
        optionValue: any;
        list: any;
        excluded: never[];
    };
    useOptionDeclaration(context: any): {
        optionValues: any;
        list: any;
        excluded: never[];
    };
    filterDef(context: any): any[];
    comment(context: any): any;
    deploymentDeclaration(context: any): {};
    deploymentConfigDeclaration(context: any): {
        key: any;
        value: any;
    };
    deploymentConfigValue(context: any): any;
    applicationDeclaration(context: any): any;
    applicationSubDeclaration(context: any): {
        config: any;
        namespaceConfigs: Record<string, Record<string, any>>;
        entities: {
            entityList: any[];
            excluded: any[];
        };
        options: any;
        useOptions: any[];
    };
    applicationSubNamespaceConfig(context: any): {
        namespace: any;
        config: any;
    };
    applicationNamespaceConfigDeclaration(context: any): {
        key: any;
        value: any;
    };
    namespaceConfigValue(context: any): any;
    applicationSubConfig(context: any): any;
    applicationSubEntities(context: any): any;
    applicationConfigDeclaration(context: any): {
        key: any;
        value: any;
    };
    configValue(context: any): any;
    qualifiedName(context: any): any;
    list(context: any): any;
    quotedList(context: any): any;
    visit(cstNode: import("chevrotain").CstNode | import("chevrotain").CstNode[], param?: any): any;
    validateVisitor(): void;
};
