import { IObjectTreeModel, IObjectTreeModelOptions, IObjectTreeModelSetChildrenOptions } from "./objectTreeModel.js"; import { ICollapseStateChangeEvent, IObjectTreeElement, ITreeListSpliceData, ITreeModel, ITreeModelSpliceEvent, ITreeNode } from "./tree.js"; import { Event } from "../../../common/event.js"; export interface ICompressedTreeElement extends IObjectTreeElement { readonly children?: Iterable>; readonly incompressible?: boolean; } export interface ICompressedTreeNode { readonly elements: T[]; readonly incompressible: boolean; } export declare function compress(element: ICompressedTreeElement): ICompressedTreeElement>; export declare function decompress(element: ICompressedTreeElement>): ICompressedTreeElement; interface ICompressedObjectTreeModelOptions extends IObjectTreeModelOptions, TFilterData> { readonly compressionEnabled?: boolean; } export declare class CompressedObjectTreeModel implements ITreeModel | null, TFilterData, T | null> { private user; readonly rootRef: null; get onDidSpliceRenderedNodes(): Event | null, TFilterData>>; get onDidSpliceModel(): Event | null, TFilterData>>; get onDidChangeCollapseState(): Event, TFilterData>>; get onDidChangeRenderNodeCount(): Event, TFilterData>>; private model; private nodes; private enabled; private readonly identityProvider?; get size(): number; constructor(user: string, options?: ICompressedObjectTreeModelOptions); setChildren(element: T | null, children: Iterable> | undefined, options: IObjectTreeModelSetChildrenOptions): void; isCompressionEnabled(): boolean; setCompressionEnabled(enabled: boolean): void; private _setChildren; has(element: T | null): boolean; getListIndex(location: T | null): number; getListRenderCount(location: T | null): number; getNode(location?: T | null | undefined): ITreeNode | null, TFilterData>; getNodeLocation(node: ITreeNode, TFilterData>): T | null; getParentNodeLocation(location: T | null): T | null; getFirstElementChild(location: T | null): ICompressedTreeNode | null | undefined; getLastElementAncestor(location?: T | null | undefined): ICompressedTreeNode | null | undefined; isCollapsible(location: T | null): boolean; setCollapsible(location: T | null, collapsible?: boolean): boolean; isCollapsed(location: T | null): boolean; setCollapsed(location: T | null, collapsed?: boolean | undefined, recursive?: boolean | undefined): boolean; expandTo(location: T | null): void; rerender(location: T | null): void; refilter(): void; resort(location?: T | null, recursive?: boolean): void; getCompressedNode(element: T | null): ICompressedTreeNode | null; } export type ElementMapper = (elements: T[]) => T; export declare const DefaultElementMapper: ElementMapper; export type CompressedNodeUnwrapper = (node: ICompressedTreeNode) => T; export interface ICompressibleObjectTreeModelOptions extends IObjectTreeModelOptions { readonly compressionEnabled?: boolean; readonly elementMapper?: ElementMapper; } export declare class CompressibleObjectTreeModel implements IObjectTreeModel { readonly rootRef: null; get onDidSpliceModel(): Event>; get onDidSpliceRenderedNodes(): Event>; get onDidChangeCollapseState(): Event>; get onDidChangeRenderNodeCount(): Event>; private elementMapper; private nodeMapper; private model; constructor(user: string, options?: ICompressibleObjectTreeModelOptions); setChildren(element: T | null, children?: Iterable>, options?: IObjectTreeModelSetChildrenOptions): void; isCompressionEnabled(): boolean; setCompressionEnabled(enabled: boolean): void; has(location: T | null): boolean; getListIndex(location: T | null): number; getListRenderCount(location: T | null): number; getNode(location?: T | null | undefined): ITreeNode; getNodeLocation(node: ITreeNode): T | null; getParentNodeLocation(location: T | null): T | null; getFirstElementChild(location: T | null): T | null | undefined; getLastElementAncestor(location?: T | null | undefined): T | null | undefined; isCollapsible(location: T | null): boolean; setCollapsible(location: T | null, collapsed?: boolean): boolean; isCollapsed(location: T | null): boolean; setCollapsed(location: T | null, collapsed?: boolean | undefined, recursive?: boolean | undefined): boolean; expandTo(location: T | null): void; rerender(location: T | null): void; refilter(): void; resort(element?: T | null, recursive?: boolean): void; getCompressedTreeNode(location?: T | null): ITreeNode | null, TFilterData>; } export {};