import { IMediaPicker } from "@omnia/fx/ux";
import { OmniaContext } from "../../";
import { SubscriptionHandler } from "../../core";
import { GuidValue, MediaPickerEnums, MediaPickerImage, MediaPickerImageSettings, MediaPickerImageTransformationResult, MediaPickerLimitedSizeSettings, MediaPickerMedia, MediaPickerProvider, MediaPickerRenditionData, MediaPickerStorageProviderContext, MediaPickerTransformedBase64Image, MediaPickerVideo } from "../../models";
import { MediaPickerService, SettingsService } from "../../services";
import { MediaPickerStore, MultilingualStore } from "../../stores";
import { VueComponentBase, VueComponentBaseProps } from "../VueComponentBase";
import { MediaPickerLocalization } from "./loc/localize";
declare interface MediaPickerActionButton {
    text: string;
    show: boolean;
    onClick: any;
    icon?: string;
    iconLeft?: boolean;
    loading?: boolean;
    highLighted?: boolean;
    leftAligned?: boolean;
}
export declare class MediaPickerRenderer extends VueComponentBase<IMediaPicker & VueComponentBaseProps> {
    selectableMediaTypes: MediaPickerEnums.OmniaMediaTypes[];
    providerConfiguration?: (providers: MediaPickerProvider[]) => MediaPickerProvider[];
    selectedMedia?: Array<MediaPickerImage | MediaPickerVideo> | MediaPickerImage | MediaPickerVideo;
    providerContext: MediaPickerStorageProviderContext;
    imageSettings?: MediaPickerImageSettings;
    saved: (result: MediaPickerMedia | Array<MediaPickerMedia>) => void;
    closed?: () => void;
    enableGallery: boolean;
    itemLimit: number;
    enableMediaCaption?: boolean;
    protected settingsService: SettingsService<MediaPickerLimitedSizeSettings>;
    omniaContext: OmniaContext;
    multilingualStore: MultilingualStore;
    private localizationService;
    subscriptionHandler: SubscriptionHandler;
    loc: MediaPickerLocalization.locInterface;
    private uxLoc;
    mediaPickerService: MediaPickerService;
    mediaPickerStore: MediaPickerStore;
    private id_search;
    private defaultEditImageMenuId;
    private selectedMediasMenuId;
    private activedMenuItemId;
    private activedProvider;
    private transformerElementName;
    private editingImageActionButtons;
    private convertingFromBase64ToMediaPicker;
    private imgThatNeedToConvertFromBase64ToMediaPicker;
    private selectedMediaGallery?;
    private editingMediaIndex;
    private editingMediaId;
    private preSelectedImgMetada;
    private mediaStates;
    private cacheKey;
    private galleryPanelRefreshKey;
    private finishItemCount;
    isSearching: boolean;
    hasLoadedInfiniteScrollHandler: boolean;
    searchTimeout: any;
    searchQueryText: string;
    currentFile: {
        size: number;
        width: number;
        height: number;
    };
    static imageBankElementProvider: string;
    private transformerResults;
    private menuItems;
    private registeredProviders;
    private readonly navigationDrawerWidth;
    created(): void;
    private processMediaGallery;
    private initMediaState;
    private isMediaPickerVideo;
    private init;
    private preloadImageMetadata;
    private processSelectedMediaInput;
    private isPromise;
    private handleMigrateMedia;
    private EnsureDefaultImageEditProviderIsSelected;
    private createMediaPickerImageFromUrl;
    onKeypress(event: any): void;
    private onPickerClose;
    private setSearchKeyword;
    onSearch(immediate?: boolean): void;
    private onEditingImageSaveButtonClick;
    private getFileNameFromBase64;
    private onSelectMenuItem;
    private onChangedExistedImage;
    private getMediaProvider;
    CurrentRendition(): [GuidValue, MediaPickerRenditionData[], MediaPickerTransformedBase64Image];
    setActiveEditingMedia(index: number): void;
    private onMediaOrderChange;
    onEditingMediaIndexChange(): void;
    private onMediaRemove;
    private onDeleteImagePostProcessing;
    private SaveAllMedia;
    private updateMediaToServer;
    private saveMediaToServer;
    private onStateChange;
    panelRef: import("vue").Ref<any>;
    renderMenuItems(): VueTsxSupport.JSX.Element[];
    onNewMediaBtnClick(): void;
    getData(): (MediaPickerImage | MediaPickerImageTransformationResult | MediaPickerVideo)[];
    renderMultiSelectPanel(): VueTsxSupport.JSX.Element;
    renderLeftMenu(): VueTsxSupport.JSX.Element;
    renderActionButtons(buttons: Array<MediaPickerActionButton>): JSX.Element[];
    private renderEditImageForm;
    private deSelectMediaItemPanel;
    private renderActivedProvider;
    private onCreatedProviderComponent;
    private activedProviderComponent;
    private isShowLoadingOverlay;
    private isShowLoading;
    private renderLoading;
    private renderCardActions;
    private renderMainForm;
    render(): VueTsxSupport.JSX.Element;
}
export {};
