import { BookEntryType } from '../book-entry/book-entry-type.js';
import { type BookEntry } from '../book-entry/book-entry.js';
import { type BookTree, type BookTreeNode } from './book-tree-node.js';
export declare function doesNodeHaveEntryType<const EntryType extends BookEntryType>(node: unknown, entryType: EntryType): node is BookTreeNode<EntryType>;
export declare function isBookTreeNode<const SpecificType extends BookEntryType>(input: unknown, entryType: SpecificType): input is BookTreeNode<SpecificType>;
export declare function isAnyBookTreeNode(input: unknown): input is BookTreeNode<BookEntryType>;
export declare function createEmptyBookTreeRoot(): BookTreeNode<BookEntryType.Root>;
export declare function createBookTreeFromEntries({ entries, debug, }: {
    entries: ReadonlyArray<BookEntry>;
    debug: boolean;
}): BookTree;
export declare function traverseToImmediateParent(entryOrNode: Readonly<BookEntry> | BookTreeNode, currentTree: Readonly<BookTreeNode>): BookTreeNode | undefined;
export declare function flattenTree(node: Readonly<BookTreeNode>): BookTreeNode[];
