import { IPropertiesService } from './IPropertiesService.js'; import { IPropertyEditor } from './IPropertyEditor.js'; import { PropertyType } from './PropertyType.js'; import type { IDesignItem } from '../../item/IDesignItem.js'; export interface IProperty { name: string; renamable?: boolean; displayName?: string; hideLabel?: boolean; propertyName?: string; group?: string; attributeName?: string; description?: string; type?: 'addNew' | 'json' | 'color' | 'date' | 'number' | 'list' | 'enum' | 'boolean' | 'img-lis' | 'thickness' | 'css-length' | 'length' | 'angle' | 'time' | 'frequency' | 'flex' | 'resolution' | 'string' | string; default?: any; min?: number; max?: number; step?: number; readonly?: boolean; values?: string[]; units?: string[]; unitSteps?: Record; numericValueDecimalPlaces?: number; numericValueConverter?: (value: number, fromUnit: string, toUnit: string, property: IProperty, numericType: string, numberText?: string, rawValue?: string, designItems?: IDesignItem[]) => string | number | null | undefined; enumValues?: [name: string, value: string | number][]; createEditor?: (property: IProperty) => IPropertyEditor; value?: any; service: IPropertiesService; defaultValue?: any; example?: string; propertyType: PropertyType; }