import {IThemeCustomSettings} from '../interfaces/itheme-custom-properties'; import {IDefaults} from '../interfaces/idefaults'; export interface IChangeType { children: { text: String; }[]; } export interface IPost { title: String; version: String; fixed: IChangeType[]; new: IChangeType[]; breaking: IChangeType[]; } export interface IPostNormalized { title: String; version: String; fixed: String[]; new: String[]; breaking: String[]; } export interface SettingsChangedMessage { type: 'settingsChanged'; config: IThemeCustomSettings; } export interface SaveSettingsMessage { type: 'saveSettings'; changes: { [key: string]: any; }; removes: string[]; scope: 'user' | 'workspace'; uri: string; } export type Message = SaveSettingsMessage | SettingsChangedMessage; export type Invalidates = 'all' | 'config' | undefined; export interface Bootstrap { config: IThemeCustomSettings; } export interface SettingsBootstrap extends Bootstrap { scope: 'user' | 'workspace'; scopes: ['user' | 'workspace', string][]; defaults: IDefaults; } declare global { interface Window { bootstrap: Bootstrap | SettingsBootstrap | {}; } }