import { OpenAPIV3 } from "openapi-types";
import { HttpBroker } from "../brokers/http/HttpBroker";
import { IBroker } from "../brokers/IBroker";
import { ParamDescription } from "../decorators";
import { BaseRouteDefinition, Class } from "../server";
export declare class SpecBuilder {
    private schemas;
    private paths;
    getServerPath(server: HttpBroker): {
        url: string;
        description: string;
        variables: {
            url: {
                default: string;
            };
        };
    };
    getSchemaPath(obj: Class<any> | any): string;
    registerRoute(def: BaseRouteDefinition, brokers: IBroker[], params: ParamDescription[]): void;
    getDocument(): OpenAPIV3.Document;
    private buildPathParams;
    private buildParam;
    private buildBodyParams;
    private buildHeaderParams;
    private buildQueryParams;
    private getObjectSchema;
    private extractPath;
    private extractParamNames;
    private getAllSchemas;
}
