import { AdjustImageDialogue, ChoiceSwitchDialogue, BaseConfig, CenterPanelContent, CenterPanelOptions, DialogueContent, DialogueOptions, DownloadDialogueContent, DownloadDialogueOptions, FooterPanelContent, FooterPanelOptions, HeaderPanelContent, HeaderPanelOptions, ModuleConfig, SettingsDialogueContent, SettingsDialogueOptions, ShareDialogueContent, ShareDialogueOptions } from "@/content-handlers/iiif/BaseConfig";
import { ContentLeftPanel } from "../../config/ContentLeftPanel";
type MultiSelectDialogueOptions = DialogueOptions & {
    /** Threshold for chunked resizing of gallery thumbnails */
    galleryThumbChunkedResizingThreshold: number;
    /** Height of the gallery thumbnail */
    galleryThumbHeight: number;
    /** Padding for loading gallery thumbnails */
    galleryThumbLoadPadding: number;
    /** Width of the gallery thumbnail */
    galleryThumbWidth: number;
    /** Determines if page mode is enabled */
    pageModeEnabled: boolean;
};
type MultiSelectDialogueContent = DialogueContent & {
    download: string;
    selectAll: string;
    title: string;
};
export type MultiSelectDialogue = ModuleConfig & {
    options: MultiSelectDialogueOptions;
    content: MultiSelectDialogueContent;
};
type PagingHeaderPanelOptions = HeaderPanelOptions & {
    /** Determines if autocomplete for words is allowed */
    autocompleteAllowWords: boolean;
    /** Determines if autocomplete box is enabled */
    autoCompleteBoxEnabled: boolean;
    /** Determines if gallery button is enabled */
    galleryButtonEnabled: boolean;
    /** Determines if image selection box is enabled */
    imageSelectionBoxEnabled: boolean;
    /** Determines if mode options is enabled */
    modeOptionsEnabled: boolean;
    /** Determines if page mode is enabled */
    pageModeEnabled: boolean;
    /** Determines if paging toggle is enabled */
    pagingToggleEnabled: boolean;
};
type PagingHeaderPanelContent = HeaderPanelContent & {
    emptyValue: string;
    first: string;
    firstImage: string;
    firstPage: string;
    folio: string;
    gallery: string;
    go: string;
    help: string;
    image: string;
    last: string;
    lastImage: string;
    lastPage: string;
    next: string;
    nextImage: string;
    nextPage: string;
    of: string;
    oneUp: string;
    page: string;
    pageSearchLabel: string;
    previous: string;
    previousImage: string;
    previousPage: string;
    twoUp: string;
};
type PagingHeaderPanel = ModuleConfig & {
    options: PagingHeaderPanelOptions;
    content: PagingHeaderPanelContent;
};
type OpenSeadragonCenterPanelOptions = CenterPanelOptions & {
    /** Duration of the animation */
    animationTime: number;
    /** Determines if controls are hidden automatically */
    autoHideControls: boolean;
    /** Determines if required statement is enabled */
    requiredStatementEnabled: boolean;
    /** Time taken to blend images */
    blendTime: number;
    /** Determines if panning is constrained */
    constrainDuringPan: boolean;
    /** Time after which controls fade after inactivity */
    controlsFadeAfterInactive: number;
    /** Delay before controls start to fade */
    controlsFadeDelay: number;
    /** Duration of controls fade */
    controlsFadeLength: number;
    /** Default zoom level */
    defaultZoomLevel: number;
    /** Determines if annotation is enabled */
    doubleClickAnnotationEnabled: boolean;
    /** Determines if rendering is immediate */
    immediateRender: boolean;
    /** Maximum pixel ratio for zoom */
    maxZoomPixelRatio: number;
    /** Position of the navigator */
    navigatorPosition: string;
    /** Gap between pages */
    pageGap: number;
    /** Determines if home control is shown */
    showHomeControl: boolean;
    /** Determines if adjust image control is shown */
    showAdjustImageControl: boolean;
    /** Ratio of visibility */
    visibilityRatio: number;
    /** The maximum amount of time in milliseconds an image operation can take */
    tileTimeout: number;
    /** Whether to zoom in to first annotation on load */
    zoomToInitialAnnotation: boolean;
};
type OpenSeadragonCenterPanelContent = CenterPanelContent & {
    attribution: string;
    goHome: string;
    imageUnavailable: string;
    mediaViewer: string;
    nextImage: string;
    previousImage: string;
    rotateRight: string;
    zoomIn: string;
    zoomOut: string;
    adjustImage: string;
    layers: string;
};
type OpenSeadragonCenterPanel = ModuleConfig & {
    options: OpenSeadragonCenterPanelOptions;
    content: OpenSeadragonCenterPanelContent;
};
type SearchFooterPanelOptions = FooterPanelOptions & {
    /** Determines if autocomplete for words is allowed */
    autocompleteAllowWords: boolean;
    /** Number of terms to elide in details */
    elideDetailsTermsCount: number;
    /** Number of terms to elide in results */
    elideResultsTermsCount: number;
    /** Determines if image mode is forced */
    forceImageMode: boolean;
    /** Determines if page mode is enabled */
    pageModeEnabled: boolean;
    /** Determines if position marker is enabled */
    positionMarkerEnabled: boolean;
};
type SearchFooterPanelContent = FooterPanelContent & {
    clearSearch: string;
    defaultLabel: string;
    displaying: string;
    enterKeyword: string;
    image: string;
    imageCaps: string;
    instanceFound: string;
    instancesFound: string;
    nextResult: string;
    page: string;
    pageCaps: string;
    previousResult: string;
    print: string;
    resultFoundFor: string;
    resultsFoundFor: string;
    searchWithin: string;
};
type SearchFooterPanel = ModuleConfig & {
    options: SearchFooterPanelOptions;
    content: SearchFooterPanelContent;
};
type MobileFooterPanelOptions = FooterPanelOptions & {
    helpEnabled: boolean;
    helpUrl: string;
};
type MobileFooterPanelContent = FooterPanelContent & {
    rotateRight: string;
    moreInfo: string;
    openLeftPanel: string;
    closeLeftPanel: string;
    openRightPanel: string;
    closeRightPanel: string;
    zoomIn: string;
    zoomOut: string;
    help: string;
};
type MobileFooterPanel = ModuleConfig & {
    options: MobileFooterPanelOptions;
    content: MobileFooterPanelContent;
};
type OSDDownloadDialogueOptions = DownloadDialogueOptions & {
    /** Size of the confined image */
    confinedImageSize: number;
    /** Determines if download of current view is enabled */
    downloadCurrentViewEnabled: boolean;
    /** Determines if download of whole image in high resolution is enabled */
    downloadWholeImageHighResEnabled: boolean;
    /** Determines if download of whole image in low resolution is enabled */
    downloadWholeImageLowResEnabled: boolean;
    /** Maximum width of the image */
    maxImageWidth: number;
    /** Minimum width of the downloadable image */
    minImageWidth: number;
    /** Determines if selection is enabled */
    selectionEnabled: boolean;
};
type OSDDownloadDialogueContent = DownloadDialogueContent & {
    allPages: string;
    currentViewAsJpg: string;
    currentViewAsJpgExplanation: string;
    download: string;
    downloadSelection: string;
    downloadSelectionExplanation: string;
    editSettings: string;
    entireDocument: string;
    entireFileAsOriginal: string;
    entireFileAsOriginalWithFormat: string;
    individualPages: string;
    noneAvailable: string;
    pagingNote: string;
    preview: string;
    selection: string;
    termsOfUse: string;
    title: string;
    wholeImageHighRes: string;
    wholeImageHighResExplanation: string;
    wholeImageLowResAsJpg: string;
    wholeImageLowResAsJpgExplanation: string;
    wholeImagesHighRes: string;
    wholeImagesHighResExplanation: string;
};
type OSDDownloadDialogue = ModuleConfig & {
    options: OSDDownloadDialogueOptions;
    content: OSDDownloadDialogueContent;
};
type OSDShareDialogueOptions = ShareDialogueOptions & {};
type OSDShareDialogueContent = ShareDialogueContent & {};
type OSDShareDialogue = ModuleConfig & {
    options: OSDShareDialogueOptions;
    content: OSDShareDialogueContent;
};
type OSDSettingsDialogueOptions = SettingsDialogueOptions & {};
type OSDSettingsDialogueContent = SettingsDialogueContent & {};
type OSDSettingsDialogue = ModuleConfig & {
    options: OSDSettingsDialogueOptions;
    content: OSDSettingsDialogueContent;
};
type Modules = {
    contentLeftPanel: ContentLeftPanel;
    downloadDialogue: OSDDownloadDialogue;
    multiSelectDialogue: MultiSelectDialogue;
    pagingHeaderPanel: PagingHeaderPanel;
    openSeadragonCenterPanel: OpenSeadragonCenterPanel;
    searchFooterPanel: SearchFooterPanel;
    mobileFooterPanel: MobileFooterPanel;
    shareDialogue: OSDShareDialogue;
    settingsDialogue: OSDSettingsDialogue;
    adjustImageDialogue: AdjustImageDialogue;
    choiceSwitchDialogue: ChoiceSwitchDialogue;
};
export type Config = BaseConfig & {
    modules: Modules;
};
export {};
