import type { Locator, StepFn } from './locator.js'; import { Page } from './page.js'; import { WebLocator } from './web-locator.js'; export interface ExpectOptions { timeout?: number; } export type ExpectMessage = string | { message?: string; }; export type SoftFailureHandler = (error: ExpectError) => void; export declare function setSoftFailureHandler(handler: SoftFailureHandler): void; /** * Playwright-style expect for mobile locators, web locators, pages, and plain values. * * Usage: * expect(locator).toBeVisible() * expect(page).toHaveURL(/dashboard/) * expect(webLocator).toHaveText('Hello') * expect(42).toBe(42) * expect(locator, 'checkout button should appear').toBeVisible() * expect.soft(locator).toBeVisible() // records the failure, test keeps running */ export declare function expect(actual: Page, message?: ExpectMessage): PageAssertions; export declare function expect(actual: WebLocator, message?: ExpectMessage): WebLocatorAssertions; export declare function expect(actual: Locator, message?: ExpectMessage): LocatorAssertions; export declare function expect(actual: T, message?: ExpectMessage): ValueAssertions; export declare namespace expect { var soft: { (actual: Page, message?: ExpectMessage): PageAssertions; (actual: WebLocator, message?: ExpectMessage): WebLocatorAssertions; (actual: Locator, message?: ExpectMessage): LocatorAssertions; (actual: T, message?: ExpectMessage): ValueAssertions; }; } interface LocatorLike { isVisible(opts?: { timeout?: number; }): Promise; isEnabled(opts?: { timeout?: number; }): Promise; isChecked(opts?: { timeout?: number; }): Promise; isSelected?(opts?: { timeout?: number; }): Promise; isFocused?(opts?: { timeout?: number; }): Promise; getText(opts?: { timeout?: number; }): Promise; getValue(opts?: { timeout?: number; }): Promise; count(): Promise; expectTimeout?: number; _stepFn?: StepFn | null; } declare class LocatorAssertions { protected readonly locator: LocatorLike; protected readonly negated: boolean; constructor(locator: LocatorLike, negated: boolean); _message?: string; _soft?: boolean; get not(): LocatorAssertions; private assertionTimeout; protected _wrapAssertion(method: string, fn: () => Promise): Promise; toBeVisible(opts?: ExpectOptions): Promise; toBeHidden(opts?: ExpectOptions): Promise; toBeEnabled(opts?: ExpectOptions): Promise; toBeDisabled(opts?: ExpectOptions): Promise; toBeSelected(opts?: ExpectOptions): Promise; toBeFocused(opts?: ExpectOptions): Promise; toBeChecked(opts?: ExpectOptions): Promise; toHaveText(expected: string | RegExp, opts?: ExpectOptions): Promise; toContainText(expected: string, opts?: ExpectOptions): Promise; toHaveCount(expected: number, opts?: ExpectOptions): Promise; toBeEmpty(opts?: ExpectOptions): Promise; toHaveValue(expected: string | RegExp, opts?: ExpectOptions): Promise; protected assertBoolean(name: string, poll: () => Promise, opts?: ExpectOptions): Promise; protected assertText(predicate: (text: string) => boolean, expected: string | RegExp, opts?: ExpectOptions): Promise; private assertStringMatch; protected retryAssertion(poll: () => Promise, predicate: (value: T) => boolean, timeout: number, failMessage: string | (() => string)): Promise; } declare class ValueAssertions { private readonly actual; private readonly negated; constructor(actual: T, negated: boolean); get not(): ValueAssertions; toBe(expected: T): void; toEqual(expected: T): void; toBeTruthy(): void; toBeFalsy(): void; toBeGreaterThan(expected: number): void; toBeLessThan(expected: number): void; toBeCloseTo(expected: number, precision?: number): void; toContain(expected: unknown): void; toBeNull(): void; toBeUndefined(): void; toMatch(pattern: RegExp | string): void; toBeInstanceOf(expected: Function): void; toBeDefined(): void; toBeGreaterThanOrEqual(expected: number): void; toBeLessThanOrEqual(expected: number): void; toBeNaN(): void; toContainEqual(expected: unknown): void; toHaveLength(expected: number): void; toHaveProperty(key: string, value?: unknown): void; toMatchObject(expected: Record): void; toStrictEqual(expected: T): void; toThrow(expected?: string | RegExp): void; private assert; } declare class PageAssertions { private readonly page; private readonly negated; constructor(page: Page, negated: boolean); _message?: string; _soft?: boolean; get not(): PageAssertions; private _wrapAssertion; private matches; toHaveURL(url: string | RegExp, opts?: ExpectOptions): Promise; toHaveTitle(title: string | RegExp, opts?: ExpectOptions): Promise; } declare class WebLocatorAssertions { private readonly webLocator; private readonly negated; constructor(webLocator: WebLocator, negated: boolean); _message?: string; _soft?: boolean; get not(): WebLocatorAssertions; private assertionTimeout; private runMatcher; toBeVisible(opts?: ExpectOptions): Promise; toBeHidden(opts?: ExpectOptions): Promise; toBeEnabled(opts?: ExpectOptions): Promise; toBeDisabled(opts?: ExpectOptions): Promise; toBeEditable(opts?: ExpectOptions): Promise; toBeFocused(opts?: ExpectOptions): Promise; toBeAttached(opts?: ExpectOptions): Promise; toBeInViewport(opts?: ExpectOptions & { ratio?: number; }): Promise; toBeChecked(opts?: ExpectOptions): Promise; toBeEmpty(opts?: ExpectOptions): Promise; toHaveText(expected: string | RegExp, opts?: ExpectOptions): Promise; toContainText(expected: string | RegExp, opts?: ExpectOptions): Promise; toHaveValue(expected: string | RegExp, opts?: ExpectOptions): Promise; toHaveCount(expected: number, opts?: ExpectOptions): Promise; toHaveAttribute(name: string, expected: string | RegExp, opts?: ExpectOptions): Promise; toHaveClass(expected: string | RegExp, opts?: ExpectOptions): Promise; toContainClass(expected: string | RegExp, opts?: ExpectOptions): Promise; toHaveCSS(name: string, expected: string | RegExp, opts?: ExpectOptions): Promise; toHaveId(expected: string | RegExp, opts?: ExpectOptions): Promise; toHaveJSProperty(name: string, expected: unknown, opts?: ExpectOptions): Promise; } export declare class ExpectError extends Error { constructor(message: string); } export {}; //# sourceMappingURL=expect.d.ts.map