import { Class, Extension, GuardItem, HttpMethod, InjectionToken } from '@ditsmod/core';
import { HttpInterceptor } from '@ditsmod/routing';
import { XOperationObject } from '@ts-stack/openapi-spec';
/**
 * This route metadata has a `guards` property.
 */
export interface OasRouteMetadata {
    httpMethod: HttpMethod | [HttpMethod, ...HttpMethod[]];
    path: string;
    guards: GuardItem[];
    interceptors: (Class<HttpInterceptor> | InjectionToken<Extension[]>)[];
    /**
     * OAS `OperationObject`.
     */
    operationObject: XOperationObject;
}
/**
 * Open API Specification Route.
 */
export declare const oasRoute: OasRouteInterface;
interface OasRouteInterface {
    (httpMethod: HttpMethod | [HttpMethod, ...HttpMethod[]], path: string, guards: GuardItem[], interceptors: (Class<HttpInterceptor> | InjectionToken<Extension[]>)[], operationObject: XOperationObject): any;
    (httpMethod: HttpMethod | [HttpMethod, ...HttpMethod[]], path: string, guards: GuardItem[], interceptorsOrOperationObj?: XOperationObject | (Class<HttpInterceptor> | InjectionToken<Extension[]>)[]): any;
    (httpMethod: HttpMethod | [HttpMethod, ...HttpMethod[]], path?: string, guardsOrOperationObj?: XOperationObject | GuardItem[]): any;
}
export {};
//# sourceMappingURL=oas-route.d.ts.map