///
import { Emitter } from '../common/event';
import { Disposable, DisposableCollection } from '../common/disposable';
import { LabelProviderContribution, DidChangeLabelEvent } from './label-provider';
import { PreferenceService, PreferenceSchemaProvider } from './preferences';
export interface IconThemeDefinition {
readonly id: string;
readonly label: string;
readonly description?: string;
readonly hasFileIcons?: boolean;
readonly hasFolderIcons?: boolean;
readonly hidesExplorerArrows?: boolean;
}
export interface IconTheme extends IconThemeDefinition {
activate(): Disposable;
}
export declare class NoneIconTheme implements IconTheme, LabelProviderContribution {
readonly id = "none";
readonly label = "None";
readonly description = "Disable file icons";
readonly hasFileIcons = true;
readonly hasFolderIcons = true;
protected readonly onDidChangeEmitter: Emitter;
readonly onDidChange: import("../common/event").Event;
protected readonly toDeactivate: DisposableCollection;
activate(): Disposable;
protected fireDidChange(): void;
canHandle(): number;
getIcon(): string;
}
export declare class IconThemeService {
static readonly STORAGE_KEY = "iconTheme";
protected readonly onDidChangeEmitter: Emitter;
readonly onDidChange: import("../common/event").Event;
protected readonly _iconThemes: Map;
get ids(): IterableIterator;
get definitions(): IterableIterator;
getDefinition(id: string): IconThemeDefinition | undefined;
protected readonly noneIconTheme: NoneIconTheme;
protected readonly preferences: PreferenceService;
protected readonly schemaProvider: PreferenceSchemaProvider;
protected readonly onDidChangeCurrentEmitter: Emitter;
readonly onDidChangeCurrent: import("../common/event").Event;
protected readonly toDeactivate: DisposableCollection;
protected activeTheme: IconTheme;
protected init(): void;
register(iconTheme: IconTheme): Disposable;
unregister(id: string): IconTheme | undefined;
get current(): string;
set current(id: string);
getCurrent(): IconTheme;
/**
* @param persistSetting If `true`, the theme's id will be set as the value of the `workbench.iconTheme` preference. (default: `true`)
*/
setCurrent(newCurrent: IconTheme, persistSetting?: boolean): void;
protected getConfiguredTheme(): IconTheme | undefined;
protected validateActiveTheme(): void;
protected updateIconThemePreference: import("lodash").DebouncedFunc<() => void>;
protected doUpdateIconThemePreference(): void;
get default(): IconTheme;
get fallback(): IconTheme;
}
//# sourceMappingURL=icon-theme-service.d.ts.map