/**
 * @fileoverview End-to-End Testing Utilities for OrdoJS Framework
 *
 * This module provides a wrapper around Playwright for E2E testing.
 * It allows for browser-based testing of OrdoJS applications.
 */
import type { E2ETestConfig, TestResult } from './types.js';
/**
 * End-to-End testing utilities for OrdoJS applications
 *
 * This class provides a simplified interface for E2E testing using Playwright.
 * It's designed to be used with the OrdoJS testing framework.
 */
export declare class E2ETestUtils {
    private config;
    private browser;
    private context;
    private page;
    private isInitialized;
    constructor(config: E2ETestConfig);
    /**
     * Initialize the E2E testing environment
     *
     * This method sets up Playwright and launches a browser instance.
     * It should be called before running any tests.
     */
    initialize(): Promise<void>;
    /**
     * Clean up the E2E testing environment
     *
     * This method closes the browser and cleans up resources.
     * It should be called after all tests are complete.
     */
    cleanup(): Promise<void>;
    /**
     * Navigate to a URL
     *
     * @param url - The URL to navigate to (relative to baseUrl)
     */
    navigateTo(url: string): Promise<void>;
    /**
     * Get the current URL
     */
    getCurrentUrl(): string;
    /**
     * Fill a form field
     *
     * @param selector - CSS selector for the form field
     * @param value - Value to fill in the form field
     */
    fillField(selector: string, value: string): Promise<void>;
    /**
     * Click an element
     *
     * @param selector - CSS selector for the element to click
     */
    click(selector: string): Promise<void>;
    /**
     * Wait for an element to be visible
     *
     * @param selector - CSS selector for the element to wait for
     * @param timeout - Maximum time to wait in milliseconds
     */
    waitForElement(selector: string, timeout?: number): Promise<void>;
    /**
     * Wait for a condition to be true
     *
     * @param condition - Function that returns a boolean or Promise<boolean>
     * @param timeout - Maximum time to wait in milliseconds
     */
    waitForCondition(condition: () => boolean | Promise<boolean>, timeout?: number): Promise<void>;
    /**
     * Take a screenshot
     *
     * @param name - Name of the screenshot file
     */
    takeScreenshot(name: string): Promise<void>;
    /**
     * Get text content of an element
     *
     * @param selector - CSS selector for the element
     */
    getText(selector: string): Promise<string>;
    /**
     * Check if an element exists
     *
     * @param selector - CSS selector for the element
     */
    elementExists(selector: string): Promise<boolean>;
    /**
     * Run an E2E test
     *
     * @param testFn - Test function to run
     * @param name - Name of the test
     */
    runTest(testFn: () => Promise<void>, name: string): Promise<TestResult>;
    /**
     * Run multiple E2E tests
     *
     * @param tests - Array of test objects with name and test function
     */
    runTests(tests: Array<{
        name: string;
        testFn: () => Promise<void>;
    }>): Promise<TestResult[]>;
    /**
     * Ensure that the E2E environment is initialized
     */
    private ensureInitialized;
    /**
     * Create a new page in the browser context
     */
    newPage(): Promise<any>;
    /**
     * Execute JavaScript in the browser context
     *
     * @param script - JavaScript code to execute
     */
    evaluateScript<T>(script: string | Function): Promise<T>;
    /**
     * Get the browser instance
     */
    getBrowser(): any;
    /**
     * Get the browser context
     */
    getContext(): any;
    /**
     * Get the current page
     */
    getPage(): any;
}
//# sourceMappingURL=e2e-test.d.ts.map