import { LitElement, PropertyValues } from 'lit';
import { ContextualTypes, 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';
import { ProductTypes } from './types/product.types';
declare const WyFiles_base: Constructor<import('./mixins/block-mixin').BlockProps & import('./mixins/block-mixin').BlockContextProviderProps & import('./mixins/block-mixin').BlockContextProps & import('./mixins/block-mixin').BlockSettingProps & import('./types/product.types').ProductFeatureProps> & 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 {
    #private;
    static styles: import('lit').CSSResult[];
    productType: ProductTypes;
    contextualType: ContextualTypes;
    /**
     * 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;
    constructor();
    protected willUpdate(changedProperties: PropertyValues<this & {
        app: AppType;
        user: UserType;
    }>): void;
    protected updated(): void;
    protected render(): import('../node_modules/lit-html/node/lit-html.js').TemplateResult<1>;
    disconnectedCallback(): void;
}
export type WyFilesType = Constructor<WyFiles>;
export {};
//# sourceMappingURL=wy-files.d.ts.map