declare const _default: SpecDriver;
export default _default;
export function isDriver(driver: any): driver is Driver<unknown>;
export function isSecondaryDriver(driver: any): driver is StaticDriver<unknown>;
export function isElement(element: any): element is Element;
export function isSecondaryElement(element: any): element is StaticElement;
export function isShadowRoot(shadowRoot: any): shadowRoot is ShadowRoot;
export function isSelector(selector: any): selector is Selector;
export function isEqualElements(_driver: Driver<unknown>, element1: Element, element2: Element): boolean;
export function isStaleElementError(error: any): boolean;
export function toDriver<TOriginalDriver = never>(driver: StaticDriver<TOriginalDriver>): Driver<TOriginalDriver> | Promise<Driver<TOriginalDriver>>;
export function toElement(element: StaticElement): Element;
export function toSelector(selector: import('@applitools/driver').CommonSelector<Selector>): Selector;
export function toSimpleCommonSelector(selector: Selector): import('@applitools/driver').CommonSelector;
export function executeScript(driver: Driver<unknown>, script: string | ((arg: any) => any), arg: any): Promise<any>;
export function findElement(driver: Driver<unknown>, selector: Selector, parent?: undefined | Element | ShadowRoot): Promise<null | Element>;
export function findElements(driver: Driver<unknown>, selector: Selector, parent?: undefined | Element | ShadowRoot): Promise<Array<Element>>;
export function getElementRegion(driver: Driver<unknown>, element: Element): Promise<{
    x: number;
    y: number;
    width: number;
    height: number;
}>;
export function getElementAttribute(driver: Driver<unknown>, element: Element, attr: string): Promise<string>;
export function setElementText(driver: Driver<unknown>, element: Element, text: string): Promise<void>;
export function getElementText(driver: Driver<unknown>, element: Element): Promise<string>;
export function hover(driver: Driver<unknown>, element: Element): Promise<void>;
export function click(driver: Driver<unknown>, element: Element): Promise<void>;
export function mainContext(driver: Driver<unknown>): Promise<Driver<unknown>>;
export function parentContext(driver: Driver<unknown>): Promise<Driver<unknown>>;
export function childContext(driver: Driver<unknown>, element: Element): Promise<Driver<unknown>>;
export function getDriverInfo(driver: Driver<unknown>): Promise<import('@applitools/driver').DriverInfo>;
export function getCapabilities(driver: Driver<unknown>): Promise<Record<string, any>>;
export function getWindowSize(driver: Driver<unknown>): Promise<{ width: number; height: number; }>;
export function setWindowSize(driver: Driver<unknown>, size: { width: number; height: number; }): Promise<void>;
export function setViewportSize(driver: Driver<unknown>, size: { width: number; height: number; }): Promise<void>;
export function getOrientation(browser: Driver<unknown>): Promise<"portrait" | "landscape">;
export function setOrientation(browser: Driver<unknown>, orientation: "portrait" | "landscape"): Promise<void>;
export function getSystemBars(browser: Driver<unknown>): Promise<{ statusBar: {
    visible: boolean;
    x: number;
    y: number;
    height: number;
    width: number;
}; navigationBar: {
    visible: boolean;
    x: number;
    y: number;
    height: number;
    width: number;
}; }>;
export function getCookies(driver: Driver<unknown>, context?: undefined | boolean): Promise<Array<import('@applitools/driver').Cookie>>;
export function getTitle(driver: Driver<unknown>): Promise<string>;
export function getUrl(driver: Driver<unknown>): Promise<string>;
export function visit(driver: Driver<unknown>, url: string): Promise<void>;
export function performAction(driver: Driver<unknown>, steps: Array<any>): Promise<void>;
export function takeScreenshot(driver: Driver<unknown>): Promise<string>;
export function getCurrentWorld(driver: Driver<unknown>): Promise<string>;
export function getWorlds(driver: Driver<unknown>): Promise<Array<string>>;
export function switchWorld(driver: Driver<unknown>, id: string): Promise<void>;
export function build(env: any): Promise<[Driver<unknown>, () => Promise<void>]>;
export type StaticDriver<TOriginalDriver = unknown> = {
    sessionId: string;
    serverUrl: string;
    capabilities: Record<string, any>;
    proxy?: undefined | { url: string; username?: undefined | string; password?: undefined | string; };
    original?: undefined | TOriginalDriver;
};
export type StaticElement = { elementId: string; };
export type SecondarySpecType = {
    driver: StaticDriver<unknown>;
    context: never;
    element: StaticElement;
    selector: never;
    secondary: never;
};
export type Driver<TOriginalDriver = unknown> = import('webdriver').Client & { original: TOriginalDriver; } & { __applitoolsBrand?: undefined; };
export type Element = ({ 'element-6066-11e4-a52e-4f735466cecf': string; } | { ELEMENT: string; }) & { __applitoolsBrand?: undefined; };
export type ShadowRoot = {
    'shadow-6066-11e4-a52e-4f735466cecf': string;
    __applitoolsBrand?: undefined;
};
export type Selector = {
    using: string;
    value: string;
    __applitoolsBrand?: undefined;
};
export type PrimarySpecType = {
    driver: Driver<unknown>;
    context: Driver<unknown>;
    element: Element;
    selector: Selector;
    secondary: SecondarySpecType;
};
export type SpecDriver = import('@applitools/driver').SpecDriver<PrimarySpecType>;
