import type { EnumType, IntersectionType, Method, Parameter, RefAliasType, RefEnumType, RefObjectType, ReferenceType, ResolverProperty, Response, UnionType } from '@trapi/metadata';
import { ParameterSource } from '@trapi/metadata';
import type { OperationV3, ParameterV3, ResponseV3, SchemaV3, SpecV3 } from '../../schema';
import { ParameterSourceV3 } from '../../schema';
import { AbstractSpecGenerator } from '../abstract';
export declare class V3Generator extends AbstractSpecGenerator<SpecV3, SchemaV3> {
    build(): Promise<SpecV3>;
    private buildComponents;
    private static translateSecurityDefinitions;
    private buildPaths;
    private buildMethod;
    private buildRequestBodyWithFormData;
    private buildRequestBody;
    private buildMediaType;
    protected buildResponses(input: Response[]): Record<string, ResponseV3>;
    protected buildOperation(controllerName: string, method: Method): OperationV3;
    protected transformParameterSource(source: `${ParameterSource}`): `${ParameterSourceV3}` | undefined;
    protected buildParameter(input: Parameter): ParameterV3;
    private transformParameterExamples;
    private buildServers;
    protected buildSchemaForRefObject(input: RefObjectType): SchemaV3;
    protected buildSchemaForRefEnum(referenceType: RefEnumType): SchemaV3;
    protected buildSchemaForRefAlias(referenceType: RefAliasType): SchemaV3;
    protected buildProperties<T>(properties: ResolverProperty[]): Record<string, SchemaV3>;
    protected getSchemaForIntersectionType(type: IntersectionType): SchemaV3;
    protected getSchemaForEnumType(enumType: EnumType): SchemaV3;
    protected getSchemaForReferenceType(referenceType: ReferenceType): SchemaV3;
    protected getSchemaForUnionType(type: UnionType): SchemaV3;
}
//# sourceMappingURL=module.d.ts.map