/**
 * 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 { MatcherResult } from './matcherHint';
import type { ExpectMatcherState } from '../../types/test';
import type { ExpectTestInfo } from './expect';
import type { InternalMatcherUtils } from './matcherHint';
import type { APIResponse, Locator, Frame, Page } from 'playwright-core';
import type { ExpectResult } from 'playwright-core/lib/client/frame';
import type { FrameExpectParams } from 'playwright-core/lib/client/types';
import type { ExpectMatcherUtils } from '../../types/test';
import type { URLPattern } from '@isomorphic/urlMatch';
export type ExpectMatcherStateInternal = Omit<ExpectMatcherState, 'utils'> & {
    utils: ExpectMatcherUtils & InternalMatcherUtils;
};
export interface LocatorEx extends Locator {
    _selector: string;
    _expect(expression: string, options: FrameExpectParams): Promise<ExpectResult>;
}
export interface FrameEx extends Frame {
    _expect(expression: string, options: FrameExpectParams): Promise<ExpectResult>;
}
interface APIResponseEx extends APIResponse {
    _fetchLog(): Promise<string[]>;
}
export declare function toBeAttached(this: ExpectMatcherStateInternal, locator: LocatorEx, options?: {
    attached?: boolean;
    timeout?: number;
}): Promise<MatcherResult<any, any>>;
export declare function toBeChecked(this: ExpectMatcherStateInternal, locator: LocatorEx, options?: {
    checked?: boolean;
    indeterminate?: boolean;
    timeout?: number;
}): Promise<MatcherResult<any, any>>;
export declare function toBeDisabled(this: ExpectMatcherStateInternal, locator: LocatorEx, options?: {
    timeout?: number;
}): Promise<MatcherResult<any, any>>;
export declare function toBeEditable(this: ExpectMatcherStateInternal, locator: LocatorEx, options?: {
    editable?: boolean;
    timeout?: number;
}): Promise<MatcherResult<any, any>>;
export declare function toBeEmpty(this: ExpectMatcherStateInternal, locator: LocatorEx, options?: {
    timeout?: number;
}): Promise<MatcherResult<any, any>>;
export declare function toBeEnabled(this: ExpectMatcherStateInternal, locator: LocatorEx, options?: {
    enabled?: boolean;
    timeout?: number;
}): Promise<MatcherResult<any, any>>;
export declare function toBeFocused(this: ExpectMatcherStateInternal, locator: LocatorEx, options?: {
    timeout?: number;
}): Promise<MatcherResult<any, any>>;
export declare function toBeHidden(this: ExpectMatcherStateInternal, locator: LocatorEx, options?: {
    timeout?: number;
}): Promise<MatcherResult<any, any>>;
export declare function toBeVisible(this: ExpectMatcherStateInternal, locator: LocatorEx, options?: {
    visible?: boolean;
    timeout?: number;
}): Promise<MatcherResult<any, any>>;
export declare function toBeInViewport(this: ExpectMatcherStateInternal, locator: LocatorEx, options?: {
    timeout?: number;
    ratio?: number;
}): Promise<MatcherResult<any, any>>;
export declare function toContainText(this: ExpectMatcherStateInternal, locator: LocatorEx, expected: string | RegExp | (string | RegExp)[], options?: {
    timeout?: number;
    useInnerText?: boolean;
    ignoreCase?: boolean;
}): Promise<MatcherResult<any, any>>;
export declare function toHaveAccessibleDescription(this: ExpectMatcherStateInternal, locator: LocatorEx, expected: string | RegExp, options?: {
    timeout?: number;
    ignoreCase?: boolean;
}): Promise<MatcherResult<string | RegExp, string>>;
export declare function toHaveAccessibleName(this: ExpectMatcherStateInternal, locator: LocatorEx, expected: string | RegExp, options?: {
    timeout?: number;
    ignoreCase?: boolean;
}): Promise<MatcherResult<string | RegExp, string>>;
export declare function toHaveAccessibleErrorMessage(this: ExpectMatcherStateInternal, locator: LocatorEx, expected: string | RegExp, options?: {
    timeout?: number;
    ignoreCase?: boolean;
}): Promise<MatcherResult<string | RegExp, string>>;
export declare function toHaveAttribute(this: ExpectMatcherStateInternal, locator: LocatorEx, name: string, expected: string | RegExp | undefined | {
    timeout?: number;
}, options?: {
    timeout?: number;
    ignoreCase?: boolean;
}): Promise<MatcherResult<any, any>>;
export declare function toHaveClass(this: ExpectMatcherStateInternal, locator: LocatorEx, expected: string | RegExp | (string | RegExp)[], options?: {
    timeout?: number;
}): Promise<MatcherResult<any, any>>;
export declare function toContainClass(this: ExpectMatcherStateInternal, locator: LocatorEx, expected: string | string[], options?: {
    timeout?: number;
}): Promise<MatcherResult<any, any>>;
export declare function toHaveCount(this: ExpectMatcherStateInternal, locator: LocatorEx, expected: number, options?: {
    timeout?: number;
}): Promise<MatcherResult<any, any>>;
export declare function toHaveCSS(this: ExpectMatcherStateInternal, locator: LocatorEx, name: string, expected: string | RegExp, options?: {
    timeout?: number;
    pseudo?: 'before' | 'after';
}): Promise<MatcherResult<any, any>>;
export declare function toHaveId(this: ExpectMatcherStateInternal, locator: LocatorEx, expected: string | RegExp, options?: {
    timeout?: number;
}): Promise<MatcherResult<string | RegExp, string>>;
export declare function toHaveJSProperty(this: ExpectMatcherStateInternal, locator: LocatorEx, name: string, expected: any, options?: {
    timeout?: number;
}): Promise<MatcherResult<any, any>>;
export declare function toHaveRole(this: ExpectMatcherStateInternal, locator: LocatorEx, expected: string, options?: {
    timeout?: number;
    ignoreCase?: boolean;
}): Promise<MatcherResult<string | RegExp, string>>;
export declare function toHaveText(this: ExpectMatcherStateInternal, locator: LocatorEx, expected: string | RegExp | (string | RegExp)[], options?: {
    timeout?: number;
    useInnerText?: boolean;
    ignoreCase?: boolean;
}): Promise<MatcherResult<any, any>>;
export declare function toHaveValue(this: ExpectMatcherStateInternal, locator: LocatorEx, expected: string | RegExp, options?: {
    timeout?: number;
}): Promise<MatcherResult<string | RegExp, string>>;
export declare function toHaveValues(this: ExpectMatcherStateInternal, locator: LocatorEx, expected: (string | RegExp)[], options?: {
    timeout?: number;
}): Promise<MatcherResult<any, any>>;
export declare function toHaveTitle(this: ExpectMatcherStateInternal, page: Page, expected: string | RegExp, options?: {
    timeout?: number;
}): Promise<MatcherResult<string | RegExp, string>>;
export declare function toHaveURL(this: ExpectMatcherStateInternal, page: Page, expected: string | RegExp | URLPattern | ((url: URL) => boolean), options?: {
    ignoreCase?: boolean;
    timeout?: number;
}): Promise<MatcherResult<string | RegExp, string>>;
export declare function toBeOK(this: ExpectMatcherStateInternal, response: APIResponseEx): Promise<{
    message: () => string;
    pass: any;
}>;
export declare function toPass(this: ExpectMatcherState, callback: () => any, options?: {
    intervals?: number[];
    timeout?: number;
}): Promise<{
    message: () => string;
    pass: boolean;
}>;
export declare function computeMatcherTitleSuffix(matcherName: string, receiver: any, args: any[]): {
    short?: string;
    long?: string;
};
export declare function deadlineForMatcher(testInfo: ExpectTestInfo | null, timeout: number): {
    deadline: number;
    timeoutMessage: string;
};
export {};
//# sourceMappingURL=matchers.d.ts.map