import Component from '@glimmer/component'; import Owner from '@ember/owner'; import { AttrValue } from '@glint/template'; export type SupportedValue = boolean | string | AttrValue | number; export type InputType = 'checkbox' | 'textarea' | 'select' | 'number' | 'range'; interface PropertyHash { value?: SupportedValue; options?: SupportedValue[]; inputType?: InputType; description?: string; min?: number; max?: number; } export type DynamicProperties = Record; type DynamicPropertyValues = Record; interface ComponentArgs { slug: string; dynamicProperties: DynamicProperties; title: string; componentName: string; source?: string; } interface Signature { Element: HTMLDivElement; Args: ComponentArgs; Blocks: { default: [DynamicPropertyValues]; }; } export default class FreestyleDynamic extends Component { headerTitle: string; _dynamicProperties: DynamicProperties; constructor(owner: Owner, args: ComponentArgs); get dynamicProperties(): DynamicProperties; get dynamicPropertyValues(): DynamicPropertyValues; changeValueTo(propertyName: string, newValue: SupportedValue): void; } export {};