import { IWebComponentInstance, OmniaContext } from "../../../"; import { MediaPickerImageSettings, MediaPickerEnums, ImageInformation, MediaPickerVideo, MediaPickerStorageProviderContext, GuidValue, MediaPickerMedia, MediaPickerImageTransformationResult, Future } from "../../../models"; import { OmniaUxLocalization } from "../../UxModels"; import { MediaPickerProviderComponentProps } from "../../mediapicker"; import { VueComponentBase } from "../../VueComponentBase"; import { SettingsService, WebImageService, MediaPickerService } from "../../../services"; import { MediaProviderBaseLocalization } from "./loc/localize"; import { MediaPickerStore, MultilingualStore } from "../../../stores"; export interface MediaProviderComponentBaseSlots { bottom?: () => JSX.Element | Array; } export declare abstract class MediaProviderComponentBase extends VueComponentBase implements IWebComponentInstance, MediaPickerProviderComponentProps { providerContext: MediaPickerStorageProviderContext; providerId: GuidValue; saved: (result: MediaPickerMedia) => void; closed?: () => void; imageSettings?: MediaPickerImageSettings; preSelectedMedia?: MediaPickerVideo; selectableMediaTypes?: Array; setSearchKeyword: (value: string) => void; onChanged: (state: any) => void; enableMediaCaption?: boolean; uxLoc: OmniaUxLocalization; mediaProviderBaseLoc: MediaProviderBaseLocalization.locInterface; /** Define method to get data based on search keyword. Null is to hide the search box in media picker. */ onSearch: (searchKeyword: string) => Promise; protected providerSlots: MediaProviderComponentBaseSlots; protected onScroll: (payLoad: UIEvent) => void; protected settingsService: SettingsService; protected webImageService: WebImageService; protected omniaContext: OmniaContext; protected mediaPickerService: MediaPickerService; protected mediaPickerStore: MediaPickerStore; protected multilingualStore: MultilingualStore; private limitedSizeScalingSettings; private imageTransformComponentInput; protected imageProviderResult: MediaPickerImageTransformationResult; private keepOriginalSizeOptionValue; private selectedScalingOption; private selectedImageScaling; private isRetryingScalingImage; private isShowLoading; private isShowLoadingOverlay; private isShowRetryImageScalingDialog; private isFileTypeIsNotSupportedDialog; private isShowImageScalingDialog; private selectedImageResolvablePromise; private isSaved; private selectedMediaInformation; constructor(); protected save(resultToBeSaved: MediaPickerImageTransformationResult | MediaPickerVideo): void; protected transformImage(imageInfo: ImageInformation): Future; protected toggleLoadingUI(show: boolean, loadingStyle?: MediaPickerEnums.LoadingStyle): void; private setImageTransformInput; private getImageScalingSettingsKey; protected onImageTransformResultChanged(transformationResult: MediaPickerImageTransformationResult): void; private ensureRemoveBase64Format; private addNewImage; private initLimitedSizeScalingSettings; private checkIfFileSizeExceededLimitation; private handleValidatedImage; private handleImageScaling; private retryToScaleImage; private processLimitedImageFileSize; private onImageScalingOptionSelected; private handleSelectedScalingOptionFromDialog; private resizeImage; private closeImageScalingDialog; private renderImageTransformationBottomButtons; private resolveSavingImagePromise; private closeRetryImageScalingDialog; private closeFileTypeIsNotSupportedDialog; private onProviderContentScroll; private renderLoading; private renderCloseButton; private renderFileTypeIsNotSupportedDialog; private renderRetryImageScalingDialog; private renderImageTransformComponent; private renderImageScalingDialogDialog; private renderImageScalingDialogs; protected renderBase(getProviderSlotsFunc: () => Array | JSX.Element): VueTsxSupport.JSX.Element; }