/// <reference types="node" />
import type { ListTable, TYPES } from '@visactor/vtable';
import type { pluginsDefinition } from '@visactor/vtable';
export interface AddRowColumnOptions {
    id?: string;
    addColumnEnable?: boolean;
    addRowEnable?: boolean;
    addColumnCallback?: (col: number, table: ListTable) => void;
    addRowCallback?: (row: number, table: ListTable) => void;
}
export declare class AddRowColumnPlugin implements pluginsDefinition.IVTablePlugin {
    id: string;
    name: string;
    runTime: ("mouseleave_table" | "mouseenter_cell" | "mouseleave_cell")[];
    pluginOptions: AddRowColumnOptions;
    table: ListTable;
    hoverCell: TYPES.CellAddressWithBound;
    hideAllTimeoutId_addColumn: NodeJS.Timeout;
    hideAllTimeoutId_addRow: NodeJS.Timeout;
    leftDotForAddColumn: HTMLElement;
    rightDotForAddColumn: HTMLElement;
    addIconForAddColumn: HTMLElement;
    addLineForAddColumn: HTMLElement;
    topDotForAddRow: HTMLElement;
    bottomDotForAddRow: HTMLElement;
    addIconForAddRow: HTMLElement;
    addLineForAddRow: HTMLElement;
    constructor(pluginOptions?: AddRowColumnOptions);
    run(...args: any[]): void;
    initAddColumnDomElement(): void;
    bindEventForAddColumn(): void;
    showDotForAddColumn(top: number, left: number, right: number, isShowLeft?: boolean, isShowRight?: boolean): void;
    showAddIconForAddColumn(left: number, top: number, isLeft: boolean): void;
    showSplitLineForAddColumn(left: number, top: number, height: number): void;
    delayHideAllForAddColumn(delay?: number): void;
    initAddRowDomElement(): void;
    bindEventForAddRow(): void;
    showDotForAddRow(top: number, left: number, bottom: number, isShowTop?: boolean, isShowBottom?: boolean): void;
    showAddIconForAddRow(left: number, top: number, isTop: boolean): void;
    showSplitLineForAddRow(left: number, top: number, width: number): void;
    delayHideAllForAddRow(delay?: number): void;
    release(): void;
}
