import { Locator } from '@playwright/test';
import { RetryOptions, LocatorPredicate } from '../helpers/playwright';
import { Operable, OperableOptions } from './Operable';
export type ClickOptions = {
    timeout?: number;
};
export type ClickableOptions = OperableOptions & {
    beforeClick?: () => Promise<void>;
    afterClick?: () => Promise<void>;
    clickAction?: {
        (locator: Locator, options?: ClickOptions): Promise<void>;
    };
    beforeDblClick?: () => Promise<void>;
    afterDblClick?: () => Promise<void>;
    dblclickAction?: {
        (locator: Locator, options?: ClickOptions): Promise<void>;
    };
};
export declare class Clickable extends Operable {
    private beforeClick?;
    private afterClick?;
    private clickAction;
    private beforeDblClick?;
    private afterDblClick?;
    private dblclickAction;
    constructor(locator: Locator, options?: ClickableOptions);
    click(options?: ClickOptions): Promise<void>;
    dblclick(options?: ClickOptions): Promise<void>;
    protected targetLocator(): Locator;
    waitAndClick(waitOptions?: RetryOptions): Promise<void>;
    waitAndClickWith(fn: LocatorPredicate, waitOptions?: RetryOptions): Promise<void>;
}
//# sourceMappingURL=Clickable.d.ts.map