import { default as React } from 'react'; import { SortConfig, ColumnFilter, SearchConfig, FilterType, ColumnDefinition, FilterOption, PivotAggregationType, DateFormat } from './types'; import { AvatarData, TagData, SelectData, MultiSelectData, DateData, DateRangeData } from './columnTypes'; export type DataTableBodyState = 'loading' | 'error' | 'empty' | 'rows'; export declare const getDataTableBodyState: ({ isLoading, error, hasRows, }: { isLoading: boolean; error: boolean; hasRows: boolean; }) => DataTableBodyState; export declare const haveSameFilterOptions: (a?: FilterOption[], b?: FilterOption[]) => boolean; export declare const isDateOnlyString: (value: string) => boolean; /** * Parse a date-only string (`YYYY-MM-DD`) as a local date at midnight. * Avoids JS `new Date("YYYY-MM-DD")` UTC parsing and off-by-one issues. */ export declare const parseDateOnlyLocal: (dateOnly: string) => Date; export declare const parseDateLike: (value: unknown) => Date | null; export declare const toLocalDateString: (date: Date) => string; export declare const filterData: >(data: T[], filters: Record) => T[]; export declare const searchData: >(data: T[], searchConfig: SearchConfig, columns: ColumnDefinition[]) => T[]; export declare const applyColumnFilters: >(data: T[], filters: ColumnFilter[]) => T[]; export declare const getUniqueColumnValues: >(data: T[], field: keyof T) => string[]; export declare const sortData: >(data: T[], sortConfig: SortConfig, columns?: ColumnDefinition[]) => T[]; export declare const formatCurrency: (amount: number, currency?: string) => string; export declare const getDefaultColumnWidth: >(column: ColumnDefinition) => { minWidth: string; maxWidth: string; }; export declare const getColumnStyles: >(column: ColumnDefinition) => React.CSSProperties; export declare const formatDate: (dateString: string) => string; export declare const formatDateString: (date: Date, format: string) => string; export declare const updateColumnFilter: (currentFilters: ColumnFilter[], field: keyof Record, type: FilterType, value: string | string[] | { min: number; max: number; }, operator?: "equals" | "contains" | "startsWith" | "endsWith" | "gt" | "lt" | "gte" | "lte" | "range") => ColumnFilter[]; type DataTableExportValueOptions> = { getDisplayValue?: (value: unknown, column: ColumnDefinition) => unknown; dateLabel?: string; }; export declare const getDataTableExportValue: >(row: T, column: ColumnDefinition, rowIndex: number, options?: DataTableExportValueOptions) => Promise; export declare const generateDataTableCSV: >(data: T[], columns: ColumnDefinition[], options?: DataTableExportValueOptions) => Promise; export declare const getDataTableExportMatrix: >(data: T[], columns: ColumnDefinition[], options?: DataTableExportValueOptions) => Promise; export declare const downloadDataTableExport: >(data: T[], columns: ColumnDefinition[], format: "csv" | "xlsx", fileName: string, options?: DataTableExportValueOptions) => Promise; export declare const generateCSVContent: >(data: T[], columns: ColumnDefinition[]) => string; export declare const downloadCSV: (csvContent: string, filename?: string) => void; export declare const exportSelectedRowsToCSV: >(allData: T[], selectedRows: Record, columns: ColumnDefinition[], idField: string, filename?: string) => void; export declare const getSelectedRowCount: (selectedRows: Record) => number; export declare const createSearchConfig: (query: string, caseSensitive?: boolean, searchFields?: string[]) => SearchConfig; export declare const clearAllFiltersAndSearch: () => { filters: ColumnFilter[]; searchConfig: SearchConfig; }; export declare const createAvatarData: (label: string, options?: { sublabel?: string; imageUrl?: string; initials?: string; }) => AvatarData; export declare const createTagData: (text: string, options?: { color?: "primary" | "secondary" | "success" | "warning" | "error" | "neutral"; variant?: "solid" | "subtle" | "outline"; size?: "sm" | "md" | "lg"; }) => TagData; export declare const createSelectData: (value: string, options?: { label?: string; disabled?: boolean; }) => SelectData; export declare const createMultiSelectData: (values: string[], labels?: string[]) => MultiSelectData; export declare const createDateData: (date: Date | string, format?: DateFormat) => DateData; export declare const createDateRangeData: (startDate: Date | string, endDate: Date | string, format?: DateFormat) => DateRangeData; export declare const validateDataForColumnType: >(data: T, columns: ColumnDefinition[]) => { isValid: boolean; errors: string[]; }; export declare const enforceDataTypeMatching: >(data: T[], columns: ColumnDefinition[], options?: { throwOnError?: boolean; logWarnings?: boolean; }) => boolean; type PivotValueConfig> = { field: keyof T; aggregation: PivotAggregationType; label?: string; }; type PivotResultRow = Record; export declare const buildPivotData: >(data: T[], rowFields: (keyof T)[], columnFields: (keyof T)[], valueConfigs: PivotValueConfig[], filterValues?: Record) => { columns: Array<{ key: string; label: string; }>; rows: PivotResultRow[]; }; export declare const exportPivotToCSV: (rows: PivotResultRow[], columns: Array<{ key: string; label: string; }>, filename: string) => void; export {};