import { FieldOption, FileResultData, FilterSelection, MultiFileReviewData, ResultAction, RiskItem, SingleReviewData } from '../../types/riskReview'; import { ConnectedAppEntity } from '../ReviewDetails/ReviewDetails.types'; import { CSSProperties, ReactNode } from 'react'; /** * Props for LatestReview component */ export interface LatestReviewProps { /** * Single file review data * Mutually exclusive with multiFileData */ review?: SingleReviewData; /** * Multi-file review data * Mutually exclusive with review */ multiFileData?: MultiFileReviewData; /** * Risks for single-file mode * Mutually exclusive with fileResults */ risks?: RiskItem[]; /** * File-organized results for multi-file mode * Mutually exclusive with risks */ fileResults?: FileResultData[]; /** * Whether this is a multi-file review */ isMultiFile?: boolean; /** * Callback when file section expand/collapse changes */ onFileToggle?: (fileId: string) => void; /** * Callback for PDF download action * For single-file: no argument * For multi-file: fileId argument */ onDownloadPdf?: (fileId?: string) => void; /** * Whether a PDF download is in progress */ isDownloading?: boolean; /** * Connected app name for display in review details */ connectedAppName?: string; /** * Connected app entities (project, workspace, etc.) */ connectedAppEntities?: ConnectedAppEntity[]; /** * Available fields for Send to IB */ sendToIBFields?: FieldOption[]; /** * Whether Send to IB is in progress */ isSendingToIB?: boolean; /** * Whether to show the field selection dialog */ showFieldDialog?: boolean; /** * Callback when Send to IB is requested */ onSendToIB?: () => void; /** * Callback when a field is selected */ onFieldSelect?: (fieldId: string) => void; /** * Callback when field dialog is closed */ onFieldDialogClose?: () => void; /** * Primary actions shown in sticky footer */ actions?: ResultAction[]; /** * Whether to show "New Review" action * @default true */ showNewReviewAction?: boolean; /** * Label for new review action * @default 'New Review' */ newReviewLabel?: string; /** * Callback when new review is requested */ onNewReview?: () => void; /** * Custom empty state for no review data */ emptyState?: ReactNode; /** * Empty state message when no review data * @default 'No review results yet' */ emptyMessage?: string; /** * Empty state description */ emptyDescription?: string; /** * Data attribute for testing */ dataTestId?: string; /** * Data attribute for analytics */ dataId?: string; /** * Additional CSS class */ className?: string; /** * Inline styles */ style?: CSSProperties; } /** * Props for FieldSelectionDialog sub-component */ export interface FieldSelectionDialogProps { /** * Whether the dialog is open */ isOpen: boolean; /** * Available field options */ fields: FieldOption[]; /** * Currently selected field ID */ selectedFieldId?: string; /** * Whether selection is in progress */ isLoading?: boolean; /** * Dialog title * @default 'Send to IntelligenceBank' */ title?: string; /** * Dialog description */ description?: string; /** * Callback when a field is selected */ onSelect: (fieldId: string) => void; /** * Callback when dialog is closed */ onClose: () => void; /** * Data attribute for testing */ dataTestId?: string; } export type { ConnectedAppEntity, FieldOption, FileResultData, FilterSelection, MultiFileReviewData, ResultAction, RiskItem, SingleReviewData, }; //# sourceMappingURL=LatestReview.types.d.ts.map