import { EventEmitter } from '../../stencil-public-runtime';
import { QuickMessageLibraryFile } from '../../store/type';
export declare class QuickMessageFileComponent {
    handleClose?: () => void;
    value?: string | QuickMessageLibraryFile[];
    isMaster: boolean;
    selectedUrl?: string[];
    private searchFile;
    private files;
    private isLoading;
    private isLoadingMore;
    private isUploading;
    private isDeleting;
    private totalFiles;
    private totalPages;
    private renameTargetId;
    private renameName;
    private renameExtension;
    private isRenaming;
    private openMenuId;
    private readonly allowedFileExtensions;
    private readonly pageSize;
    private readonly localUploadPrefix;
    private page;
    private currentSearch;
    private fileInput?;
    filesChange: EventEmitter<QuickMessageLibraryFile[]>;
    sendFiles: EventEmitter<QuickMessageLibraryFile[]>;
    selectedFiles: EventEmitter<QuickMessageLibraryFile[]>;
    private pendingDeleteFileIds;
    private cachedFilteredFiles;
    private cachedSearchTerm;
    private cachedFilesLength;
    protected handleDocumentClick(event: Event): void;
    componentWillLoad(): Promise<void>;
    protected handleValueChange(newValue?: string | QuickMessageLibraryFile[]): void;
    protected handleSelectedUrlChange(newSelectedUrl?: string[]): void;
    private syncSelectedFilesFromProp;
    private syncFilesFromProp;
    private parseFilesValue;
    private cloneFiles;
    private setFiles;
    private isLocalUpload;
    private getRemoteFileCount;
    private mergeFetchedFiles;
    /**
     * Memoized file filtering - only recalculates when search term or files change
     * Performance: Reduces operations from 60fps to only when user types
     */
    private filterFiles;
    private splitFileName;
    private getRenameTarget;
    private openRenameModal;
    private closeRenameModal;
    private toggleMenu;
    private closeMenu;
    private handleMenuRename;
    private requestDeleteFile;
    private handleRenameInput;
    private handleRenameSubmit;
    private toggleFileSelection;
    private toggleSelectAllFiles;
    private triggerFileUpload;
    private handleFileSelection;
    private uploadAndCreateFiles;
    private renderFileMeta;
    private handleSendFiles;
    private requestDeleteSelectedFiles;
    private confirmDeleteSelectedFiles;
    private fetchFiles;
    private loadMoreFiles;
    private handleScroll;
    private handleSearchInput;
    private handleSearchSubmit;
    private clearSearch;
    private renderRenameModal;
    disconnectedCallback(): void;
    render(): any;
}
