import React from 'react';
import type { ContainerProps } from '../containers/withContainer';
import type { EventsProps } from '../eventsUtils';
import { VTableReactAttributePlugin } from '../table-components/custom/vtable-react-attribute-plugin';
import type { ListTable, PivotTable, PivotChart, ListTableConstructorOptions, PivotTableConstructorOptions, PivotChartConstructorOptions } from '@visactor/vtable';
export type IVTable = ListTable | PivotTable | PivotChart;
export type IOption = ListTableConstructorOptions | PivotTableConstructorOptions | PivotChartConstructorOptions;
export type BaseTableProps = EventsProps & IOption & {
    vtableConstrouctor?: any;
    type?: string;
    container?: HTMLDivElement;
    option?: IOption;
    records?: Record<string, unknown>[];
    width?: number | string;
    height?: number | string;
    skipFunctionDiff?: boolean;
    keepColumnWidthChange?: boolean;
    ReactDOM?: any;
    reactAttributePlugin?: VTableReactAttributePlugin;
    onReady?: (instance: IVTable, isInitial: boolean) => void;
    onError?: (err: Error) => void;
};
type Props = React.PropsWithChildren<BaseTableProps>;
export declare const createTable: <T extends Props>(componentName: string, defaultProps?: Partial<T>, callback?: (props: T) => T) => React.ForwardRefExoticComponent<React.PropsWithoutRef<T & ContainerProps> & React.RefAttributes<any>>;
export {};
