import { CSSProperties, ReactNode } from 'react'; import { ReviewFileItem } from '../../types/riskReview'; /** * Props for ReviewFiles component */ export interface ReviewFilesProps { /** * List of files to display */ files: ReviewFileItem[]; /** * Whether selection is enabled * When false, files are display-only */ selectionEnabled?: boolean; /** * Selection mode when selectionEnabled is true * - 'single': Radio button selection (one file) * - 'multiple': Checkbox selection (multiple files) */ selectionMode?: 'single' | 'multiple'; /** * Currently selected file ID(s) * For single mode: string | undefined * For multiple mode: string[] */ selectedIds?: string | string[]; /** * Maximum files that can be selected (multiple mode only) */ maxSelection?: number; /** * Callback when selection changes */ onSelectionChange?: (selectedIds: string[]) => void; /** * Callback when a file is removed */ onRemove?: (fileId: string) => void; /** * Whether to show remove buttons * @default true when onRemove is provided */ showRemove?: boolean; /** * Whether to show file size * @default true */ showSize?: boolean; /** * Whether to show file source * @default false */ showSource?: boolean; /** * Whether to show validation errors * @default true */ showErrors?: boolean; /** * Custom empty state when no files */ emptyState?: ReactNode; /** * Maximum height before scrolling */ maxHeight?: number | string; /** * Format function for file size display * @default Uses built-in formatter (KB, MB, GB) */ formatSize?: (bytes: number) => string; /** * Data attribute for testing */ dataTestId?: string; /** * Data attribute for analytics */ dataId?: string; /** * Additional CSS class */ className?: string; /** * Inline styles */ style?: CSSProperties; } export type { ReviewFileItem }; //# sourceMappingURL=ReviewFiles.types.d.ts.map