import { Extension, HttpMethod, AppOptions, MetadataPerMod2 } from '@ditsmod/core';
import { ControllerMetadata, MetadataPerMod3, RoutesExtension } from '@ditsmod/routing';
import { ReferenceObject, XParameterObject } from '@ts-stack/openapi-spec';
import { OpenapiErrorMediator } from '../services/openapi-error-mediator.js';
export declare class OpenapiRoutesExtension extends RoutesExtension implements Extension<MetadataPerMod3> {
    protected appOptions: AppOptions;
    protected metadataPerMod2: MetadataPerMod2;
    protected errMediator: OpenapiErrorMediator;
    constructor(appOptions: AppOptions, metadataPerMod2: MetadataPerMod2, errMediator: OpenapiErrorMediator);
    protected getControllersMetadata(prefixPerApp: string, metadataPerMod2: MetadataPerMod2): ControllerMetadata[];
    protected mergeParams(httpMethods: HttpMethod[], path: string, controllerName: string, prefixParams?: (XParameterObject<any> | ReferenceObject)[], params?: (XParameterObject<any> | ReferenceObject)[]): {
        paramsRefs: ReferenceObject[];
        paramsInPath: import("@ts-stack/openapi-spec").ParameterObject[];
        paramsNonPath: import("@ts-stack/openapi-spec").ParameterObject[];
    };
    protected bindParams(httpMethod: HttpMethod, path: string, paramsNonPath: XParameterObject[], param: XParameterObject): void;
    protected boundToPathOk(path: string, boundToLastParam: boolean): boolean;
    /**
     * Transform from `path/:param` to `path/{param}`.
     */
    protected transformToOasPath(moduleName: string, path: string, paramsInPath: XParameterObject[]): string;
}
//# sourceMappingURL=openapi-routes.extension.d.ts.map