import { BaseExtension } from "../../modules/uv-shared-module/BaseExtension";
import { ContentLeftPanel } from "../../modules/uv-contentleftpanel-module/ContentLeftPanel";
import { CroppedImageDimensions } from "./CroppedImageDimensions";
import { ExternalContentDialogue } from "../../modules/uv-dialogues-module/ExternalContentDialogue";
import { FooterPanel as MobileFooterPanel } from "../../modules/uv-osdmobilefooterpanel-module/MobileFooter";
import { FooterPanel } from "../../modules/uv-searchfooterpanel-module/FooterPanel";
import { HelpDialogue } from "../../modules/uv-dialogues-module/HelpDialogue";
import { Mode } from "./Mode";
import { MoreInfoRightPanel } from "../../modules/uv-moreinforightpanel-module/MoreInfoRightPanel";
import { MultiSelectDialogue } from "../../modules/uv-multiselectdialogue-module/MultiSelectDialogue";
import { PagingHeaderPanel } from "../../modules/uv-pagingheaderpanel-module/PagingHeaderPanel";
import { OpenSeadragonCenterPanel } from "../../modules/uv-openseadragoncenterpanel-module/OpenSeadragonCenterPanel";
import { SettingsDialogue } from "./SettingsDialogue";
import { ShareDialogue } from "./ShareDialogue";
import { AnnotationGroup, AnnotationRect } from "@iiif/manifold";
import { Canvas, TreeNode, Service, Size } from "manifesto.js";
import "./theme/theme.less";
import { Root } from "react-dom/client";
import { Config } from "./config/Config";
import { AdjustImageDialogue } from "../../modules/uv-dialogues-module/AdjustImageDialogue";
export default class OpenSeadragonExtension extends BaseExtension<Config> {
    $downloadDialogue: JQuery;
    $externalContentDialogue: JQuery;
    $helpDialogue: JQuery;
    $multiSelectDialogue: JQuery;
    $settingsDialogue: JQuery;
    $shareDialogue: JQuery;
    $adjustImageDialogue: JQuery;
    centerPanel: OpenSeadragonCenterPanel;
    currentAnnotationRect: AnnotationRect | null;
    currentRotation: number;
    downloadDialogueRoot: Root;
    externalContentDialogue: ExternalContentDialogue;
    footerPanel: FooterPanel;
    headerPanel: PagingHeaderPanel;
    helpDialogue: HelpDialogue;
    adjustImageDialogue: AdjustImageDialogue;
    isAnnotating: boolean;
    leftPanel: ContentLeftPanel;
    mobileFooterPanel: MobileFooterPanel;
    mode: Mode;
    multiSelectDialogue: MultiSelectDialogue;
    previousAnnotationRect: AnnotationRect | null;
    rightPanel: MoreInfoRightPanel;
    settingsDialogue: SettingsDialogue;
    shareDialogue: ShareDialogue;
    defaultConfig: Config;
    create(): void;
    createModules(): void;
    render(): void;
    renderDownloadDialogue(): void;
    closeActiveDialogue(): void;
    checkForTarget(): void;
    checkForAnnotations(): void;
    annotate(annotations: AnnotationGroup[], terms?: string): void;
    groupWebAnnotationsByTarget(annotations: any): AnnotationGroup[];
    groupOpenAnnotationsByTarget(annotations: any): AnnotationGroup[];
    checkForSearchParam(): void;
    checkForRotationParam(): void;
    changeCanvas(canvasIndex: number): void;
    getViewer(): any;
    getMode(): Mode;
    getViewportBounds(): string | null;
    getViewerRotation(): number | null;
    viewRange(path: string): void;
    viewLabel(label: string): void;
    treeNodeSelected(node: TreeNode): void;
    clearAnnotations(): void;
    prevSearchResult(): void;
    nextSearchResult(): void;
    bookmark(): void;
    print(): void;
    getCroppedImageDimensions(canvas: Canvas, viewer: any): CroppedImageDimensions | null;
    getCroppedImageUri(canvas: Canvas, viewer: any): string | null;
    getConfinedImageDimensions(canvas: Canvas, longestSide: number): Size;
    getConfinedImageUri(canvas: Canvas, width: number): string | null;
    getImageId(canvas: Canvas): string | null;
    getImageBaseUri(canvas: Canvas): string;
    getInfoUri(canvas: Canvas): string;
    getEmbedScript(template: string, width: number, height: number, zoom: string, rotation: number): string;
    isSearchEnabled(): boolean;
    isPagingSettingEnabled(): boolean;
    getAutoCompleteService(): Service | null;
    getAutoCompleteUri(): string | null;
    getSearchServiceUri(): string | null;
    search(terms: string): void;
    getSearchResults(searchUri: string, terms: string, searchResults: AnnotationGroup[], cb: (results: AnnotationGroup[]) => void): void;
    getAnnotationRects(): AnnotationRect[];
    getCurrentAnnotationRectIndex(): number;
    getTotalAnnotationRects(): number;
    isFirstAnnotationRect(): boolean;
    getLastAnnotationRectIndex(): number;
    getPrevPageIndex(canvasIndex?: number): number;
    getNextPageIndex(canvasIndex?: number): number;
    getPagedIndices(canvasIndex?: number): number[];
}
