import { PropertyValues } from 'lit';
import { AppTypeGuid, AppType } from './types/app.types';
import { FileOrderType, FileViewType } from './types/files.types';
import { ThemeController } from './controllers/theme-controller';
import { RealtimeFileEventType } from './types/realtime.types';
import { WeavyComponent } from './classes/weavy-component';
import { ComponentFeatures } from './contexts/features-context';
export declare const WY_FILES_TAGNAME = "wy-files";
declare global {
    interface HTMLElementTagNameMap {
        [WY_FILES_TAGNAME]: WyFiles;
    }
}
/**
 * Weavy component to render a list of uploaded files and linked files from cloud providers.
 *
 * @element wy-files
 * @class WyFiles
 * @extends {WeavyComponent}
 * @fires {WyAppEventType} wy-app - Fired whenever the app property changes.
 * @fires {WyPreviewOpenEventType} wy-preview-open - Fired when a preview overlay is about to open.
 * @fires {WyPreviewCloseEventType} wy-preview-close - Fired when a preview overlay is closed.
 */
export declare class WyFiles extends WeavyComponent {
    #private;
    static styles: import('lit').CSSResult[];
    componentType: AppTypeGuid;
    componentFeatures: ComponentFeatures;
    protected theme: ThemeController;
    /**
     * The view for showing the file list.
     * This value is persisted in sessionStorage.
     */
    view: FileViewType;
    /**
     * File order in the list. Order by combined with direction.
     * This value is persisted in sessionStorage.
     * Order by: "name" | "updated_at" | "size".
     */
    order: FileOrderType;
    /**
     * Enable showing trashed files.
     * This value is persisted in sessionStorage.
     */
    showTrashed: boolean;
    private filesQuery;
    private persistState;
    private infiniteScroll;
    private pagerRef;
    private previewRef;
    private dropZone;
    private appSubscribeMutation;
    private uploadBlobMutation;
    private externalBlobMutation?;
    private createFileMutation;
    private renameFileMutation?;
    private subscribeFileMutation?;
    private trashFileMutation?;
    private restoreFileMutation?;
    private deleteForeverFileMutation?;
    private handleBlobUpload;
    private handleExternalBlobs;
    private handleCreateFile;
    private handleSubscribe;
    protected getFilesQueryKey(app: AppType): (string | number)[];
    protected handleRealtimeFileCreated: (realtimeEvent: RealtimeFileEventType) => void;
    protected handleRealtimeFileUpdated: (_realtimeEvent: RealtimeFileEventType) => void;
    protected handleRealtimeFileTrashed: (_realtimeEvent: RealtimeFileEventType) => void;
    protected handleRealtimeFileRestored: (_realtimeEvent: RealtimeFileEventType) => void;
    protected handleRealtimeFileDeleted: (_realtimeEvent: RealtimeFileEventType) => void;
    protected handleRealtimeCommentCreated: () => void;
    constructor();
    protected willUpdate(changedProperties: PropertyValues<this>): Promise<void>;
    protected updated(): void;
    protected render(): import('../node_modules/lit-html/node/lit-html.js').TemplateResult<1>[];
    disconnectedCallback(): void;
}
//# sourceMappingURL=wy-files.d.ts.map