import { ColumnDef as TanstackColumnDef } from '@tanstack/react-table';
import { ColumnDef } from '../../../types';
declare module "@tanstack/react-table" {
    interface ColumnMeta<TData, TValue> {
        editMode?: ColumnDef<TData>["editMode"];
        editConfig?: ColumnDef<TData>["editConfig"];
        onChange?: ColumnDef<TData>["onChange"];
        options?: ColumnDef<TData>["options"];
        /**
         * The original column definition, stored for type narrowing and runtime access
         */
        columnDef?: ColumnDef<TData>;
        /**
         * Whether the header action (expand all / select all) is disabled for this column
         */
        disableHeaderAction?: boolean;
    }
}
/**
 * Props for the getTanStackColumnDef function
 */
export type TanStackColumnDefProps<T> = {
    /**
     * The column definition to convert to a TanStack column definition
     */
    columnDef: ColumnDef<T>;
};
/**
 * Build the column definition for TanStack useReactTable.
 * This converts our ColumnDef<T> to TanStack's column definition format,
 * preserving the original column definition in meta for type narrowing.
 *
 * @param props - The props for the getTanStackColumnDef function
 * @param props.columnDef - The column definition to convert
 * @returns The column definition for TanStack useReactTable
 */
export declare function getTanStackColumnDef<T>({ columnDef, }: TanStackColumnDefProps<T>): TanstackColumnDef<T, any>;
