import type { Page } from 'playwright';
import type { BddUiConfig } from '../support/config';
export interface CapturedJsonResponse {
    body: unknown;
    status?: number;
    url?: string;
}
export interface ComparatorArgsOptions {
    expectedPath: string;
    actualPath: string;
    output?: 'text' | 'json';
    parentObject?: string;
    primaryKey?: string;
    ignore?: string;
    fields?: string;
    thresholdConfig?: string;
    healthCheck?: boolean;
    failOnExtra?: string;
}
export interface CompareCapturedResponseOptions {
    config: BddUiConfig;
    featureName: string | undefined;
    expectedResult: string;
    capturedResponse: CapturedJsonResponse | undefined;
    parentObject?: string;
    primaryKey?: string;
    ignore?: string;
    fields?: string;
    thresholdConfig?: string;
    healthCheck?: boolean;
    failOnExtra?: string;
    cwd?: string;
}
interface CompareCapturedResponseDependencies {
    packageRoot?: string;
    runComparator?: (jarPath: string, args: string[]) => Promise<ComparatorRunResult>;
}
interface ComparatorRunResult {
    exitCode: number;
    stdout: string;
    stderr: string;
}
export declare function captureJsonResponse(page: Pick<Page, 'waitForResponse'>, match: string, trigger: () => Promise<void> | void): Promise<CapturedJsonResponse>;
export declare function resolveComparatorJarPath(config: Pick<BddUiConfig, 'jsonComparison'>, packageRoot?: string): string;
export declare function buildComparatorArgs(options: ComparatorArgsOptions): string[];
export declare function compareCapturedResponse(options: CompareCapturedResponseOptions, dependencies?: CompareCapturedResponseDependencies): Promise<void>;
export {};
