export type BrowserName = 'chromium' | 'firefox' | 'webkit';
export interface ViewportSize {
    width: number;
    height: number;
}
export interface ScreenshotSettings {
    expectedDir: string;
    actualDir: string;
    diffDir: string;
    mode: 'compare' | 'bootstrap';
    threshold: number;
    maxDiffPixels: number;
}
export interface CredentialSet {
    username?: string;
    password?: string;
    [key: string]: string | undefined;
}
export interface ResourcePaths {
    payload: string;
    actual: string;
    expected: string;
    config: string;
    input: string;
    features: string;
}
export interface JsonComparisonSettings {
    engine: 'jar';
    output?: 'text' | 'json';
    jarPath?: string;
}
export type FieldVerificationMode = 'normalized' | 'contains' | 'pattern' | 'formatted' | 'none';
export interface FieldVerificationRule {
    mode: FieldVerificationMode;
    expectedPattern?: string;
}
export type FieldVerificationMap = Record<string, FieldVerificationRule>;
export interface BddUiConfig {
    baseUrl: string;
    browser: BrowserName;
    headless: boolean;
    timeout: number;
    trace: boolean;
    screenshotOnFailure: boolean;
    viewport: ViewportSize;
    screenshots: ScreenshotSettings;
    resourcePaths: ResourcePaths;
    jsonComparison?: JsonComparisonSettings;
    credentials: Record<string, CredentialSet>;
    fieldVerification?: FieldVerificationMap;
    grids?: Record<string, string>;
    selectors?: Record<string, string>;
    selectorSources?: string[];
    uiScanner?: {
        language?: string;
        include?: string[];
        exclude?: string[];
        selectorOutput?: {
            mode?: 'inline' | 'split';
            strategy?: 'single-file' | 'by-folder' | 'by-file';
            generatedDir?: string;
            stripPathPrefixes?: string[];
        };
    };
    auth?: {
        loginPath?: string;
        usernameSelector?: string;
        passwordSelector?: string;
        submitSelector?: string;
        submitButtonName?: string;
        successUrlContains?: string;
    };
}
export declare function loadConfig(cwd?: string): BddUiConfig;
