import { Parchment as TypeParchment, default as Quill } from 'quill';
import { Delta as TypeDelta } from 'quill/core';
import { default as TypeClipboard } from 'quill/modules/clipboard';
declare const Clipboard: typeof TypeClipboard;
export type Selector = string | Node['TEXT_NODE'] | Node['ELEMENT_NODE'];
export type Matcher = (node: Node, delta: TypeDelta, scroll: TypeParchment.ScrollBlot) => TypeDelta;
export interface ClipboardOptions {
    matchers: [Selector, Matcher][];
}
export declare class TableClipboard extends Clipboard {
    quill: Quill;
    private readonly matchCaptionHandler;
    private readonly matchColHandler;
    private readonly matchColgroupHandler;
    private readonly matchTableHandler;
    private readonly matchTbodyHandler;
    private readonly matchTdAttributorHandler;
    private readonly matchTdHandler;
    private readonly matchTheadHandler;
    private readonly matchTrHandler;
    private readonly matchTfootHandler;
    private readonly matchYouTubeLinkHandler;
    tableId: string;
    rowId: string;
    colIds: string[];
    rowspanCount: number[];
    cellCount: number;
    colCount: number;
    private resetTableState;
    constructor(quill: Quill, options: Partial<ClipboardOptions>);
    private getStyleBackgroundColor;
    matchYouTubeLink(node: Node, delta: TypeDelta): TypeDelta;
    private readPreprocessedColumnWidths;
    matchTable(node: Node, delta: TypeDelta): TypeDelta;
    private createEmptyRowIdsForPlainInsert;
    private mergeEmptyRowsIntoCellValue;
    matchTbody(node: Node, delta: TypeDelta): TypeDelta;
    matchThead(node: Node, delta: TypeDelta): TypeDelta;
    matchTfoot(node: Node, delta: TypeDelta): TypeDelta;
    private applySectionWrapTag;
    matchColgroup(_node: Node, delta: TypeDelta): TypeDelta;
    matchCol(node: Node, _delta: TypeDelta): TypeDelta;
    matchTr(node: Node, delta: TypeDelta): TypeDelta;
    matchTd(node: Node, delta: TypeDelta): TypeDelta;
    private ensureColumnSlots;
    private handleBorderNoneStyles;
    matchTdAttributor(node: Node, delta: TypeDelta): TypeDelta;
    convert({ html, text }: {
        html?: string;
        text?: string;
    }, formats?: Record<string, unknown>): TypeDelta;
    matchCaption(_node: Node, delta: TypeDelta): TypeDelta;
    private preprocessTableHtml;
    private inlineComputedTableStyles;
    private inlineComputedTableStylesFromRendered;
    private buildComputedCellStyle;
    private resolveExplicitHeightStyle;
    private normalizeTableMarkup;
}
export {};
