import { AuthDialogue } from "../uv-dialogues-module/AuthDialogue";
import { ClickThroughDialogue } from "../uv-dialogues-module/ClickThroughDialogue";
import { ExtensionLoader, IExtension } from "./IExtension";
import { ILocale } from "./ILocale";
import { ISharePreview } from "./ISharePreview";
import { IIIFExtensionHost } from "../../IIIFExtensionHost";
import { IUVData } from "@/IUVData";
import { LoginDialogue } from "../uv-dialogues-module/LoginDialogue";
import { Metric, MetricType } from "./Metric";
import { RestrictedDialogue } from "../uv-dialogues-module/RestrictedDialogue";
import { Shell } from "./Shell";
import { AnnotationGroup, Helper } from "@iiif/manifold";
import { AnnotationBody, Canvas, Collection, IExternalResource, IExternalResourceData, Manifest, Range } from "manifesto.js";
import { StoreApi } from "zustand/vanilla";
import { ExtensionState } from "./ExtensionState";
export declare class BaseExtension implements IExtension {
    $authDialogue: JQuery;
    $clickThroughDialogue: JQuery;
    $element: JQuery;
    $loginDialogue: JQuery;
    $restrictedDialogue: JQuery;
    authDialogue: AuthDialogue;
    annotations: AnnotationGroup[];
    clickThroughDialogue: ClickThroughDialogue;
    extensionHost: IIIFExtensionHost;
    data: IUVData;
    extensions: any;
    helper: Helper;
    isCreated: boolean;
    isLoggedIn: boolean;
    lastCanvasIndex: number;
    loginDialogue: LoginDialogue;
    metric: MetricType;
    metrics: Metric[];
    mouseX: number;
    mouseY: number;
    type: ExtensionLoader;
    resources: IExternalResourceData[] | null;
    restrictedDialogue: RestrictedDialogue;
    shell: Shell;
    shifted: boolean;
    store: StoreApi<ExtensionState>;
    tabbing: boolean;
    browserDetect: BrowserDetect;
    locales: {};
    defaultConfig: any;
    create(): void;
    loadConfig(locale: string): Promise<any>;
    createModules(): void;
    private _setDefaultFocus;
    width(): number;
    height(): number;
    exitFullScreen(): void;
    fire(name: string, ...args: any[]): void;
    redirect(uri: string): void;
    refresh(): void;
    render(): void;
    private _initLocales;
    private _parseMetrics;
    private _updateMetric;
    resize(): void;
    reload(data?: IUVData): void;
    isSeeAlsoEnabled(): boolean;
    getShareUrl(): string | null;
    getIIIFShareUrl(shareManifests?: boolean): string;
    getDomain(): string;
    getAppUri(): string;
    getSettings(): ISettings;
    updateSettings(settings: ISettings): void;
    getLocale(): string;
    getSharePreview(): ISharePreview;
    getPagedIndices(canvasIndex?: number): number[];
    getCurrentCanvases(): Canvas[];
    getCanvasLabels(label: string): string;
    getCurrentCanvasRange(): Range | null;
    getExternalResources(resources?: IExternalResource[]): Promise<IExternalResourceData[]>;
    private _prepareResourceData;
    getMediaFormats(canvas: Canvas): AnnotationBody[];
    viewCanvas(canvasIndex: number): void;
    showMessage(message: string, acceptCallback?: Function, buttonText?: string, allowClose?: boolean): void;
    closeActiveDialogue(): void;
    isOverlayActive(): boolean;
    isDesktopMetric(): boolean;
    isMobileMetric(): boolean;
    viewManifest(manifest: Manifest): void;
    viewCollection(collection: Collection): void;
    isFullScreen(): boolean;
    isHeaderPanelEnabled(): boolean;
    isLeftPanelEnabled(): boolean;
    isRightPanelEnabled(): boolean;
    isFooterPanelEnabled(): boolean;
    isMobile(): boolean;
    useArrowKeysToNavigate(): boolean;
    bookmark(): void;
    feedback(): void;
    getAlternateLocale(): ILocale | null;
    getSerializedLocales(): string | null;
    serializeLocales(locales: ILocale[]): string;
    changeLocale(locale: string): void;
    dispose(): void;
}
declare class BrowserDetect {
    browser: string;
    version: number | unknown;
    versionSearchString: string;
    dataBrowser: {
        string: string;
        subString: string;
        identity: string;
    }[];
    init(): void;
    searchString(data: any): any;
    searchVersion(dataString: any): number | undefined;
    searchVersionIE(): string;
}
export {};
