import { FiltersMap, KeyedItem, TaskState } from '@wix/bex-core';
import { NestedCollectionState } from './NestedCollectionState';
import { NestedCollectionLevelDescriptor } from './NestedCollectionLevelDescriptor';
import { NodeCollection } from './types';
export interface NestedCollectionNodeStateBaseParams<T, F extends FiltersMap> {
    readonly levelDescriptor: NestedCollectionLevelDescriptor<T, F>;
    readonly notifyAll?: boolean;
}
export interface NestedCollectionNodeStateParams<T, F extends FiltersMap> extends NestedCollectionNodeStateBaseParams<T, F> {
    readonly nestedCollection: NestedCollectionState;
    readonly parentNode: NestedCollectionNodeState<any, any> | null;
    readonly parent: KeyedItem<any> | null;
    readonly nodeCollection?: NodeCollection<T, F>;
}
export declare class NestedCollectionNodeState<T, F extends FiltersMap> {
    readonly nestedCollection: NestedCollectionState;
    readonly collection: import("@wix/bex-core").CollectionState<T, F>;
    readonly levelDescriptor: NestedCollectionLevelDescriptor<T, F>;
    readonly parent: KeyedItem<any> | null;
    readonly parentNode: NestedCollectionNodeState<any, any> | null;
    readonly parentFilter: import("@wix/bex-core").Filter<string[]> | undefined;
    readonly parentKeyToChildrenMap: import("mobx").ObservableMap<string, NestedCollectionNodeState<any, any>>;
    _expanded: boolean;
    _hovered: boolean;
    _notifyAll: boolean | undefined;
    readonly initTask: TaskState<unknown>;
    constructor(params: NestedCollectionNodeStateParams<T, F>);
    _toggleExpand(): Promise<void>;
    get hoveredOrParentHovered(): boolean;
    _changeHover(hovered: boolean): void;
    init({ skipCollectionInit }?: {
        skipCollectionInit?: boolean;
    }): () => void;
    _createNode(parent: KeyedItem<any>, params: NestedCollectionNodeStateBaseParams<any, any>): NestedCollectionNodeState<any, any>;
}
//# sourceMappingURL=NestedCollectionNodeState.d.ts.map