import { Event } from '@theia/core'; export interface CollectionDelta { added?: T[]; removed?: K[]; } export declare enum DeltaKind { NONE = 0, ADDED = 1, REMOVED = 2, CHANGED = 3 } export interface TreeDelta { path: K[]; type: DeltaKind; value?: Partial; childDeltas?: TreeDelta[]; } export interface TreeDeltaBuilder { reportAdded(path: K[], added: T): void; reportRemoved(path: K[]): void; reportChanged(path: K[], change: Partial): void; } export declare class MappingTreeDeltaBuilder implements TreeDeltaBuilder { private readonly wrapped; private readonly map; private readonly mapPartial; constructor(wrapped: TreeDeltaBuilder, map: (value: V) => T, mapPartial: (value: Partial) => Partial); reportAdded(path: K[], added: V): void; reportRemoved(path: K[]): void; reportChanged(path: K[], change: Partial): void; } export declare class TreeDeltaBuilderImpl { protected _currentDelta: TreeDelta[]; get currentDelta(): TreeDelta[]; reportAdded(path: K[], added: T): void; reportRemoved(path: K[]): void; reportChanged(path: K[], change: Partial): void; private insert; private findNode; } export declare class AccumulatingTreeDeltaEmitter extends TreeDeltaBuilderImpl { private batcher; private onDidFlushEmitter; onDidFlush: Event[]>; constructor(timeoutMillis: number); flush(): void; doEmitDelta(): void; reportAdded(path: K[], added: T): void; reportChanged(path: K[], change: Partial): void; reportRemoved(path: K[]): void; } //# sourceMappingURL=tree-delta.d.ts.map