import { ReactNode, PropsWithChildren, ForwardRefExoticComponent, RefAttributes, DetailedHTMLProps, HTMLAttributes } from 'react';
import { Density } from './hooks/useTableMeasures';
import useTableMotion from './hooks/useTableMotion';
export declare type Items = object[];
export declare type ReturnedData = {
    data: unknown | object;
    rowHeight: number;
    density: Density;
    motion: ReturnType<typeof useTableMotion>;
};
export declare type Column = {
    id?: string;
    title?: string | Element | Function;
    width?: number | string;
    sortable?: boolean;
    cellRenderer?: (data: ReturnedData) => React.ReactNode;
    extended?: boolean;
    condensed?: string[];
};
export declare type E2ETestable<T = string> = {
    testId?: T;
};
export interface HasMotion {
    motion?: ReturnType<typeof useTableMotion>;
}
/** Shorthand for RefForwardingComponent */
export declare type RFC<T, P = {}> = React.RefForwardingComponent<T, P>;
/** Defines a exported foward ref with composites */
export declare type ComposableWithRef<Ref = HTMLElement, Props = PropsWithChildren<{}>, Composites = {}> = ForwardRefExoticComponent<Props & RefAttributes<Ref>> & Partial<Composites>;
/** Type with children that receives render-props */
export declare type RenderProps<P = {}, T = Record<string, unknown>> = P & {
    children?: (data: T) => ReactNode;
};
export declare type NativeTableSection = DetailedHTMLProps<HTMLAttributes<HTMLTableSectionElement>, HTMLTableSectionElement>;
export declare type NativeTr = DetailedHTMLProps<HTMLAttributes<HTMLTableRowElement>, HTMLTableRowElement>;
export declare type NativeTable = DetailedHTMLProps<HTMLAttributes<HTMLTableElement>, HTMLTableElement>;
