import type { OpenAPIV3_1 } from "openapi-types";
import { type HttpMethod } from "./constants.js";
import type { ZuploOpenApiDocument, ZuploOpenApiPathsObject } from "./interfaces.js";
export declare const OPERATION_PATH_MERGE_DELIMITER = ">";
export declare const getOperationKey: (method: string, path: string) => string;
/**
 * Get all operation keys (method + path) from a paths object
 */
export declare const getAllOperationKeys: (pathsObject: ZuploOpenApiPathsObject | OpenAPIV3_1.PathsObject) => string[];
/**
 * Create an index of operations by their operationId
 *
 * @param openapiSpec The OpenAPI specification object
 * @returns A map of operationId -> { path, method }
 */
export declare const indexOperationsById: (openapiSpec: ZuploOpenApiDocument | OpenAPIV3_1.Document) => Record<string, {
    path: string;
    method: HttpMethod;
}>;
/**
 * Add operation ID to any operations that don't have one, this makes
 * onboarding smoother for new users
 */
export declare const addOperationIdsAsNecessary: (openApi: OpenAPIV3_1.Document | ZuploOpenApiDocument) => ZuploOpenApiDocument;
/**
 * Remove operations that don't have an operationId
 */
export declare const removeOperationsWithoutAnId: (openApi: OpenAPIV3_1.Document | ZuploOpenApiDocument) => ZuploOpenApiDocument;
//# sourceMappingURL=operation-utils.d.ts.map