import { Popup } from '@syncfusion/ej2-popups';
import { FailureEventArgs, Uploader } from '@syncfusion/ej2-inputs';
import { MediaType } from '../../common/types';
import { IRichTextEditor } from '../base/interface';
import { IShowPopupArgs } from '../../common/interface';
import { ImageSuccessEventArgs, MediaSuccessEventArgs } from '../../common/interface';
export declare class PopupUploader {
    private parent;
    private rteID;
    private isDestroyed;
    private uploadFailureTime;
    private uploadSuccessTime;
    constructor(parent: IRichTextEditor);
    /**
     * Creates and renders a popup for media upload
     *
     * @param {MediaType} type - Type of popup (Image, Video, Audio)
     * @param {HTMLElement} element - Element to append popup
     * @returns {Popup} - Returns the created popup
     * @hidden
     */
    renderPopup(type: MediaType, element: HTMLElement): Popup;
    /**
     * Creates and initializes an uploader for the specified media type
     *
     * @param {MediaType} type - Type of media (Image, Video, Audio)
     * @param {DragEvent} dragEvent - Drag event data
     * @param {HTMLElement} [mediaElement] - Optional media element for upload
     * @param {HTMLElement} target - Target element to append uploader
     * @param {Popup} popup - Uploader popup object
     * @returns {Uploader} - Returns the created uploader
     * @hidden
     */
    createUploader(type: MediaType, dragEvent: DragEvent, mediaElement: HTMLElement, target: HTMLElement, popup: Popup): Uploader;
    /**
     * Called when drop upload fails
     *
     * @param {HTMLElement} mediaEle - The media element
     * @param {IShowPopupArgs} args - Popup arguments
     * @param {FailureEventArgs} e - Failure event arguments
     * @param {Popup} popup - Uploader popup object
     * @returns {void}
     * @hidden
     */
    uploadFailure(mediaEle: HTMLElement, args: IShowPopupArgs, e: FailureEventArgs, popup: Popup): void;
    /**
     * Called when upload is successful
     *
     * @param {HTMLElement} mediaElement - The media element
     * @param {DragEvent} dragEvent - The drag event
     * @param {IShowPopupArgs} args - Popup arguments
     * @param {ImageSuccessEventArgs | MediaSuccessEventArgs} e - Success event arguments
     * @param {Popup} popup - Uploader popup object
     * @returns {void}
     * @hidden
     */
    uploadSuccess(mediaElement: HTMLElement, dragEvent: DragEvent, args: IShowPopupArgs, e: ImageSuccessEventArgs | MediaSuccessEventArgs, popup: Popup): void;
    /**
     * Refreshes popup position relative to element
     *
     * @param {HTMLElement} targetElement - Element to position popup relative to
     * @param {Popup} popup - Uploader popup object
     * @returns {void}
     * @hidden
     */
    refreshPopup(targetElement: HTMLElement, popup: Popup): void;
    private enableToolbarItems;
    private onPopupClose;
    private getUploaderInstance;
    /**
     * Destroys popup and uploader
     *
     * @returns {void}
     * @hidden
     */
    destroy(): void;
}
