import { TTableTitle, TBodyDataID, TBodyDataFieldKey, ITableBody, TTitleCol } from './types';
import { CSSProperties } from 'react';
export declare const getTemplate: <D extends string>(titles: TTableTitle<D>, gap: string) => CSSProperties;
export declare const getCol: (col: TTitleCol) => {
    '--td-width': string;
} | {
    '--td-width': true | `${number}em` | `${number}px` | `${number}%` | `${number}fr` | `${number}rem` | "auto";
};
/**
 * 計算 sticky top
 * @param isSticky
 */
export declare const getCalcStickyTopStyles: (isSticky?: boolean) => CSSProperties;
/**
 * 計算 sticky left
 * @param calcLeft
 * @param sticky
 */
export declare const getCalcStickyLeftStyles: (calcLeft?: TTitleCol[], sticky?: 'left' | 'right') => CSSProperties;
/**
 * 計算分頁
 * @param totalItem
 * @param pageLimit
 */
export declare const calcPageInfo: (totalItem: number, pageLimit: number) => number;
interface ITableTitleData<K extends TBodyDataFieldKey, I extends TBodyDataID> {
    title: TTableTitle<K>;
    data: ITableBody<K, I>[];
}
/**
 * 綁定的方式產生 data,
 * tableTitleData({
 *     title: {text: 'title', col: 'auto'},
 *     name: {text: 'name', col: 'auto'},
 * }, [
 *     {
 *         id: 'name',
 *         field: {
 *             name: 'xx',
 *             title: 'xxx',
 *         }
 *     }
 * ]);
 * @param title
 * @param data
 */
export declare const genericsTitleData: <K extends string, I extends TBodyDataID>(title: TTableTitle<K>, data: ITableBody<K, I>[]) => ITableTitleData<K, I>;
export { arrayMove } from '@dnd-kit/sortable';
