import { Title, Widget } from '@lumino/widgets';
import { ContributionProvider, Emitter, Event } from '../../common';
import { ColorRegistry } from '../color-registry';
import { Decoration, DecorationsServiceImpl } from '../decorations-service';
import { FrontendApplicationContribution } from '../frontend-application-contribution';
import { WidgetDecoration } from '../widget-decoration';
export declare const TabBarDecorator: unique symbol;
export interface TabBarDecorator {
    /**
     * The unique identifier of the tab bar decorator.
     */
    readonly id: string;
    /**
     * Event that is fired when any of the available tab bar decorators has changes.
     */
    readonly onDidChangeDecorations: Event<void>;
    /**
     * Decorate title.
     * @param {Title<Widget>} title the title
     * @returns decoration data.
     */
    decorate(title: Title<Widget>): WidgetDecoration.Data[];
}
export declare class TabBarDecoratorService implements FrontendApplicationContribution {
    protected readonly onDidChangeDecorationsEmitter: Emitter<void>;
    readonly onDidChangeDecorations: Event<void>;
    protected readonly contributions: ContributionProvider<TabBarDecorator>;
    protected readonly decorationsService: DecorationsServiceImpl;
    protected readonly colors: ColorRegistry;
    initialize(): void;
    fireDidChangeDecorations: import("lodash").DebouncedFunc<() => any>;
    /**
     * Assign tabs the decorators provided by all the contributions.
     * @param {Title<Widget>} title the title
     * @returns an array of its decoration data.
     */
    getDecorations(title: Title<Widget>): WidgetDecoration.Data[];
    protected fromDecoration(decoration: Decoration): WidgetDecoration.Data;
}
//# sourceMappingURL=tab-bar-decorator.d.ts.map