import { OpenAPIV3 } from 'openapi-types';
import { Request } from 'express';
import { JSFOptions, JSF, JSFCallback } from '../utils';
import { Operation } from './operation';
type SecuritySchemes = {
    [key: string]: OpenAPIV3.SecuritySchemeObject;
};
export declare class Operations {
    operations: Operation[] | null;
    spec: string | OpenAPIV3.Document;
    generator: JSF;
    constructor({ spec, options, callback, }: {
        spec: string | OpenAPIV3.Document;
        options: Partial<JSFOptions>;
        callback?: JSFCallback;
    });
    reset(): void;
    watch(): void;
    compile(): Promise<void>;
    compileFromPath(pathName: string, pathOperations: OpenAPIV3.PathItemObject, securitySchemes?: SecuritySchemes): Operation[];
    match(req: Request): Promise<Operation | null>;
}
export declare const createOperations: ({ spec, options, callback, }: {
    spec: string | OpenAPIV3.Document;
    options: Partial<JSFOptions>;
    callback?: JSFCallback;
}) => Operations;
export {};
