import { ChangeDetectorRef, ElementRef, EventEmitter, OnInit, SimpleChanges } from '@angular/core';
import { IIdentified, IManagedObject, InventoryService } from '@c8y/client';
import { AssetSelectorBase } from './asset-selector-base';
import { AssetSelectionChangeEvent, AssetSelectorOptions } from './asset-selector.model';
import { AssetSelectorService } from './asset-selector.service';
import { GroupNode } from './group-node';
import { GroupNodeService } from './group-node.service';
import * as i0 from "@angular/core";
export declare class MillerViewComponent extends AssetSelectorBase implements OnInit {
    protected groupNodeService: GroupNodeService;
    protected inventory: InventoryService;
    protected assetSelectorService: AssetSelectorService;
    protected cd: ChangeDetectorRef;
    /**
     * Config object containing all options for the asset selector.
     */
    config: AssetSelectorOptions;
    /**
     * The asset to use as root.
     */
    asset: IIdentified;
    /**
     * The selected devices.
     */
    selectedDevice: IManagedObject;
    /**
     * The node to use as root. You can either set this, or the asset to start from.
     */
    rootNode: GroupNode;
    /**
     * Emits if the selection changes
     */
    onSelected: EventEmitter<AssetSelectionChangeEvent>;
    /**
     * Emits if the currently selected asset is cleared.
     */
    onClearSelected: EventEmitter<void>;
    /**
     * @ignore
     */
    millerViewWrapper: ElementRef;
    /**
     * The column array will contain all currently selected nodes
     *  which will form the miller view columns (only one per level).
     */
    columns: any[];
    /**
     * The current filter applied. Used for the empty state text in the view.
     */
    filterText: string;
    /**
     * Index of the column used to check where to show the loading state.
     */
    columnIndex: number;
    container: '' | 'body';
    configOptionsDefault: AssetSelectorOptions;
    /**
     * The height of the first asset selector header.
     */
    assetSelectorHeaderHeight$: import("rxjs").Observable<string>;
    private assetSelectors;
    constructor(groupNodeService: GroupNodeService, inventory: InventoryService, assetSelectorService: AssetSelectorService, cd: ChangeDetectorRef);
    /**
     * @ignore
     */
    ngOnInit(): Promise<void>;
    /**
     * @ignore
     */
    ngOnChanges(changes: SimpleChanges): Promise<void>;
    /**
     * @ignore
     */
    ngAfterViewInit(): void;
    /**
     * Create a new column with the selected node as root.
     */
    addNewColumn(node: any): void;
    /**
     * Change the loading state of the asset selector.
     */
    onLoad(event: any): void;
    /**
     * Add the selected node to the selected array.
     */
    onSelectionChange(event: AssetSelectionChangeEvent): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<MillerViewComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<MillerViewComponent, "c8y-asset-selector-miller", never, { "config": { "alias": "config"; "required": false; }; "asset": { "alias": "asset"; "required": false; }; "selectedDevice": { "alias": "selectedDevice"; "required": false; }; "rootNode": { "alias": "rootNode"; "required": false; }; "container": { "alias": "container"; "required": false; }; }, { "onSelected": "onSelected"; "onClearSelected": "onClearSelected"; }, never, never, false, never>;
}
//# sourceMappingURL=miller-view.component.d.ts.map