import { BaseOptions } from '../types/data'; import { SavedConfig, SavedConfigEntry } from '../types/event'; import { LocaleObject, LocaleText } from '../types/trigger'; import { CactbotConfigurator } from '../ui/config/config'; import { Lang } from './languages'; export type UserFileCallback = (jsFile: string, localFiles: { [filename: string]: string; }, options: BaseOptions, basePath: string) => void; export type ConfigValue = string | number | boolean; export type ConfigIdToValueMap = { [id: string]: ConfigValue; }; export type ConfigEntryToDivMap = Map; export type ConfigEntry = { id: string; comment?: Partial; name: LocaleText; type: 'checkbox' | 'select' | 'float' | 'integer' | 'string' | 'directory' | 'html'; html?: LocaleText; default: ConfigValue | ((options: BaseOptions) => ConfigValue); disabled?: (values: ConfigIdToValueMap) => boolean; hidden?: (values: ConfigIdToValueMap) => boolean; debug?: boolean; debugOnly?: boolean; options?: LocaleObject<{ [selectText: string]: string; }>; setterFunc?: (value: SavedConfigEntry, options: BaseOptions, isDefault: boolean) => ConfigValue | void | undefined; }; export type NamedConfigIdToValueMap = Record; export interface NamedConfigEntry extends Omit { id: NameUnion; disabled?: (values: NamedConfigIdToValueMap) => boolean; hidden?: (values: NamedConfigIdToValueMap) => boolean; } export type OptionsTemplate = { buildExtraUI?: (base: CactbotConfigurator, container: HTMLElement) => void; processExtraOptions?: (options: BaseOptions, savedConfig: SavedConfigEntry) => void; options: ConfigEntry[]; }; declare class UserConfig { optionTemplates: { [overlayName: string]: OptionsTemplate; }; userFileCallbacks: { [overlayName: string]: UserFileCallback; }; savedConfig: SavedConfig; getDefaultBaseOptions(): BaseOptions; evalUserFile(content: string, options: BaseOptions): void; registerOptions(overlayName: string, optionTemplate: OptionsTemplate, userFileCallback?: UserFileCallback): void; sortUserFiles(keys: string[]): string[]; filterUserFiles(paths: string[], origOverlayName: string, origExtension: string): string[]; getUserConfigLocation(overlayName: string, options: BaseOptions, callback: () => void): void; loadUserFiles(overlayName: string, options: BaseOptions, callback: () => void, loadCss?: boolean): void; handleSkin(skinName: string): void; appendJSLink(src: string): void; appendCSSLink(href: string): void; processOptions(options: BaseOptions, output: { [key: string]: unknown; }, savedConfig: SavedConfigEntry, templateOptions?: ConfigEntry[]): void; addUnlockText(lang: Lang): void; } declare const _default: UserConfig; export default _default;