import * as i0 from '@angular/core';
import * as i8 from '@acorex/components/tree-view-legacy';
import { AXTreeViewLegacyComponent, AXTreeItemClickBaseEventLegacy } from '@acorex/components/tree-view-legacy';
import { MXBaseComponent } from '@acorex/cdk/common';
import * as i7 from '@acorex/components/drawer';
import { AXDrawerComponent } from '@acorex/components/drawer';
import * as i6 from '@acorex/components/menu';
import { AXContextMenuComponent, AXContextMenuOpeningEvent, AXContextMenuItemsClickEvent } from '@acorex/components/menu';
import * as i1 from '@acorex/components/decorators';
import * as i2 from '@acorex/components/button';
import * as i3 from '@acorex/components/breadcrumbs';
import * as i4 from '@angular/common';
import * as i5 from '@acorex/components/toolbar';

declare class AXFileExplorerContainerComponent {
    static ɵfac: i0.ɵɵFactoryDeclaration<AXFileExplorerContainerComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<AXFileExplorerContainerComponent, "ax-file-explorer-container", never, {}, {}, never, ["ax-file-explorer-tree", "ax-file-explorer-view"], true, never>;
}

type ViewModeType = 'ax-large-icon' | 'ax-small-icon' | 'ax-list-icon';
interface AXFileExplorerSchema {
    id: number | string;
    parentId?: number | string;
    text: string;
    extension: string;
    icon?: string;
    description?: string;
    lastModify?: string;
    size?: string;
}

declare class AXFileExplorerInternalService {
    viewMode: i0.WritableSignal<ViewModeType>;
    treeViewState: i0.WritableSignal<boolean>;
    allData: i0.WritableSignal<AXFileExplorerSchema[]>;
    showData: i0.WritableSignal<AXFileExplorerSchema[]>;
    breadcrumbsData: i0.WritableSignal<string[]>;
    activeFolderId: i0.WritableSignal<string | number>;
    dataCallBack: i0.WritableSignal<(selectedItemId?: string | number, sortBy?: "name" | "date" | "type") => any>;
    treeViewInstant: i0.WritableSignal<AXTreeViewLegacyComponent>;
    clickedItems: Set<unknown>;
    findItemInNestedArray(array: any[], predicate: (item: any) => boolean): any;
    dbClickHandler(item?: AXFileExplorerSchema, isTreeViewClicked?: boolean): Promise<void>;
    static ɵfac: i0.ɵɵFactoryDeclaration<AXFileExplorerInternalService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<AXFileExplorerInternalService>;
}

declare class AXFileExplorerService {
    private internalService;
    backButtonHandler(): void;
    menuToggleHandler(): void;
    changeViewHandler(v: ViewModeType): void;
    sortItemHandler(sort: 'name' | 'date' | 'type'): Promise<void>;
    static ɵfac: i0.ɵɵFactoryDeclaration<AXFileExplorerService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<AXFileExplorerService>;
}

declare class AXFileExplorerHeaderComponent {
    protected service: AXFileExplorerService;
    protected internalService: AXFileExplorerInternalService;
    static ɵfac: i0.ɵɵFactoryDeclaration<AXFileExplorerHeaderComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<AXFileExplorerHeaderComponent, "ax-file-explorer-header", never, {}, {}, never, never, true, never>;
}

declare class AXFileExplorerItemComponent extends MXBaseComponent {
    data: i0.InputSignal<AXFileExplorerSchema>;
    dbClick: i0.OutputEmitterRef<void>;
    viewMode: i0.InputSignal<ViewModeType>;
    protected dbClickHandler(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<AXFileExplorerItemComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<AXFileExplorerItemComponent, "ax-file-explorer-item", never, { "data": { "alias": "data"; "required": false; "isSignal": true; }; "viewMode": { "alias": "viewMode"; "required": false; "isSignal": true; }; }, { "dbClick": "dbClick"; }, never, never, true, never>;
}

declare class AXFileExplorerTreeComponent {
    #private;
    protected internalService: AXFileExplorerInternalService;
    protected drawer: i0.Signal<AXDrawerComponent>;
    protected treeView: i0.Signal<AXTreeViewLegacyComponent>;
    protected openFolderOnViewHandler(e: AXTreeItemClickBaseEventLegacy): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<AXFileExplorerTreeComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<AXFileExplorerTreeComponent, "ax-file-explorer-tree", never, {}, {}, never, never, true, never>;
}

declare class AXFileExplorerViewComponent {
    #private;
    dataCallBack: i0.InputSignal<(selectedItemId?: string | number, sortBy?: "name" | "date" | "type") => any>;
    protected contextMenu: i0.Signal<AXContextMenuComponent>;
    protected internalService: AXFileExplorerInternalService;
    protected setInitialAllData(): Promise<void>;
    protected handleContextMenuOpening(e: AXContextMenuOpeningEvent): void;
    protected handleContextMenuItemClick(e: AXContextMenuItemsClickEvent): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<AXFileExplorerViewComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<AXFileExplorerViewComponent, "ax-file-explorer-view", never, { "dataCallBack": { "alias": "dataCallBack"; "required": true; "isSignal": true; }; }, {}, never, ["ax-file-explorer-header"], true, never>;
}

declare class AXFileExplorerModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<AXFileExplorerModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<AXFileExplorerModule, never, [typeof i1.AXDecoratorModule, typeof i2.AXButtonModule, typeof i3.AXBreadcrumbsModule, typeof i4.CommonModule, typeof i5.AXToolBarModule, typeof i6.AXMenuModule, typeof i7.AXDrawerModule, typeof i8.AXTreeViewLegacyModule, typeof AXFileExplorerContainerComponent, typeof AXFileExplorerViewComponent, typeof AXFileExplorerItemComponent, typeof AXFileExplorerHeaderComponent, typeof AXFileExplorerTreeComponent], [typeof AXFileExplorerContainerComponent, typeof AXFileExplorerViewComponent, typeof AXFileExplorerItemComponent, typeof AXFileExplorerHeaderComponent, typeof AXFileExplorerTreeComponent]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<AXFileExplorerModule>;
}

export { AXFileExplorerContainerComponent, AXFileExplorerHeaderComponent, AXFileExplorerItemComponent, AXFileExplorerModule, AXFileExplorerService, AXFileExplorerTreeComponent, AXFileExplorerViewComponent };
export type { AXFileExplorerSchema, ViewModeType };
