import { UIElement } from './element';
import { SessionConnection } from './transport';
export interface Session {
    [command: string]: unknown;
}
export declare class Session {
    private readonly connection;
    private readonly sessionCapabilities;
    constructor(connection: SessionConnection, capabilities: object);
    cmd(commandName: string, ...args: unknown[]): Promise<unknown>;
    get connectedUrl(): string;
    get sessionId(): string;
    get capabilities(): object;
    findElement(using: string, value: string): Promise<UIElement>;
    findElements(using: string, value: string): Promise<UIElement[]>;
    waitForElement(ms: number, using: string, value: string): Promise<UIElement>;
    waitForElements(ms: number, using: string, value: string): Promise<UIElement[]>;
    executeBase(command: string, script: string, args: unknown[]): Promise<unknown>;
    executeScript(script: string, args: unknown[]): Promise<unknown>;
    executeAsyncScript(script: string, args: unknown[]): Promise<unknown>;
}
export interface AttachOptions {
    protocol?: string;
    hostname?: string;
    port?: number;
    path?: string;
}
export declare function attachToSession(sessionId: string, options: AttachOptions, capabilities?: object): Session;
//# sourceMappingURL=session.d.ts.map