import { VSIXTheme } from '../theme/theme-utils';
import { AbstractStore, EntitySetting, EntitySettingOptions } from '@journeyapps-labs/reactor-mod';
import * as monaco from 'monaco-editor';
import { StoredThemesSettings } from '../settings/StoredThemesSettings';
import { MonacoSystemThemeStore } from './MonacoSystemThemeStore';
export interface EditorTheme {
    label: string;
    theme: monaco.editor.IStandaloneThemeData;
    key: string;
    system: boolean;
    compatibility: boolean;
}
export declare class EditorThemeControl extends EntitySetting<EditorTheme> {
    store: MonacoThemeStore;
    constructor(options: EntitySettingOptions<EditorTheme>, store: MonacoThemeStore);
    reset(): Promise<void>;
}
export declare class MonacoThemeStore extends AbstractStore {
    selectedTheme: EntitySetting<EditorTheme>;
    storedThemes: StoredThemesSettings;
    systemThemeStore: MonacoSystemThemeStore;
    constructor(systemThemeStore?: MonacoSystemThemeStore);
    clone(): EditorTheme;
    patchTheme(editorTheme: EditorTheme): void;
    deleteTheme(editorTheme: EditorTheme): void;
    addTheme(theme: VSIXTheme): void;
    getMonacoThemeForReactorTheme(theme: string): EditorTheme | null;
    getSystemThemes(): {
        [key: string]: EditorTheme;
    };
    getTheme(key: string): Promise<EditorTheme>;
    getThemes(): {
        [key: string]: EditorTheme;
    };
}
