import { IDisposable } from '@opensumi/ide-utils';
import { ITreeNodeOrCompositeTreeNode } from '../../types';
import { CompositeTreeNode } from '../TreeNode';
import { ClasslistComposite, CompositeDecoration } from './CompositeDecoration';
import { Decoration } from './Decoration';
interface IDecorationMeta {
    /**
     * 所有应用于自身的装饰器属性， 同时继承父级继承的装饰器
     */
    applicable: CompositeDecoration;
    /**
     * 所有可应用于子级的装饰器属性（一直继承，除非在继承过程中使用negated方法取消继承）
     */
    inheritable?: CompositeDecoration;
}
export declare class DecorationsManager implements IDisposable {
    private readonly root;
    private decorations;
    private decorationsMeta;
    private disposables;
    private disposed;
    constructor(root: CompositeTreeNode);
    dispose(): void;
    addDecoration(decoration: Decoration): void;
    removeDecoration(decoration: Decoration): void;
    getDecorations(item: ITreeNodeOrCompositeTreeNode): ClasslistComposite | undefined;
    getDecorationData(item: ITreeNodeOrCompositeTreeNode): IDecorationMeta | undefined;
    private targetDecoration;
    private updateTarget;
    private unTargetDecoration;
    private negateDecoration;
    private unNegateDecoration;
    private switchParent;
}
export {};
//# sourceMappingURL=DecorationManager.d.ts.map