import { TemplateResult } from 'lit-html'; import { Constructor } from './index'; import { DeepObject } from '../utility/deepObject'; import { SelectiveEditor } from '../selective/editor'; /** * Orientation for colors gradient. */ export declare enum ColorsOrientation { Vertical = "vertical", Horizontal = "horizontal", Slope = "slope" } export interface ColorsConfig { colors: Array; /** * Use a smooth color gradient? */ isSmooth?: boolean; /** * Orientation for the color gradient. */ orientation?: ColorsOrientation; } export interface Option { /** * Color for the color hint. */ color?: string; /** * Gradient color hint. */ gradient?: ColorsConfig; /** * Value when the option is selected. */ value: any; /** * Label for the option. */ label: string; } export interface OptionUiComponent { templateOption(editor: SelectiveEditor, option: Option): TemplateResult; } export interface OptionUIConfig { handleBlur: (evt: Event) => void; handleInput: (evt: Event) => void; isMulti?: boolean; isOptionSelected: (option: Option) => boolean; showColorHint?: boolean; } export declare function OptionMixin(Base: TBase): { new (...args: any[]): { ariaLabelForOptionDot(config: OptionUIConfig, option: Option): string; classesForOptions(config: OptionUIConfig, options: Array