import { LitElement, PropertyValues } from 'lit';
import { AppTypes, AppType } from './types/app.types';
import { UserType } from './types/users.types';
import { FileOrderType, FileViewType } from './types/files.types';
import { RealtimeFileEventType } from './types/realtime.types';
import { Constructor } from './types/generic.types';

declare const WyFiles_base: Constructor<import('./mixins/app-mixin').AppProps & import('./mixins/app-mixin').AppContextProps & import('./mixins/app-mixin').AppSettingProps & import('./types/features.types').FeatureProps> & typeof LitElement;
/**
 * Files component to render a list of uploaded files and linked files from cloud providers.
 *
 * @element wy-files
 * @class WyFiles
 */
export declare class WyFiles extends WyFiles_base {
    static styles: import('lit').CSSResult[];
    appType: AppTypes;
    /**
     * 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;
    /**
     * Event: New file created.
     * @event wy:file_created
     */
    protected realtimeFileCreatedEvent: (realtimeEvent: RealtimeFileEventType) => CustomEvent<RealtimeFileEventType>;
    /**
     * Event: File updated.
     * @event wy:file_updated
     */
    protected realtimeFileUpdatedEvent: (realtimeEvent: RealtimeFileEventType) => CustomEvent<RealtimeFileEventType>;
    /**
     * Event: File trashed.
     * @event wy:file_trashed
     */
    protected realtimeFileTrashedEvent: (realtimeEvent: RealtimeFileEventType) => CustomEvent<RealtimeFileEventType>;
    /**
     * Event: File restored.
     * @event wy:file_restored
     */
    protected realtimeFileRestoredEvent: (realtimeEvent: RealtimeFileEventType) => CustomEvent<RealtimeFileEventType>;
    /**
     * Event: File permanently deleted.
     * @event wy:file_deleted
     */
    protected realtimeFileDeletedEvent: (realtimeEvent: RealtimeFileEventType) => CustomEvent<RealtimeFileEventType>;
    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(): (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;
    private unsubscribeToRealtime;
    constructor();
    protected willUpdate(changedProperties: PropertyValues<this & {
        app: AppType;
        user: UserType;
    }>): void;
    protected updated(): void;
    protected render(): import('lit-html').TemplateResult<1>;
    disconnectedCallback(): void;
}
export type WyFilesType = Constructor<WyFiles>;
export {};
//# sourceMappingURL=wy-files.d.ts.map