import $ from 'licia/$'; import types from 'licia/types'; import Component, { IComponentOptions } from '../share/Component'; export interface IOptions extends IComponentOptions { separatorCollapse?: boolean; filter?: string | RegExp | types.AnyFn; } export default class Setting extends Component { private items; private selectedItem; constructor(container: HTMLElement, options?: IOptions); appendTitle(title: string, level?: number): LunaSettingTitle; appendSeparator(): LunaSettingSeparator; appendNumber(key: string, value: number, title: string, description: string, options: INumberOptions): LunaSettingNumber; appendNumber(key: string, value: number, title: string, options: INumberOptions): LunaSettingNumber; appendButton(title: string, description: string, handler: types.AnyFn): LunaSettingButton; appendButton(description: string, handler: types.AnyFn): LunaSettingButton; appendHtml(html: string | HTMLElement): LunaSettingHtml; appendMarkdown(markdown: string): LunaSettingMarkdown; appendInput(key: string, value: string, title: string, description?: string): LunaSettingInput; appendCheckbox(key: string, value: boolean, title: string, description?: string): LunaSettingCheckbox; appendSelect(key: string, value: string, title: string, description: string, options: types.PlainObj): LunaSettingSelect; appendSelect(key: string, value: string, title: string, options: types.PlainObj): LunaSettingSelect; remove(item: LunaSettingItem): void; clear(): void; private selectItem; private renderSettings; private bindEvent; private filterItem; private append; } export declare class LunaSettingItem { container: HTMLElement; $container: $.$; key: string; value: any; setting: Setting; constructor(setting: Setting, key: string, value: any, type: string); select(): void; deselect(): void; detach(): void; disable(): void; enable(): void; text(): string; protected onChange(value: any): void; } export declare class LunaSettingTitle extends LunaSettingItem { constructor(setting: Setting, title: string, level: number); } export declare class LunaSettingMarkdown extends LunaSettingItem { constructor(setting: Setting, markdown: string); } export declare class LunaSettingSeparator extends LunaSettingItem { constructor(setting: Setting); } export declare class LunaSettingInput extends LunaSettingItem { private $input; constructor(setting: Setting, key: string, value: string, title: string, description: string); setValue(value: string): void; disable(): void; enable(): void; } export interface INumberOptions { min?: number; max?: number; step?: number; range?: boolean; } export declare class LunaSettingNumber extends LunaSettingItem { private $input; private $trackProgress; private $value; private options; constructor(setting: Setting, key: string, value: number, title: string, description: string, options?: INumberOptions); setValue(value: number): void; disable(): void; enable(): void; private renderRange; } export declare class LunaSettingCheckbox extends LunaSettingItem { private $input; private input; constructor(setting: Setting, key: string, value: boolean, title: string, description: string); setValue(value: boolean): void; disable(): void; enable(): void; } export declare class LunaSettingSelect extends LunaSettingItem { private $select; constructor(setting: Setting, key: string, value: string, title: string, description: string, options: types.PlainObj); setValue(value: string): void; setOptions(options: types.PlainObj): void; disable(): void; enable(): void; } export declare class LunaSettingButton extends LunaSettingItem { constructor(setting: Setting, title: string, description: string, handler: types.AnyFn); } export declare class LunaSettingHtml extends LunaSettingItem { constructor(setting: Setting, html: string | HTMLElement); }