import { C8yPact, C8yPactObject, C8yPactSaveKeys } from "../c8ypact";
import type { Har } from "har-format";
import { C8yPactDefaultFileAdapter } from "./fileadapter";
/**
 * Re-export HAR types from the official @types/har-format package.
 * @see http://www.softwareishard.com/blog/har-12-spec/
 */
export type { Har, Entry, Header, QueryString, PostData, Content, } from "har-format";
/**
 * C8yPactHARFileAdapter converts between C8yPact format and HAR (HTTP Archive) format.
 * This allows using external HAR tooling with C8yPact recordings.
 *
 * This adapter extends C8yPactDefaultFileAdapter to reuse folder management and utility
 * methods, but only supports .har file extension for reading and writing.
 *
 * When saving, pacts are converted to HAR format. When loading, HAR files are converted
 * back to C8yPact format. Some metadata may be stored in the comment fields to preserve
 * C8yPact-specific information.
 */
export declare class C8yPactHARFileAdapter extends C8yPactDefaultFileAdapter {
    protected readonly id: string;
    constructor(folder: string);
    description(): string;
    savePact(pact: C8yPact | Pick<C8yPact, C8yPactSaveKeys>): void;
    /**
     * Override parent's loadPactFromFile to handle HAR format conversion.
     * This is called by parent's loadPactObjects for each .har file found.
     */
    protected loadPactFromFile(filePath: string): C8yPactObject | null;
    /**
     * Override parent's loadPactObjects to use simpler glob pattern for .har files.
     * The parent's brace expansion pattern doesn't work well with single extensions.
     */
    protected loadPactObjects(): C8yPact[];
    /**
     * Convert a C8yPact object to HAR format
     */
    protected pactToHAR(pact: C8yPact): Har;
    /**
     * Convert a HAR format to C8yPact object
     */
    protected harToPact(har: Har, id: string): C8yPactObject | null;
}
