import { Entity, EntityProperty } from '..';
import Schema from './Schema';
export declare const ENTITY_STRUCTURE_PREFIX: string[];
export declare const ENTITY_INTERFACE_PREFIX: string[];
interface Parameter {
    name: string;
    in: string;
    required: boolean;
    schema: Schema;
    entityFieldId?: string;
    [name: string]: any;
}
declare type Parameters = {
    [name: string]: Parameter;
};
/**
 * 获取实体相关的所有数据结构的名称
 * @param entityName 实体名称
 */
export declare const getEntityStructureNames: (entityName: string) => string[];
/**
 * 获取实体相关的所有数据结构
 * @param entity 实体
 */
export declare function getEntityStructures(entity: Entity): ({
    name: string;
    type: string;
    propertyList: ({
        level: string;
        name: string;
        description: string;
        $ref: string;
        isArray: boolean;
    } | {
        level: string;
        name: string;
        description: string;
        $ref: string;
        isArray?: undefined;
    })[];
    structureRef?: undefined;
} | {
    name: string;
    type: string;
    propertyList: ({
        level: string;
        name: string;
        description: string;
        $ref: string;
        type?: undefined;
        format?: undefined;
    } | {
        level: string;
        name: string;
        description: string;
        type: string;
        format: string;
        $ref: string;
    })[];
    structureRef: string;
} | {
    name: string;
    type: string;
    propertyList: {
        level: string;
        name: string;
        $ref: string;
    }[];
    structureRef?: undefined;
})[];
/**
 * 获取实体相关的所有 GET 接口请求参数
 * @param entity 实体
 */
export declare function getEntityGetAllQueryParams(entity: Entity): Parameters;
/**
 * 获取实体某个属性相关的所有接口参数
 * @param property 实体属性
 * @param dataTypesMap
 */
export declare function getEntityPropertyParams(property: EntityProperty): Parameters;
/**
 * 获取实体相关的所有接口
 * @param entity 实体
 */
export declare function getEntityInterfaces(entity: Entity): ({
    data: {
        name: string;
        method: string;
        path: string;
        description: string;
        parameters: string;
        responses: string;
        requestBody?: undefined;
    };
    resolver: {
        ast: {
            type: string;
            object: {
                type: string;
                object: {
                    type: string;
                    name: string;
                };
                property: {
                    type: string;
                    name: string;
                };
            };
            property: {
                type: string;
                name: string;
            };
        };
        code: string;
    };
} | {
    data: {
        name: string;
        method: string;
        path: string;
        description: string;
        parameters: string;
        responses: string;
        requestBody?: undefined;
    };
    resolver: {
        ast: {
            type: string;
            object: {
                type: string;
                name: string;
            };
            property: {
                type: string;
                name: string;
            };
        };
        code: string;
    };
} | {
    data: {
        name: string;
        method: string;
        path: string;
        description: string;
        parameters: string;
        requestBody: string;
        responses: string;
    };
    resolver: {};
} | {
    data: {
        name: string;
        method: string;
        path: string;
        description: string;
        parameters: string;
        responses: string;
        requestBody?: undefined;
    };
    resolver: {};
})[];
export {};
