import { Locator } from "playwright-core";
export interface IAtomClass<T> {
    findIn: (atomClass: IAtomClass<T>, arg: Locator, root?: boolean) => T;
    CSS_CLASS?: string;
    CSS_SELECTOR?: string;
    new (locator: Locator): T;
}
export declare class Atom {
    /**
     * Create atom from the css id
     */
    static find<T extends Atom>(atomClass: IAtomClass<T>, id: string, root?: boolean): T;
    /**
     * Create atom from the css
     */
    static findIn<T extends Atom>(atomClass: IAtomClass<T>, parentLocator?: Locator, root?: boolean): T;
    static getFromRoot(selector: string): Locator;
    static getSelector<T extends Atom>(atomClass: IAtomClass<T>): string | null;
    private locator;
    constructor(locator: Locator);
    toNotContainClass(className: string | string[]): Promise<any>;
    toContainClass(className: string | string[]): Promise<any>;
    /**
     * @Deprecated: use Atom.toContainClass.
     * see ../../ASSERTING_VALUE.md
     */
    hasClass(cls: string): Promise<boolean>;
    toBeDisabled(): Promise<any>;
    toBeVisible(): Promise<any>;
    toBeHidden(): Promise<any>;
    getLocator(): Locator;
    nth<T extends Atom>(atomClass: IAtomClass<T>, index: number): T;
    first<T extends Atom>(atomClass: IAtomClass<T>): T;
    filter<T extends Atom>(atomClass: IAtomClass<T>, ...filter: Parameters<Locator["filter"]>): T;
    click(): Promise<void>;
    hover(target?: Locator, force?: boolean): Promise<void>;
}
