import React from 'react'; export interface TableColumn { key: string; header: { label: React.ReactNode; className?: string; }; sortable?: boolean; width?: string; className?: string; isRemoved?: boolean; render?: (row: T, rowIndex?: number, loading?: boolean) => React.ReactNode; } export interface TableContextValue { columns: TableColumn[]; setColumns: React.Dispatch[]>>; tableData: T[]; currentSort?: { key: string; direction: 'asc' | 'desc'; }; addColumnBefore: (newColumn: TableColumn, beforeColumnKey: string) => void; addColumnAfter: (newColumn: TableColumn, afterColumnKey: string) => void; removeColumn: (key: string) => void; tableName: string; } interface TableProviderProps { children: React.ReactNode; name: string; initialColumns: TableColumn[]; tableData: T[]; onSort?: (key: string, direction: 'asc' | 'desc') => void; currentSort?: { key: string; direction: 'asc' | 'desc'; }; } export declare function useTableContext(): TableContextValue; export declare function TableProvider({ children, name, initialColumns, tableData, onSort, currentSort }: TableProviderProps): React.JSX.Element; interface ExtendableTableProps { name: string; columns: TableColumn[]; initialData: T[]; loading?: boolean; noHeader?: boolean; emptyMessage?: string; onSort?: (key: string, direction: 'asc' | 'desc') => void; currentSort?: { key: string; direction: 'asc' | 'desc'; }; className?: string; } export declare function ExtendableTable({ name, columns, initialData, loading, noHeader, emptyMessage, onSort, currentSort, className }: ExtendableTableProps): React.JSX.Element; export {};