import type { OpenAPIV3_1 } from "openapi-types";
import { type ZuploOpenApiDocument } from "./interfaces.js";
export type MergeMode = "operation-id" | "path-method";
export interface MergeOptions {
    /**
     * The merge strategy to use
     */
    mergeMode: MergeMode;
    /**
     * Extract the pathname from the first server URL and prepend it to all paths
     */
    prependServerPath?: boolean;
    /**
     * A custom pathname to prepend to all paths
     * Takes precedence over prependServerPath
     */
    prependPath?: string;
}
export declare const mergeOpenApiDocuments: (originalDocument: ZuploOpenApiDocument, newDocument: OpenAPIV3_1.Document | ZuploOpenApiDocument, options: MergeMode | MergeOptions) => {
    mergedDocument: ZuploOpenApiDocument;
    created: Set<string>;
    merged: Set<string>;
    retained: Set<string>;
};
export declare const mergeOpenApiDocumentOnOperationId: (originalDocument: ZuploOpenApiDocument, newDocument: ZuploOpenApiDocument | OpenAPIV3_1.Document) => {
    mergedDocument: ZuploOpenApiDocument;
    created: Set<string>;
    merged: Set<string>;
    retained: Set<string>;
};
export declare const mergeOpenApiDocumentOnPathMethod: (originalDocument: ZuploOpenApiDocument, newDocument: ZuploOpenApiDocument | OpenAPIV3_1.Document) => {
    mergedDocument: ZuploOpenApiDocument;
    created: Set<string>;
    merged: Set<string>;
    retained: Set<string>;
};
//# sourceMappingURL=merge.d.ts.map