export declare const useOnClickOutside: (ref: any, handler: any) => void;
export declare const checkThousandSeparator: (thousandSeparator: any, decimalSeparator: any) => any;
export declare const checkDecimalSeparator: (thousandSeparator: any, decimalSeparator: any) => any;
export declare const isNullOrUndefined: (d: any) => boolean;
export declare const generateUUID: () => string;
/**
 * format chuỗi kí tự số
 * @param str chuỗi số cần format
 * @param decimalSeparator kí tự thập phân
 * @param thousandSeparator kí tự phân cách hàng nghìn
 * @param fraction số kí tự thập phân
 * @param isDone đã nhập xong
 * @returns
 */
export declare const formartNumberic: (str: string | number, decimalSeparator: string, thousandSeparator: string, fraction?: number, isDone?: boolean, haveNegative?: boolean) => string;
export declare const roundNumber: (num: number, fraction: number) => number;
export declare const formatDateTime: (data: any, format?: string) => string;
export declare const FindNodeByPath: (tree: any[], path: string) => {
    parent: any[];
    lastIndex: number | undefined;
    firstIndex: number;
    node: any;
} | null;
/**
 * Tính toán cấu trúc bảng từ dữ liệu column dạng cây:
 * - Tạo header dạng nhiều cấp (header theo chiều dọc)
 * - Chuyển cột thành dạng phẳng để render nội dung
 * - Tính toán vị trí cố định trái/phải (fixed column) để hiển thị sticky
 *
 * @param columns Mảng cấu trúc cây đại diện cho các cột của bảng
 * @returns {
 *   levels: IHeaderColumnTable[][]       // Các hàng header theo cấp
 *   flat: IColumnVirtualizedTable[]      // Danh sách cột phẳng
 *   objWidthFixLeft: Record<number, number>      // Offset trái cho cột fixed left
 *   objWidthFixRight: Record<number, number>     // Offset phải cho cột fixed right
 *   lastObjWidthFixLeft: number          // Chỉ số cột cuối cùng fixed left
 *   fisrtObjWidthFixRight: number        // Chỉ số cột đầu tiên fixed right
 * }
 */
export declare const calculateTableStructure: (columns: any[]) => {
    levels: any[][];
    flat: any[];
    flatVisble: any[];
    objWidthFixLeft: Record<number, number>;
    objWidthFixRight: Record<number, number>;
    lastObjWidthFixLeft: number;
    fisrtObjWidthFixRight: number;
};
