import { Event, IJSONSchema, ThemeIcon, URI } from '@opensumi/ide-core-common'; export declare const Extensions: { IconContribution: string; }; export declare type IconDefaults = ThemeIcon | IconDefinition; export interface IconDefinition { font?: IconFontContribution; fontCharacter: string; } export interface IconFontContribution { readonly id: string; readonly definition: IconFontDefinition; } export interface IconContribution { readonly id: string; description: string | undefined; deprecationMessage?: string; readonly defaults: IconDefaults; } export interface IconFontDefinition { readonly weight?: string; readonly style?: string; readonly src: IconFontSource[]; } export interface IconFontSource { readonly location: URI; readonly format: string; } export declare type IconIdentifier = string; export interface IIconRegistry { readonly onDidChange: Event; /** * Register a icon to the registry. * @param id The icon id * @param defaults The default values * @param description The description */ registerIcon(id: IconIdentifier, defaults: IconDefaults, description?: string): ThemeIcon; /** * Deregister a icon from the registry. */ deregisterIcon(id: IconIdentifier): void; /** * Get all icon contributions */ getIcons(): IconContribution[]; /** * Get the icon for the given id */ getIcon(id: IconIdentifier): IconContribution | undefined; /** * JSON schema for an object to assign icon values to one of the icon contributions. */ getIconSchema(): IJSONSchema; /** * JSON schema to for a reference to a icon contribution. */ getIconReferenceSchema(): IJSONSchema; /** * Register a icon font to the registry. * @param id The icon font id * @param definition The icon font definition */ registerIconFont(id: string, definition: IconFontDefinition): IconFontDefinition; /** * Deregister an icon font to the registry. */ deregisterIconFont(id: string): void; /** * Get the icon font for the given id */ getIconFont(id: string): IconFontDefinition | undefined; } declare class IconRegistry implements IIconRegistry { private readonly _onDidChange; readonly onDidChange: Event; private iconsById; private sumiIconsById; private iconFontsById; private iconSchema; private iconReferenceSchema; constructor(); registerIcon(id: string, defaults: IconDefaults, description?: string, deprecationMessage?: string): ThemeIcon; registerSumiIcon(id: string, defaults: IconDefaults, description?: string, deprecationMessage?: string): ThemeIcon; deregisterIcon(id: string): void; getIcons(isSumi?: boolean): IconContribution[]; getIcon(id: string): IconContribution | undefined; getSumiIcon(id: string): IconContribution | undefined; getIconSchema(): IJSONSchema; getIconReferenceSchema(): IJSONSchema; registerIconFont(id: string, definition: IconFontDefinition): IconFontDefinition; deregisterIconFont(id: string): void; getIconFont(id: string): IconFontDefinition | undefined; toString(): string; } export declare function registerIcon(id: string, defaults: IconDefaults, description: string, deprecationMessage?: string): ThemeIcon; export declare function getIconRegistry(): IconRegistry; export {}; //# sourceMappingURL=icon-registry.d.ts.map