import type { ColumnSort, RowData } from "@tanstack/react-table"; import type { DataTableConfig } from "@/config/data-table"; import type { FilterItemSchema } from "@/lib/parsers"; declare module "@tanstack/react-table" { // biome-ignore lint/correctness/noUnusedVariables: TData is used in the TableMeta interface interface TableMeta { queryKeys?: QueryKeys; } // biome-ignore lint/correctness/noUnusedVariables: TData and TValue are used in the ColumnMeta interface interface ColumnMeta { label?: string; placeholder?: string; variant?: FilterVariant; options?: Option[]; range?: [number, number]; unit?: string; icon?: React.FC>; } } export interface QueryKeys { page: string; perPage: string; sort: string; filters: string; joinOperator: string; } export interface Option { label: string; value: string; count?: number; icon?: React.FC>; } export type FilterOperator = DataTableConfig["operators"][number]; export type FilterVariant = DataTableConfig["filterVariants"][number]; export interface ExtendedColumnSort extends Omit { id: Extract; } export interface ExtendedColumnFilter extends FilterItemSchema { id: Extract; }