import { default as Module } from '../../core/Module';
import { default as Tabulator } from '../../core/Tabulator';
import { ClipboardMode, PasteAction, PasteParser, RowRangeLookup } from '../../core/types';
import { default as ExportRow } from '../Export/ExportRow';

export default class Clipboard extends Module {
    static readonly moduleName = "clipboard";
    static readonly moduleExtensions: {
        keybindings: {
            actions: Record<string, (this: import('../../../../../../atoms/src/components/table/table.ts').KeybindingsModule, e: KeyboardEvent) => void>;
            bindings: Record<string, string | string[]>;
        };
    };
    static readonly pasteActions: Record<string, PasteAction>;
    static readonly pasteParsers: Record<string, PasteParser>;
    mode: ClipboardMode;
    pasteParser: PasteParser;
    pasteAction: PasteAction;
    customSelection: string | false;
    rowRange: RowRangeLookup;
    blocked: boolean;
    private handleCopyEvent;
    private handlePasteEvent;
    constructor(table: Tabulator);
    initialize(): void;
    clearClipboardDomListeners(): void;
    reset(): void;
    generatePlainContent(list: ExportRow[]): string;
    copy(range?: RowRangeLookup, internal?: boolean): void;
    setPasteAction(action?: string | PasteAction): void;
    setPasteParser(parser?: string | PasteParser): void;
    paste(e: ClipboardEvent): void;
    mutateData(data: Array<Record<string, any>> | Record<string, any>): Array<Record<string, any>>;
    checkPasteOrigin(e: ClipboardEvent): boolean;
    getPasteData(e: ClipboardEvent): string | undefined;
}
