import 'jest'; import type { FixtureOptions } from '@open-wc/testing-helpers/types/src/fixture-no-side-effect'; import type { TemplateResult } from '@open-wc/testing-helpers/types/src/scopedElementsWrapper'; import type { EachTable, TestName } from '@jest/types/build/Global'; import { Subscription } from 'rxjs'; import type { EventBus } from '../events'; import type { EventWithHandler } from './asyncEvents'; import { MocksMap } from './sandbox'; export declare type DomMocks = { getNavigatorLanguage: jest.Mock; formData: jest.Mock; fetch: jest.Mock, Parameters>; pushState: jest.Mock; }; export declare type LitRuntimeOptions = { timeout?: number; mocks?: Record; defaultLanguage?: string; fakeTimers?: boolean; useDomMocks?: boolean; }; export declare type LitRuntimeHelpers = { create: (options: OpenWCPageOptions) => Promise; actOnEvents: (events: EventWithHandler[], timeout?: number, throwLabel?: string) => Promise; advanceTimersByTime: typeof jest.advanceTimersByTime; calls: (mock: jest.Mock) => any[]; completeAndCount: () => Promise; domMocks: DomMocks; eventBus: EventBus; nthCall: (mock: jest.Mock | any, index?: number) => Y; nthResult: (mock: jest.Mock | any, index?: number) => jest.MockResult; nthInstance: (mock: jest.Mock | any, index?: number) => T; mocks: MocksMap; sub: Subscription; }; export declare type LitWestTestFn = (helpers: LitRuntimeHelpers) => Promise; export declare type LitWestEachTestFn> = (helpers: LitRuntimeHelpers, ...args: Array) => ReturnType; export declare type LitWestEach> = ((table: EachTable) => (title: string, t: LitWestEachTestFn) => void) | (() => () => void); export interface LitWestItBase> { (testName: TestName, fn: LitWestTestFn): void; each: LitWestEach; } export interface LitWestIt> extends LitWestItBase { only: LitWestItBase; skip: LitWestItBase; todo: (testName: TestName) => void; } export declare type OpenWCPageOptions = FixtureOptions & { template: TemplateResult; advanceTimerByTime?: number; }; export declare function test(helpers: (h: LitRuntimeHelpers) => Promise, { defaultLanguage, mocks, fakeTimers, useDomMocks }?: LitRuntimeOptions): () => Promise;