import type { EmptyResult } from './common.js';
export type WebExtensionCommand = WebExtensionInstall | WebExtensionUninstall;
export type WebExtensionResult = WebExtensionInstallResult | WebExtensionUninstallResult;
export type WebExtensionExtension = string;
export interface WebExtensionInstall {
    method: "webExtension.install";
    params: WebExtensionInstallParameters;
}
export interface WebExtensionInstallParameters {
    extensionData: WebExtensionExtensionData;
}
export type WebExtensionExtensionData = WebExtensionExtensionArchivePath | WebExtensionExtensionBase64Encoded | WebExtensionExtensionPath;
export interface WebExtensionExtensionPath {
    type: "path";
    path: string;
}
export interface WebExtensionExtensionArchivePath {
    type: "archivePath";
    path: string;
}
export interface WebExtensionExtensionBase64Encoded {
    type: "base64";
    value: string;
}
export interface WebExtensionInstallResult {
    extension: WebExtensionExtension;
}
export interface WebExtensionUninstall {
    method: "webExtension.uninstall";
    params: WebExtensionUninstallParameters;
}
export interface WebExtensionUninstallParameters {
    extension: WebExtensionExtension;
}
export type WebExtensionUninstallResult = EmptyResult;
export declare class WebExtension {
    private readonly bidi;
    private constructor();
    static create(driver: unknown): Promise<WebExtension>;
    install(params: WebExtensionInstallParameters): Promise<WebExtensionInstallResult>;
    uninstall(params: WebExtensionUninstallParameters): Promise<void>;
}
