import { ResourceField, FieldType } from './config'; export interface EnumOption { key: string; value: string; } export interface FieldOverride { displayFormat?: string; display?: boolean; formatter?: (value: any) => string; filterType?: "autocomplete" | "multiselect" | "number-range" | "date-range"; enumLabels?: Record; // New optional properties to support custom config extensions path?: string; refers?: string; } export interface ResourceOverride { fields?: Record; pagination?: boolean; hidden?: boolean; filterOptions?: { mode?: "server" | "client"; fields?: string[]; }; enumOption?: EnumOption; // New optional property for reference‑type resources referenceOptions?: { enumOption?: EnumOption; autoComplete?: boolean; prefetch?: boolean; }; } export interface FieldComponentProps { name: string; field: ResourceField; value: any; onChange: (val: any) => void; disabled?: boolean; error?: string; baseUrl?: string; relationDataMap?: Record; uploadFile?: (file: File) => Promise; uploading?: boolean; } export type FieldComponent = React.ComponentType; export type FieldComponents = Partial> & { relation?: FieldComponent; image?: FieldComponent; default?: FieldComponent; dateRange?: FieldComponent; numberRange?: FieldComponent; FormField?: React.ComponentType; GenericForm?: React.ComponentType; }; export interface CellRendererProps { value: any; row: any; field: ResourceField; fieldKey: string; config: import('./config').ResourceConfig; onNavigate?: (resourceName: string, id: string) => void; isMobile?: boolean; } export type CellRenderer = React.ComponentType; export interface EnhancedTableComponents { cellRenderers?: Partial>; } export interface FilterBarComponents { filterInputs?: Record void; options: string[]; }>>; } export type { FieldType };