UNPKG

matrix-react-sdk

Version:
69 lines (68 loc) 2.44 kB
import { ReactNode } from "react"; import { TranslationKey } from "../languageHandler"; import { SettingLevel } from "./SettingLevel"; import SettingController from "./controllers/SettingController"; import { WatchManager } from "./WatchManager"; export declare const defaultWatchManager: WatchManager; export declare enum LabGroup { Messaging = 0, Profile = 1, Spaces = 2, Widgets = 3, Rooms = 4, Threads = 5, VoiceAndVideo = 6, Moderation = 7, Analytics = 8, Themes = 9, Encryption = 10, Experimental = 11, Developer = 12, Ui = 13 } export declare enum Features { VoiceBroadcast = "feature_voice_broadcast", VoiceBroadcastForceSmallChunks = "feature_voice_broadcast_force_small_chunks", NotificationSettings2 = "feature_notification_settings2", OidcNativeFlow = "feature_oidc_native_flow", ReleaseAnnouncement = "feature_release_announcement", /** If true, use the Rust crypto implementation. * * This is no longer read, but we continue to populate it on all devices, to guard against people rolling back to * old versions of EW that do not use rust crypto by default. */ RustCrypto = "feature_rust_crypto" } export declare const labGroupNames: Record<LabGroup, TranslationKey>; export type SettingValueType = boolean | number | string | number[] | string[] | Record<string, unknown> | Record<string, unknown>[] | null; export interface IBaseSetting<T extends SettingValueType = SettingValueType> { isFeature?: false | undefined; displayName?: TranslationKey | Partial<{ [level in SettingLevel]: TranslationKey; }>; description?: TranslationKey | (() => ReactNode); supportedLevels: SettingLevel[]; default: T; controller?: SettingController; supportedLevelsAreOrdered?: boolean; invertedSettingName?: string; betaInfo?: { title: TranslationKey; caption: () => ReactNode; faq?: (enabled: boolean) => ReactNode; image?: string; feedbackSubheading?: TranslationKey; feedbackLabel?: string; extraSettings?: string[]; requiresRefresh?: boolean; }; shouldWarn?: boolean; } export interface IFeature extends Omit<IBaseSetting<boolean>, "isFeature"> { isFeature: true; labsGroup: LabGroup; } export type ISetting = IBaseSetting | IFeature; export declare const SETTINGS: { [setting: string]: ISetting; };