import { Paging } from '@c8y/client';
import { ClickOptions, NavigatorNode, NavigatorNodeData } from '@c8y/ngx-components';
import { BehaviorSubject, Subject } from 'rxjs';
import { AssetsNavigatorAction } from './action.enum';
import { AssetNodeMo, AssetNodeService } from './asset-node.service';
import { LoadMoreNode } from './load-more-node';
export declare class AssetNode extends NavigatorNode {
    protected service: AssetNodeService;
    protected config: NavigatorNodeData;
    static NAME: string;
    root: boolean;
    mo: any;
    hideDevices: boolean;
    filterQuery$: BehaviorSubject<string>;
    showChildDevices: boolean;
    /**
     * Asset node children (subentries).
     */
    children: AssetNode[];
    get hasChildren(): boolean;
    get isDevice(): boolean;
    get isDeviceOrProbablyChildDevice(): boolean;
    get isNeitherDeviceOrGroup(): boolean;
    events: Subject<AssetsNavigatorAction>;
    nodesFetched: Subject<void>;
    protected paging: Paging<AssetNodeMo>;
    protected loadMoreNode: LoadMoreNode;
    private onUpdateSubscription;
    constructor(service: AssetNodeService, config?: NavigatorNodeData);
    getPath(): string;
    refresh(mo?: any, method?: string): void;
    setLabel(): void;
    click(options?: ClickOptions): void;
    sort(): void;
    addManagedObject(mo: any): void;
    isChildAddition(childAdditions: any, mo: any): any;
    destroy(): void;
    get canDrop(): boolean;
    dragStart($event: any): void;
    dragEnd($event: any): void;
    drop($event: any): Promise<void>;
    hookEvents(): void;
    toString(): string;
    /**
     * Checks if the current node has child devices.
     */
    hasChildDevices(): boolean;
    protected fetch(): Promise<any>;
    protected updateIcon(open: any): Promise<void>;
    protected countChildren(): number;
    protected handleEvent(evt: AssetsNavigatorAction): Promise<void>;
    protected addNodes(res: any): void;
    protected toggleLoadMore(show: boolean): void;
    private moveNode;
    private showDropConfirm;
    private verifyNodeAccess;
    private addMovedNode;
    private isAsset;
    private removeMovedNode;
}
//# sourceMappingURL=asset-node.d.ts.map