blob: 2e1fd1594e5cc136570f58c6e38a0f17883bbb3c [file] [log] [blame]
// Copyright 2020 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
export const enum SettingType {
BOOLEAN = 'boolean',
ENUM = 'enum'
}
export interface BaseSettingOption {
title: string;
}
export interface BooleanSettingOption extends BaseSettingOption {
value: boolean;
}
export interface EnumSettingOption extends BaseSettingOption {
value: string;
}
export interface BaseSetting {
name: string;
type: SettingType;
title: string;
}
export type BooleanSetting = BaseSetting&{options: BooleanSettingOption[], value: boolean};
export type EnumSetting = BaseSetting&{options: EnumSettingOption[], value: string};
export type Setting = EnumSetting|BooleanSetting;
export interface Element {
id: number;
name: string;
domId?: string;
domClasses?: string[];
enabled: boolean;
}