/**
 * Copyright Microsoft Corporation. All rights reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
import type { MatcherAttachment } from './matcherHint';
import type { Expect } from '../../types/test';
import type { StackFrame } from '@protocol/channels';
interface ExpectStep {
    complete(result: {
        error?: Error | unknown;
        softError?: Error | unknown;
        shouldNotRetryTest?: boolean;
        suggestedRebaseline?: string;
        attachments?: MatcherAttachment[];
    }): void;
}
export interface ExpectTestInfo {
    _addStep(data: {
        category: 'expect';
        apiName: string;
        title: string;
        shortTitle: string;
        params?: Record<string, any>;
    }): ExpectStep;
    _deadline(): {
        deadline: number;
        timeout: number;
    };
    _resolveSnapshotPaths(kind: 'snapshot' | 'screenshot' | 'aria', name: string | string[] | undefined, updateSnapshotIndex: 'updateSnapshotIndex' | 'dontUpdateSnapshotIndex', anonymousExtension?: string): {
        absoluteSnapshotPath: string;
        relativeOutputPath: string;
    };
    _getOutputPath(...pathSegments: string[]): string;
}
export type ExpectConfig = {
    testInfo: ExpectTestInfo | null;
    filteredStackTrace: (rawStack: string[]) => StackFrame[];
    ignoreSnapshots: boolean;
    updateSnapshots: 'all' | 'changed' | 'missing' | 'none';
    timeout?: number;
    toHaveScreenshot?: {
        threshold?: number;
        maxDiffPixels?: number;
        maxDiffPixelRatio?: number;
        animations?: 'allow' | 'disabled';
        caret?: 'hide' | 'initial';
        scale?: 'css' | 'device';
        stylePath?: string | string[];
        pathTemplate?: string;
        _comparator?: string;
    };
    toMatchSnapshot?: {
        threshold?: number;
        maxDiffPixels?: number;
        maxDiffPixelRatio?: number;
    };
    toMatchAriaSnapshot?: {
        pathTemplate?: string;
        children?: 'contain' | 'equal' | 'deep-equal';
    };
    toPass?: {
        timeout?: number;
        intervals?: number[];
    };
};
export declare function setExpectConfig(config: ExpectConfig): void;
export declare function expectConfig(): ExpectConfig;
export declare const expect: Expect<{}>;
export declare function mergeExpects(...expects: any[]): Expect<{}>;
export {};
//# sourceMappingURL=expect.d.ts.map