import { OnInit, EventEmitter, ElementRef, TemplateRef, ChangeDetectorRef } from '@angular/core';
import { MatCheckboxChange } from '@angular/material/checkbox';
import { MatDialog } from '@angular/material/dialog';
import { DirectoryDescriptor, FileDescriptor, FilemanagerComponent, FileViewTab, FSDescriptor, NgxFileManagerConfiguration } from '../filemanager.component';
import { FileSorting } from '../../types';
import { IconResolver } from '../icon-resolver';
import { TabulatorComponent } from '../../tabulator/tabulator.component';
import { DialogService, Fetch, KeyboardService, MenuItem } from '../../../public-api';
import { DomSanitizer } from '@angular/platform-browser';
import * as i0 from "@angular/core";
export declare class FileGridComponent implements OnInit {
    private readonly fetch;
    private readonly keyboard;
    private readonly dialog;
    private readonly matDialog;
    private readonly fileManager;
    private readonly changeDetector;
    private readonly sanitizer;
    filesRef: ElementRef;
    tabulator: TabulatorComponent;
    renameTemplate: TemplateRef<any>;
    private _path;
    set path(value: string);
    get path(): string;
    pathChange: EventEmitter<string>;
    config: NgxFileManagerConfiguration;
    showHiddenFiles: boolean;
    viewMode: "list" | "grid";
    gridSize: "small" | "normal" | "large";
    tab: FileViewTab;
    fileSelect: EventEmitter<FileDescriptor>;
    fileDblClick: EventEmitter<FileDescriptor>;
    folderSelect: EventEmitter<DirectoryDescriptor>;
    folderDblClick: EventEmitter<DirectoryDescriptor>;
    newTab: EventEmitter<{
        path: string;
    }>;
    loadFiles: EventEmitter<FSDescriptor[]>;
    directoryContents: FSDescriptor[];
    selection: FSDescriptor[];
    selectionChange: EventEmitter<FSDescriptor[]>;
    value: FSDescriptor[];
    valueChange: EventEmitter<FSDescriptor[]>;
    selectionText: string;
    sortedFolders: any[][];
    private readonly sorters;
    sortOrder: FileSorting;
    itemsPerRow: number;
    isArchive: boolean;
    userIsDraggingFile: boolean;
    draggingOver: boolean;
    showLoader: boolean;
    hideLoader: boolean;
    failedLoad: boolean;
    error: any;
    readonly columns: {
        id: string;
        label: string;
    }[];
    cols: {
        id: string;
        label: string;
    }[];
    folderContextMenu: MenuItem<FSDescriptor>[];
    fileContextMenu: MenuItem<FSDescriptor>[];
    performChecksum(path: any, digest: any): void;
    iconResolver: IconResolver;
    get libConfig(): Partial<{
        assetPath: string;
    }>;
    constructor(fetch: Fetch, keyboard: KeyboardService, dialog: DialogService, matDialog: MatDialog, fileManager: FilemanagerComponent, changeDetector: ChangeDetectorRef, sanitizer: DomSanitizer);
    ngOnInit(): Promise<void>;
    ngAfterViewInit(): void;
    loadFolder(): Promise<void>;
    flowRows(): void;
    onSelect(item: FSDescriptor, evt: any): void;
    onItemClick(file: FSDescriptor): void;
    onToggle(item: any, state: MatCheckboxChange): void;
    clearSelection(): Promise<void>;
    private _sortFilter;
    private getSelectionText;
    bytesToString(bytes: number, decimals?: number): string;
    resize(): void;
    onDragStart(evt: DragEvent, item: FSDescriptor): void;
    onDrop(ev: any): void;
    nameCellFormatter: any;
    onRowCtx({ event, row }: {
        event: any;
        row: any;
    }): void;
    onRowClick({ event, row, data }: {
        event: any;
        row: any;
        data: any;
    }): void;
    sort(): void;
    onUploadFile(evt?: FSDescriptor): void;
    onCreateFolder(data?: FSDescriptor): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<FileGridComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<FileGridComponent, "app-file-grid", never, { "path": { "alias": "path"; "required": false; }; "config": { "alias": "config"; "required": false; }; "showHiddenFiles": { "alias": "showHiddenFiles"; "required": false; }; "viewMode": { "alias": "viewMode"; "required": false; }; "gridSize": { "alias": "gridSize"; "required": false; }; "tab": { "alias": "tab"; "required": false; }; "selection": { "alias": "selection"; "required": false; }; "value": { "alias": "value"; "required": false; }; "sortOrder": { "alias": "sortOrder"; "required": false; }; }, { "pathChange": "pathChange"; "fileSelect": "fileSelect"; "fileDblClick": "fileDblClick"; "folderSelect": "folderSelect"; "folderDblClick": "folderDblClick"; "newTab": "newTab"; "loadFiles": "loadFiles"; "selectionChange": "selectionChange"; "valueChange": "valueChange"; }, never, never, true, never>;
}
