import { ElementReference } from '../types';
import { NormalizedFindDescriptor, SimpleElementSelectorAndContext } from '@mablhq/test-model/mablscriptFind';
import { MobileTestExecutionContext } from '../contexts/MobileTestExecutionContext';
import { MobilePlatformEnum } from '@mablhq-internal/runtime/mablApi';
import { Rect } from '@appium/types';
export declare const WEBVIEW_CONTEXT_PREFIX = "WEBVIEW_";
export declare const NATIVE_APP_CONTEXT = "NATIVE_APP";
export declare const NO_WEBVIEW_CONTEXT_FOUND = "No webview context found. Please check that webviews can be inspected for this application.";
export declare const ANDROID_CLOUD_IMAGE_CHROMEDRIVER_EXECUTABLE_DIR = "/opt/selenium";
export interface DetailedContext {
    id: string;
    title?: string;
    url?: string;
}
interface WebViewFindResult {
    elementReference: ElementReference;
    elementBoundingClientRect: DOMRect;
    elementSelector?: SimpleElementSelectorAndContext;
}
export interface WebViewWindowCoordinatesInfo {
    visualViewportScale: number;
    visualViewportWidth: number;
    visualViewportOffsetLeft: number;
    visualViewportOffsetTop: number;
}
export declare function executeFindInWebView(driver: WebdriverIO.Browser, mobileExecutionContext: MobileTestExecutionContext, webTargetDescriptor: NormalizedFindDescriptor): Promise<WebViewFindResult>;
export declare function doesWebviewMatch(webViewUrl: string | undefined, elementDescriptorUrl: string): boolean;
export declare function isDetailedContext(context: DetailedContext | string): context is DetailedContext;
export declare function waitForWebViewContextLoaded(driver: WebdriverIO.Browser): Promise<boolean>;
export declare function waitForDocumentFullyLoaded(driver: WebdriverIO.Browser): Promise<void>;
export declare function getIOSWebViewContexts(driver: WebdriverIO.Browser): Promise<DetailedContext[]>;
export declare function getAndroidWebViewWindowHandles(driver: WebdriverIO.Browser): Promise<DetailedContext[]>;
export declare function getAndroidWebViewContextId(driver: WebdriverIO.Browser): Promise<string | undefined>;
export declare function translateWebViewElementCoordinatesToNativeCoordinates(elementBoundingClientRect: DOMRect, webViewWindowCoordinatesInfo: WebViewWindowCoordinatesInfo, parentWebViewElRect: Rect, platform: MobilePlatformEnum): Rect;
export {};
//# sourceMappingURL=webViewUtil.d.ts.map