import type { ComponentType, CSSProperties, ReactNode } from 'react'; export type HyperReactXMLPrimitive = string | number | boolean | null | undefined; export type HyperReactXMLRecord = Record; export interface HyperReactXMLNode { tag: string; attributes: Record; children: HyperReactXMLNode[]; text?: string; } export type HyperReactXMLValues = Record; export type HyperReactXMLTranslations = Record>; export type HyperReactXMLPermissions = string[]; export interface HyperReactXMLTheme { primaryColor?: string; dangerColor?: string; successColor?: string; warningColor?: string; textColor?: string; mutedTextColor?: string; backgroundColor?: string; surfaceColor?: string; borderColor?: string; borderRadius?: string; spacing?: string; fontFamily?: string; className?: string; styles?: Partial>; } export type HyperReactXMLStyleSlot = 'root' | 'page' | 'card' | 'grid' | 'field' | 'label' | 'input' | 'button' | 'table' | 'alert' | 'modal' | 'tabs'; export interface HyperReactXMLActionArgs { values: HyperReactXMLValues; row?: HyperReactXMLRecord; selectedRows?: HyperReactXMLRecord[]; event?: unknown; node: HyperReactXMLNode; setValue: (name: string, value: unknown) => void; setValues: (values: HyperReactXMLValues) => void; reload: (source?: string) => Promise; toast: HyperReactXMLToastApi; closeModal: (id?: string) => void; openModal: (id: string) => void; validate: (nodes?: HyperReactXMLNode[]) => boolean; } export type HyperReactXMLAction = (args: HyperReactXMLActionArgs) => void | Promise; export type HyperReactXMLActions = Record; export interface HyperReactXMLDataSourceArgs { values?: HyperReactXMLValues; filters?: Record; page?: number; pageSize?: number; sort?: { field: string; direction: 'asc' | 'desc'; }; } export interface HyperReactXMLDataSourceResult { rows: T[]; total?: number; } export type HyperReactXMLDataSource = (args?: HyperReactXMLDataSourceArgs) => T[] | HyperReactXMLDataSourceResult | Promise>; export type HyperReactXMLDataSources = Record; export interface HyperReactXMLToastApi { success?: (message: string) => void; error?: (message: string) => void; info?: (message: string) => void; warning?: (message: string) => void; } export interface HyperReactXMLCellRendererArgs { value: unknown; row: HyperReactXMLRecord; column: HyperReactXMLNode; context: HyperReactXMLComponentContext; } export type HyperReactXMLCellRenderer = (args: HyperReactXMLCellRendererArgs) => ReactNode; export interface HyperReactXMLComponentContext { values: HyperReactXMLValues; errors: Record; data: Record; loading: Record; dataErrors: Record; actions: HyperReactXMLActions; dataSources: HyperReactXMLDataSources; permissions: HyperReactXMLPermissions; theme: Required; language: string; translations: HyperReactXMLTranslations; toast: HyperReactXMLToastApi; cellRenderers: Record; onExport?: (rows: HyperReactXMLRecord[], source?: string) => void | Promise; openModals: string[]; setValue: (name: string, value: unknown) => void; setValues: (values: HyperReactXMLValues) => void; setFieldError: (name: string, error?: string) => void; setErrors: (errors: Record) => void; runAction: (actionName: string | undefined, node: HyperReactXMLNode, extra?: Partial) => Promise; loadSource: (source: string, args?: HyperReactXMLDataSourceArgs) => Promise; reload: (source?: string) => Promise; validate: (nodes?: HyperReactXMLNode[]) => boolean; t: (key?: string, fallback?: string) => string; renderNode: (node: HyperReactXMLNode, key?: string | number) => ReactNode; renderChildren: (nodes: HyperReactXMLNode[]) => ReactNode; openModal: (id: string) => void; closeModal: (id?: string) => void; } export interface HyperReactXMLComponentProps { node: HyperReactXMLNode; children?: ReactNode; context: HyperReactXMLComponentContext; } export type HyperReactXMLComponent = ComponentType; export interface HyperReactXMLRendererProps { xml: string; dataSources?: HyperReactXMLDataSources; actions?: HyperReactXMLActions; permissions?: HyperReactXMLPermissions; values?: HyperReactXMLValues; theme?: HyperReactXMLTheme; language?: string; translations?: HyperReactXMLTranslations; toast?: HyperReactXMLToastApi; cellRenderers?: Record; onExport?: (rows: HyperReactXMLRecord[], source?: string) => void | Promise; onChange?: (values: HyperReactXMLValues) => void; onError?: (error: Error) => void; } export interface HyperReactXMLFieldProps { name?: string; label?: string; value?: unknown; error?: string; required?: boolean; disabled?: boolean; readOnly?: boolean; } //# sourceMappingURL=types.d.ts.map