import type { Fetcher } from '../LookupField'; export type ParameterDataType = 'STRING' | 'INT' | 'DECIMAL' | 'BOOLEAN' | 'LIST' | 'ENTITY' | 'EMAIL' | 'URL' | 'PERCENTAGE'; export type ParameterRuleType = 'REGEX' | 'MIN' | 'MAX' | 'MAX_LENGTH' | 'FORMAT'; export interface ParameterValidation { id: string; ruleType: ParameterRuleType; ruleValue: string; errorMessage: string; } export interface ParameterOption { id: string; value: string; label: string; sortOrder: number; } export interface ParameterEntityConfig { id: string; targetTableName: string; idField: string; descriptionField: string; whereClause?: string; } export interface ParameterDefinition { id: string; code: string; name: string; description: string; dataType: ParameterDataType | string; resolvedValue: string; isOverridden: boolean; isSensitive: boolean; isVisible: boolean; sortOrder: number; validations: ParameterValidation[]; listOptions?: ParameterOption[] | null; entityMapping?: ParameterEntityConfig | null; rowVersion: number; createdAt?: string; createdByUserId?: string | null; updatedAt?: string | null; updatedByUserId?: string | null; } export interface ParameterSection { id: string; code: string; name: string; sortOrder: number; parameters: ParameterDefinition[]; } export interface ParameterCategory { id: string; code: string; name: string; parameters?: ParameterDefinition[]; sections?: ParameterSection[]; } export interface ParameterSavePayload { parameterId: string; parameterCode: string; value: string; rowVersion: number; } export interface ParameterEditorProps { dataSource: ParameterCategory[]; onSave: (changes: ParameterSavePayload[]) => Promise; fetcher: Fetcher; title?: string; onBack?: () => void; onChange?: (parameterId: string, newValue: string) => void; onError?: (error: Error) => void; onSaveSuccess?: () => void; className?: string; readOnly?: boolean; saveButtonText?: string; searchPlaceholder?: string; confirmButtonText?: string; cancelButtonText?: string; onResetToDefault?: (parameterId: string, parameterCode: string) => Promise; } export interface ParameterChange { parameterId: string; parameterCode: string; parameterName: string; categoryName: string; categoryId: string; sectionName?: string; sectionId?: string; dataType: ParameterDataType | string; oldValue: string; newValue: string; isSensitive: boolean; listOptions?: ParameterOption[] | null; oldEntityDisplayLabel?: string; newEntityDisplayLabel?: string; rowVersion: number; } //# sourceMappingURL=ParameterEditor.types.d.ts.map