import type { Options } from '@looker/chatty';
import type { VisualizationSDK } from './visualization';
import type { TileSDK } from './tile';
import { FetchProxyImpl } from './fetch_proxy';
import type { ApiVersion, ExtensionHostApi, ExtensionHostApiConfiguration, ExtensionInitializationResponse, ExtensionNotification, FetchCustomParameters, FetchResponseBodyType, LookerHostData } from './types';
export declare const EXTENSION_SDK_VERSION = "0.10.5";
export declare class ExtensionHostApiImpl implements ExtensionHostApi {
    private _configuration;
    private _lookerHostData?;
    private chattyHost;
    private setInitialRoute?;
    private hostChangedRoute?;
    private visualizationDataReceivedCallback?;
    private tileHostDataChangedCallback?;
    private _visualizationSDK?;
    private _tileSDK?;
    private contextData?;
    constructor(configuration: ExtensionHostApiConfiguration);
    get isDashboardMountSupported(): boolean;
    get visualizationSDK(): VisualizationSDK;
    get tileSDK(): TileSDK;
    get lookerHostData(): Readonly<LookerHostData> | undefined;
    handleNotification(message: ExtensionNotification): ExtensionInitializationResponse | undefined;
    createSecretKeyTag(keyName: string): string;
    verifyHostConnection(): Promise<any>;
    invokeCoreSdk(httpMethod: string, path: string, params?: any, body?: any, authenticator?: any, options?: any, apiVersion?: ApiVersion): Promise<any>;
    invokeCoreSdkRaw(httpMethod: string, path: string, params?: any, body?: any, apiVersion?: ApiVersion): Promise<any>;
    updateTitle(title: string): void;
    updateLocation(url: string, state?: any, target?: string): void;
    spartanLogout(): void;
    openBrowserWindow(url: string, target?: string): void;
    closeHostPopovers(): void;
    clientRouteChanged(route: string, routeState?: any): void;
    localStorageSetItem(name: string, value?: string): Promise<boolean>;
    localStorageGetItem(name: string): Promise<string | null>;
    localStorageRemoveItem(name: string): Promise<boolean>;
    clipboardWrite(value: string): Promise<void>;
    userAttributeSetItem(name: string, value?: string): Promise<boolean>;
    userAttributeGetItem(name: string): Promise<string | null>;
    userAttributeResetItem(name: string): Promise<void>;
    getContextData(): any;
    saveContextData(context: any): Promise<any>;
    refreshContextData(): Promise<any>;
    track(name: string, trackAction: string, attributes?: Record<string, any>): void;
    error(errorEvent: ErrorEvent): void;
    unloaded(): void;
    createFetchProxy(baseUrl?: string, init?: FetchCustomParameters, responseBodyType?: FetchResponseBodyType): FetchProxyImpl;
    fetchProxy(resource: string, init?: FetchCustomParameters, responseBodyType?: FetchResponseBodyType): Promise<any>;
    serverProxy(resource: string, init?: FetchCustomParameters, responseBodyType?: FetchResponseBodyType): Promise<any>;
    oauth2Authenticate(authEndpoint: string, authParameters: Record<string, string>, httpMethod?: string): Promise<any>;
    oauth2ExchangeCodeForToken(authEndpoint: string, authParameters: Record<string, string>): Promise<any>;
    rendered(failureMessage?: string): void;
    sendAndReceive(type: string, payload?: any, options?: Options): Promise<any>;
    send(type: string, payload?: any): void;
    private verifyLookerVersion;
    private validateAuthParameters;
}
