import { INestApplication, ModuleMetadata } from '@nestjs/common';
import { Browser, Page } from 'playwright';
import { Server } from 'http';
export interface E2ETestContext {
    app: INestApplication;
    server: Server;
    browser: Browser;
    page: Page;
    baseUrl: string;
}
export declare class E2ETestSetup {
    private static contexts;
    static createTestApp(moduleMetadata: ModuleMetadata): Promise<INestApplication>;
    static setupBrowser(browserType?: 'chromium' | 'firefox' | 'webkit'): Promise<Browser>;
    static createContext(testName: string, moduleMetadata: ModuleMetadata, browserType?: 'chromium' | 'firefox' | 'webkit'): Promise<E2ETestContext>;
    static cleanup(testName: string): Promise<void>;
    static cleanupAll(): Promise<void>;
}
export declare class SSETestHelpers {
    static waitForSSEConnection(page: Page, timeout?: number): Promise<void>;
    static waitForSSEEvents(page: Page, eventCount?: number, timeout?: number): Promise<void>;
    static getSSEEvents(page: Page): Promise<Array<{
        type: string;
        data: any;
        timestamp: string;
    }>>;
    static connectToSSE(page: Page): Promise<void>;
    static disconnectFromSSE(page: Page): Promise<void>;
    static clearEventLog(page: Page): Promise<void>;
}
