import { Entity, Structure, LogicItem, LEVEL_ENUM } from '../..';
import { NameGroup } from './utils';
export declare function genQueryStructure(allEntities: Array<Entity>, nameGroup: NameGroup): {
    level: string;
    ideVersion: string;
    editable: boolean;
    name: string;
    type: string;
    propertyList: {
        level: string;
        ideVersion: string;
        editable: boolean;
        name: string;
        $ref: string;
        _posIndex: number;
        typeKey: string;
    }[];
    serviceId: string;
    serviceType: string;
};
export declare function genQueryAssignment(allEntities: Array<Entity>, nameGroup: NameGroup, supportFilter: boolean, supportSort: boolean): {
    level: string;
    label: string;
    folded: boolean;
    type: string;
    operator: string;
    left: {
        level: string;
        parentAttr: string;
        folded: boolean;
        type: string;
        name: string;
    };
    right: {
        level: string;
        parentAttr: string;
        label: string;
        folded: boolean;
        type: string;
        structureRef: string;
        select: {
            level: string;
            parentAttr: string;
            label: string;
            folded: boolean;
            type: string;
            distinct: boolean;
            star: boolean;
            selectElementList: any[];
        };
        from: {
            level: string;
            parentAttr: string;
            folded: boolean;
            type: string;
            entityRef: string;
            joinPartList: {
                level: string;
                parentAttr: string;
                folded: boolean;
                type: string;
                joinType: string;
                entityRef: string;
                joinPartList: any[];
                popupOpened: boolean;
                onExpressionList: {
                    level: string;
                    parentAttr: string;
                    label: string;
                    folded: boolean;
                    type: string;
                    left: {
                        level: string;
                        parentAttr: string;
                        label: string;
                        folded: boolean;
                        type: string;
                        propertyRef: string;
                        joinPartRef: string;
                    };
                    right: {
                        level: string;
                        parentAttr: string;
                        label: string;
                        folded: boolean;
                        type: string;
                        propertyRef: string;
                        joinPartRef: string;
                    };
                    operator: string;
                }[];
                serviceId: string;
            }[];
        };
        where: object[];
        groupBy: any[];
        having: any[];
        orderBy: {
            level: string;
            type: string;
            label: string;
            order: {
                level: string;
                type: string;
                name: string;
            };
            orderElement: {
                level: string;
                type: string;
                name: string;
            };
        }[];
        logicName: string;
        serviceId: string;
        structureName: string;
        limit: {
            level: string;
            parentAttr: string;
            label: string;
            folded: boolean;
            type: string;
            pageElement: {
                level: string;
                parentAttr: string;
                folded: boolean;
                type: string;
                name: string;
            };
            pageSizeElement: {
                level: string;
                parentAttr: string;
                folded: boolean;
                type: string;
                name: string;
            };
        };
    };
};
export declare function genQueryInterface(allEntities: Array<Entity>, nameGroup: NameGroup, supportFilter: boolean, supportSort: boolean): {
    level: LEVEL_ENUM;
    name: string;
    path: string;
    method: string;
    description: string;
    entityId: string;
    serviceType: string;
    serviceId: string;
    parameters: string;
    requestBody: string;
    responses: string;
    logic: {
        level: string;
        name: string;
        description: string;
        moduleId: string;
        moduleType: string;
        params: {
            level: LEVEL_ENUM;
            type: string;
            name: string;
            description: string;
            schema: {
                type: string;
                format: string;
            };
            required: boolean;
            in: string;
        }[];
        returns: {
            level: LEVEL_ENUM;
            type: string;
            name: string;
            description: string;
            schema: {
                type: string;
                typeInstantiation: {
                    typeName: string;
                    typeParams: {
                        typeParamValue: {
                            $ref: string;
                        };
                        type: string;
                        typeParamName: string;
                    }[];
                };
            };
        }[];
        variables: any[];
        body: ({
            level: string;
            label: string;
            folded: boolean;
            type: string;
            operator: string;
            left: {
                level: string;
                parentAttr: string;
                folded: boolean;
                type: string;
                name: string;
            };
            right: {
                level: string;
                parentAttr: string;
                label: string;
                folded: boolean;
                type: string;
                structureRef: string;
                select: {
                    level: string;
                    parentAttr: string;
                    label: string;
                    folded: boolean;
                    type: string;
                    distinct: boolean;
                    star: boolean;
                    selectElementList: any[];
                };
                from: {
                    level: string;
                    parentAttr: string;
                    folded: boolean;
                    type: string;
                    entityRef: string;
                    joinPartList: {
                        level: string;
                        parentAttr: string;
                        folded: boolean;
                        type: string;
                        joinType: string;
                        entityRef: string;
                        joinPartList: any[];
                        popupOpened: boolean;
                        onExpressionList: {
                            level: string;
                            parentAttr: string;
                            label: string;
                            folded: boolean;
                            type: string;
                            left: {
                                level: string;
                                parentAttr: string;
                                label: string;
                                folded: boolean;
                                type: string;
                                propertyRef: string;
                                joinPartRef: string;
                            };
                            right: {
                                level: string;
                                parentAttr: string;
                                label: string;
                                folded: boolean;
                                type: string;
                                propertyRef: string;
                                joinPartRef: string;
                            };
                            operator: string;
                        }[];
                        serviceId: string;
                    }[];
                };
                where: object[];
                groupBy: any[];
                having: any[];
                orderBy: {
                    level: string;
                    type: string;
                    label: string;
                    order: {
                        level: string;
                        type: string;
                        name: string;
                    };
                    orderElement: {
                        level: string;
                        type: string;
                        name: string;
                    };
                }[];
                logicName: string;
                serviceId: string;
                structureName: string;
                limit: {
                    level: string;
                    parentAttr: string;
                    label: string;
                    folded: boolean;
                    type: string;
                    pageElement: {
                        level: string;
                        parentAttr: string;
                        folded: boolean;
                        type: string;
                        name: string;
                    };
                    pageSizeElement: {
                        level: string;
                        parentAttr: string;
                        folded: boolean;
                        type: string;
                        name: string;
                    };
                };
            };
        } | {
            level: string;
            label: string;
            folded: boolean;
            type: string;
        })[];
        playground: any[];
    };
};
export declare function joinEntity(callQueryComponent: LogicItem, entity: Entity, recordStructure: Structure): Promise<void>;
export default genQueryAssignment;
