import type { WebDriver } from 'selenium-webdriver';
import type { PageComponent } from './component.js';
import type { DynamicPageComponent } from './dynamicComponent.js';
export type ComponentCondition = () => boolean | Promise<boolean>;
type ComponentClass = typeof PageComponent | typeof DynamicPageComponent;
export declare class ComponentManager {
    driver: WebDriver;
    timeout: number;
    /**The number of milliseconds between attempts at checking conditions */
    pollRate: number;
    get conditions(): ComponentCondition[];
    protected componentMapping: {
        [componentName: string]: ComponentClass;
    };
    private componentsParsed;
    get loaded(): Promise<boolean>;
    constructor(driver: WebDriver);
    parseComponents(): void;
    wait(): Promise<boolean>;
    private waitForOneCondition;
    attachComponentAs(propertyKey: string, CompClass: typeof PageComponent | typeof DynamicPageComponent, ...args: unknown[]): void;
}
export {};
