/// <reference types="node" />
import type { Column, ExcelCopyBufferOption } from '../interfaces/index';
import { SlickEvent, SlickEventData, SlickEventHandler, type SlickGrid, SlickRange } from '../core/index';
export declare class SlickCellExternalCopyManager {
    pluginName: 'CellExternalCopyManager';
    onCopyCells: SlickEvent<{
        ranges: SlickRange[];
    }>;
    onCopyCancelled: SlickEvent<{
        ranges: SlickRange[];
    }>;
    onPasteCells: SlickEvent<{
        ranges: SlickRange[];
    }>;
    onBeforePasteCell: SlickEvent<{
        cell: number;
        row: number;
        item: any;
        columnDef: Column;
        value: any;
    }>;
    protected _addonOptions: ExcelCopyBufferOption;
    protected _bodyElement: HTMLElement;
    protected _clearCopyTI?: NodeJS.Timeout;
    protected _copiedCellStyle: string;
    protected _copiedCellStyleLayerKey: string;
    protected _copiedRanges: SlickRange[] | null;
    protected _eventHandler: SlickEventHandler;
    protected _grid: SlickGrid;
    protected _onCopyInit?: () => void;
    protected _onCopySuccess?: (rowCount: number) => void;
    constructor();
    get addonOptions(): ExcelCopyBufferOption<any>;
    get eventHandler(): SlickEventHandler;
    init(grid: SlickGrid, options?: ExcelCopyBufferOption): void;
    dispose(): void;
    clearCopySelection(): void;
    getHeaderValueForColumn(columnDef: Column): string;
    getDataItemValueForColumn(item: any, columnDef: Column, row: number, cell: number, event: SlickEventData): string;
    setDataItemValueForColumn(item: any, columnDef: Column, value: any): any | void;
    setIncludeHeaderWhenCopying(includeHeaderWhenCopying: boolean): void;
    protected createTextBox(innerText: string): HTMLTextAreaElement;
    protected decodeTabularData(grid: SlickGrid, textAreaElement: HTMLTextAreaElement): void;
    protected handleKeyDown(e: SlickEventData): boolean | void;
    protected markCopySelection(ranges: SlickRange[]): void;
}
//# sourceMappingURL=slickCellExternalCopyManager.d.ts.map