import type { OpenAPIV3_1 } from 'openapi-types'; import type { WhookOperation } from '@whook/http-transaction'; export declare const OPEN_API_METHODS: string[]; export type WhookRawOperation> = OpenAPIV3_1.OperationObject<{ path: string; method: string; 'x-whook'?: T; }>; export type SupportedSecurityScheme = OpenAPIV3_1.HttpSecurityScheme | OpenAPIV3_1.ApiKeySecurityScheme | OpenAPIV3_1.OAuth2SecurityScheme; /** * Return a OpenAPI operation in a more * convenient way to iterate onto its * operations * @param {Object} API * The flattened OpenAPI defition * @return {Array} * An array of all the OpenAPI operations * @example * getOpenAPIOperations(API) * .map((operation) => { * const { path, method, operationId, parameters } = operation; * * // Do something with that operation * }); */ export declare function getOpenAPIOperations>(API: OpenAPIV3_1.Document): WhookRawOperation[]; /** * Dereference API operations and transform OpenAPISchemas * into JSONSchemas * @param {Object} API * An OpenAPI object * @param {Object} operations * The OpenAPI operation objects * @return {Object} * The dereferenced OpenAPI operations */ export declare function dereferenceOpenAPIOperations>(API: OpenAPIV3_1.Document, operations: WhookRawOperation[]): Promise[]>; export declare function pickupOperationSecuritySchemes(openAPI: OpenAPIV3_1.Document, operation: WhookOperation): { [name: string]: SupportedSecurityScheme; };