import { BaseGridPlugin, GridElement, PluginDependency } from '../../core/plugin/base-plugin';
import { ClipboardConfig } from './types';
/**
 * Clipboard Plugin for tbw-grid
 *
 * @example
 * ```ts
 * new ClipboardPlugin({ includeHeaders: true })
 * ```
 */
export declare class ClipboardPlugin extends BaseGridPlugin<ClipboardConfig> {
    #private;
    /**
     * Plugin dependencies - ClipboardPlugin works best with SelectionPlugin.
     *
     * Without SelectionPlugin: copies entire grid, pastes at row 0 col 0.
     * With SelectionPlugin: copies/pastes based on selection.
     */
    static readonly dependencies: PluginDependency[];
    readonly name = "clipboard";
    protected get defaultConfig(): Partial<ClipboardConfig>;
    /** The last copied text (for reference/debugging) */
    private lastCopied;
    attach(grid: GridElement): void;
    detach(): void;
    onKeyDown(event: KeyboardEvent): boolean;
    /**
     * Copy currently selected rows to clipboard.
     * @returns The copied text
     */
    copy(): Promise<string>;
    /**
     * Copy specific rows by index to clipboard.
     * @param indices - Array of row indices to copy
     * @returns The copied text
     */
    copyRows(indices: number[]): Promise<string>;
    /**
     * Read and parse clipboard content.
     * @returns Parsed 2D array of cell values, or null if clipboard is empty
     */
    paste(): Promise<string[][] | null>;
    /**
     * Get the last copied text and timestamp.
     * @returns The last copied info or null
     */
    getLastCopied(): {
        text: string;
        timestamp: number;
    } | null;
}
export type { ClipboardConfig, CopyDetail, PasteDetail } from './types';
//# sourceMappingURL=ClipboardPlugin.d.ts.map