import React from 'react';
import { Subscription } from 'rxjs';
import ResizeObserver from 'resize-observer-polyfill';
import { TableDOMHelper } from './helpers/TableDOMUtils';
/** styled-components 类库的版本，ali-react-table 同时支持 v3 和 v5 */
export declare const STYLED_VERSION: string;
export declare const STYLED_REF_PROP: string;
export declare const OVERSCAN_SIZE = 100;
export declare const AUTO_VIRTUAL_THRESHOLD = 100;
export declare function sum(arr: number[]): number;
export declare const throttledWindowResize$: import("rxjs").Observable<Event>;
interface ContentRectType {
    hide: boolean;
    bottom: number;
    height: number;
    left: number;
    right: number;
    top: number;
    width: number;
    x: number;
    y: number;
}
export declare const addResizeObserver: (element: HTMLElement | null, handler?: (react: ContentRectType) => void) => ResizeObserver;
export declare function getScrollbarSize(): {
    width: number;
    height: number;
};
/** 同步多个元素之间的 scrollLeft, 每当 scrollLeft 发生变化时 callback 会被调用 */
export declare function syncScrollLeft(elements: HTMLElement[], callback: (scrollLeft: number) => void): Subscription;
/**
 * Performs equality by iterating through keys on an object and returning false
 * when any key has values which are not strictly equal between the arguments.
 * Returns true when the values of all keys are strictly equal.
 */
export declare function shallowEqual<T>(objA: T, objB: T): boolean;
export declare function composeRowPropsGetter(getRowProps: (record: any, rowIndex: number) => React.HTMLAttributes<HTMLTableRowElement>, pendingRowProps?: React.HTMLAttributes<HTMLTableRowElement>): (record: any, rowIndex: number) => React.HTMLAttributes<HTMLTableRowElement>;
export declare function getTableScrollHeaderDOM(domHelper: TableDOMHelper): HTMLDivElement;
export declare function getTableScrollFooterDOM(domHelper: TableDOMHelper): HTMLDivElement;
export declare const cssPolifill: ({ variables, enableCSSVariables, bordered }: {
    variables: {
        [key: string]: any;
    };
    enableCSSVariables?: boolean;
    bordered?: boolean;
}) => void;
export declare const swapRTLDirection: (direction: string, directionKey: 'left' | 'right') => 'left' | 'right';
export {};
