blob: 409d17dac8e8c6228b2326fc30873b0a81dd7683 [file] [log] [blame]
Adrià Vilanova Martínez6ecaa0d2024-10-26 17:04:32 +02001import { OptionsConfiguration } from '../../common/options/OptionsConfiguration';
2import {
3 OptionCodename,
4 OptionsValues,
5} from '../../common/options/optionsPrototype';
6
7export interface OptionsProviderPort {
8 /**
9 * Returns the value of option |option|.
10 */
11 getOptionValue<O extends OptionCodename>(
12 option: O,
13 ): Promise<OptionsValues[O]>;
14
15 /**
16 * Returns whether |feature| is enabled.
17 */
18 isEnabled(option: OptionCodename): Promise<boolean>;
19
Adrià Vilanova Martínez9326a002025-02-08 23:16:12 +010020 getOptionsConfiguration(): Promise<OptionsConfiguration>;
Adrià Vilanova Martínez6ecaa0d2024-10-26 17:04:32 +020021 getOptionsValues(): Promise<OptionsValues>;
22
23 /**
24 * Adds a listener for changes in the options configuration.
25 */
26 addListener(listener: OptionsChangeListener): void;
27}
28
29export type OptionsChangeListener = (
Adrià Vilanova Martínez9326a002025-02-08 23:16:12 +010030 previousConfiguration: OptionsConfiguration,
31 currentConfiguration: OptionsConfiguration,
Adrià Vilanova Martínez6ecaa0d2024-10-26 17:04:32 +020032) => void;