import type Component from './Component.js'; declare class EditableOptions { static defaultBindings: OptionsBindings; static defaultTypeMap: Record; component: Component; bindings: OptionsBindings; constructor(component: Component, bindings?: OptionsBindings); getOptions(): (Array); } /** * Configuration for a single option in editable options. If type is * `nested` the options are rendered in the accordion menu, with rest of the * options defined in the detailed options. */ export interface Options { /** * Name of the option which will be displayed on the label. */ name: string; /** * Type of the editable element. */ type: ElementType; /** * Whether render it as a standalone element without a group. */ isStandalone?: boolean; /** * Detailed options that should be included in the accordion menu. * Available for `nested` type. */ nestedOptions?: Array; /** * Relative path to the option, that should be changed in the component. * eg: `['chart', 'title', 'text']` */ propertyPath?: Array; /** * Items that should be included in the select element. */ selectOptions?: Array; } /** * Options of the single option in the select dropdown. */ export interface SelectOptions { /** * Name of the item that should be displayed. */ name: string; /** * URL of the icon that should be displayed. It is concatenated with * `iconURLPrefix` option. */ iconURL?: string; } /** * Type of the input to be displayed. */ export type ElementType = 'input' | 'textarea' | 'toggle' | 'select' | 'nested'; /** * Configuration for a single option in detailed options. */ export interface NestedOptions { /** * Name of the option that should be displayed. */ name: string; /** * Whether the option should have a toggle to be enabled or disabled. */ showToggle?: boolean; /** * Relative path to the option, that should be changed in the component. */ propertyPath?: Array; /** * Options that should be included in the folded menu. */ options: Array; } export interface OptionsBindings { keyMap: Record; typeMap: Record; skipRedraw: string[]; } export default EditableOptions;