import { ITabulator } from '../../../../../../types/src/table';
import { default as Cell } from '../../core/cell/Cell';
import { default as Module } from '../../core/Module';

/**
 * Marker class applied to every cell whose column has `clickable: true`. CSS
 * in `table.styles.ts` uses this selector for the link-like appearance.
 */
export declare const CLICKABLE_CELL_CLASS = "tabulator-clickable-cell";
/**
 * Tabulator module that renders cells in `clickable` columns with link-like
 * styling and dispatches `cx-table-row-action-click` on click or keyboard
 * activation (Enter / Space).
 *
 * **Mouse:** Normal click prevents default anchor navigation and emits the
 * action. Ctrl/Meta+click anywhere on the cell body calls `window.open()` on
 * the first `<a href>` (new tab). Ctrl/Meta+click directly on the anchor lets
 * the browser handle it natively.
 *
 * **Keyboard:** When the cell contains an `<a href>`, the anchor is the
 * natural tab target — Tabulator does not intercept Tab from native `<a>`
 * elements, so focus moves correctly via the browser. Enter/Space on the
 * anchor bubbles up to our keydown handler on the cell and emits the action
 * (navigation is prevented). When no anchor is present, the cell itself gets
 * `tabIndex=0` and `role="button"`. Ctrl/Meta+Enter / Ctrl/Meta+Space calls
 * `window.open()` on the first `<a href>` in the cell (if any).
 *
 * The triggered action is resolved from the first available hover menu in this
 * order: column > row > table. The optional `clickableActionName` column
 * property targets a specific action by name; if no match is found the
 * activation is a no-op.
 */
export default class ClickableCell extends Module {
    static readonly moduleName = "clickableCell";
    private readonly cellKeyHandlers;
    constructor(table: ITabulator);
    initialize(): void;
    layoutCell(cell: Cell): void;
    handleCellClick(event: MouseEvent, cell: Cell): void;
    private emitCellAction;
    private getCxTableHost;
    private resolveAction;
    private pickAction;
}
