import { Tabs } from './tabs'; export interface Schema { $id?: string; $schema?: string; title?: string; type?: 'object' | 'array'; properties?: Array; } export interface Property { type?: string; key?: string; description?: string; triggers?: any; permissions?: any; classList?: string; } export declare type StructuralProperty = StructuralTable | Tabs | Table | Fieldset; export declare type PropertyInput = Input | Select | Textarea | EnrichedText; export interface Fieldset extends Property { type: 'fieldset'; length?: number; properties: Array; } export interface Table extends Property { type: 'table'; properties: Array<{ type: 'column'; description: string; properties: Array; }>; caption?: string; required?: boolean; } export interface EnrichedText extends Property { type: 'enriched-text'; value: string; iconClass?: string; } export interface StructuralTable extends Property { type: 'structural-table'; length?: number; properties: Column[]; caption?: string; } export interface Column { type?: 'column'; description?: string; properties: Cell[]; } export interface Cell { type?: 'cell'; properties: Array; } export interface Input extends Property { type: 'input'; format: 'checkbox' | 'color' | 'datetime-local' | 'date' | 'time' | 'file' | 'number' | 'range' | 'text' | 'email'; required?: boolean; placeholder?: any; default?: any; value?: any; maximun?: number; minimun?: number; step?: number; } export interface Textarea extends Property { type: 'textarea'; required?: boolean; placeholder?: any; default?: any; value?: any; maximun?: number; minimun?: number; cols?: number; rows?: number; } export interface Select extends Property { type: 'select'; format: 'dropdown' | 'radio'; required?: boolean; placeholder?: any; default?: any; value?: any; properties: Option[]; multiple?: boolean; feeding_type?: 'static'; } export interface Option extends Property { type: 'option'; value: string; description: string; }