/*!
 * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
 * Licensed under the MIT License.
 */
import { type Listenable, type Off } from "../events/index.js";
import type { TreeChangeEvents, TreeNode } from "./types.js";
import type { AnchorNode } from "../core/index.js";
import { TreeStatus } from "../feature-libraries/index.js";
/**
 * Contains state and an internal API for managing {@link TreeNode}s.
 * @remarks All {@link TreeNode}s have an associated kernel object.
 * The kernel has the same lifetime as the node and spans both its unhydrated and hydrated states.
 * When hydration occurs, the kernel is notified via the {@link TreeNodeKernel.hydrate | hydrate} method.
 */
export declare class TreeNodeKernel implements Listenable<TreeChangeEvents> {
    #private;
    readonly node: TreeNode;
    constructor(node: TreeNode);
    hydrate(anchorNode: AnchorNode): void;
    dehydrate(): void;
    isHydrated(): boolean;
    getStatus(): TreeStatus;
    on<K extends keyof TreeChangeEvents>(eventName: K, listener: TreeChangeEvents[K]): Off;
    dispose(): void;
}
//# sourceMappingURL=treeNodeKernel.d.ts.map