import { Node as PmNode } from 'prosemirror-model';
import { EditorView } from 'prosemirror-view';
import React from 'react';
import { WidthPluginState } from '../../width';
import { ColumnResizingPluginState, TablePluginState } from '../types';
import { Props } from './types';
export interface ComponentProps extends Props {
    view: EditorView;
    node: PmNode;
    allowColumnResizing: boolean;
    contentDOM: (element: HTMLElement | undefined) => void;
    containerWidth: WidthPluginState;
    pluginState: TablePluginState;
    tableResizingPluginState?: ColumnResizingPluginState;
    width: number;
}
interface TableState {
    scroll: number;
    tableContainerWidth: string;
    parentWidth?: number;
    isLoading: boolean;
}
declare class TableComponent extends React.Component<ComponentProps, TableState> {
    static displayName: string;
    state: {
        scroll: number;
        tableContainerWidth: string;
        parentWidth: any;
        isLoading: boolean;
    };
    private wrapper?;
    private table?;
    private rightShadow?;
    private leftShadow?;
    private frameId?;
    private node?;
    private containerWidth?;
    private layoutSize?;
    constructor(props: ComponentProps);
    componentDidMount(): void;
    componentWillUnmount(): void;
    componentDidUpdate(prevProps: ComponentProps): void;
    render(): React.JSX.Element;
    private handleScroll;
    private handleTableResizing;
    private scaleTable;
    private handleAutoSize;
    private handleWindowResize;
    private updateTableContainerWidth;
    private getParentNodeWidth;
    private updateParentWidth;
    private tableNodeLayoutSize;
    private scaleTableDebounced;
    private handleTableResizingDebounced;
    private handleScrollDebounced;
    private handleAutoSizeDebounced;
    private handleWindowResizeDebounced;
}
export default TableComponent;
