import { Locator, Page } from '@playwright/test';
import type { RuleObject } from 'axe-core';
/**
 * Wait for a page to be fully ready (DOM complete + brief delay for lazy rendering)
 */
export declare function waitForPageReady(page: Page, timeout?: number): Promise<void>;
/**
 * Check if the current user is an admin by reading localStorage
 */
export declare function checkAdminStatus(page: Page): Promise<boolean>;
/**
 * Wait for an element to be fully stable (attached, visible, not animating)
 */
export declare function waitForElementStable(page: Page, locator: Locator, timeout?: number): Promise<Locator>;
/**
 * Click an element with retry logic and stability checks
 */
export declare function reliableClick(page: Page, locator: Locator, timeout?: number, maxRetries?: number): Promise<void>;
/**
 * Fill an input element with retry logic, clearing first and verifying the value
 */
export declare function reliableFill(page: Page, locator: Locator, value: string, timeout?: number, maxRetries?: number): Promise<void>;
/**
 * Wait for a dialog element to be visible and its content loaded
 */
export declare function waitForDialogReady(page: Page, dialogLocator: Locator, timeout?: number): Promise<Locator>;
/**
 * Select a date from a calendar component, navigating months if needed
 */
export declare function selectDateFromCalendar(page: Page, dialogLocator: Locator, targetDate: Date, timeout?: number): Promise<void>;
/**
 * Run axe-core accessibility checks against a page
 */
export declare function expectNoAccessibilityViolations(page: Page): Promise<void>;
/**
 * Run axe-core accessibility checks against visible dialogs
 */
export declare function expectNoAccessibilityViolationsOnDialogs(page: Page, rules?: RuleObject, exclude?: string[]): Promise<void>;
