import { ViewTemplate } from '@ni/fast-element';
import { FoundationElement } from '@ni/fast-foundation';
import type { MenuButton } from '../../../menu-button';
import type { MenuButtonToggleEventDetail } from '../../../menu-button/types';
import type { TableColumn } from '../../../table-column/base';
import type { TableCellRecord, TableCellState } from '../../../table-column/base/types';
import type { TableCellView } from '../../../table-column/base/cell-view';
declare global {
    interface HTMLElementTagNameMap {
        'nimble-table-cell': TableCell;
    }
}
/**
 * A styled cell that is used within the nimble-table-row.
 * @internal
 */
export declare class TableCell<TCellRecord extends TableCellRecord = TableCellRecord> extends FoundationElement {
    cellState?: TableCellState<TCellRecord>;
    column?: TableColumn;
    recordId?: string;
    columnId?: string;
    hasActionMenu: boolean;
    menuOpen: boolean;
    actionMenuLabel?: string;
    cellViewTemplate?: ViewTemplate<TableCell>;
    /** @internal */
    cellViewContainer: HTMLElement;
    nestingLevel: number;
    readonly actionMenuButton?: MenuButton;
    /** @internal */
    get cellView(): TableCellView<TCellRecord>;
    onActionMenuBeforeToggle(event: CustomEvent<MenuButtonToggleEventDetail>): void;
    onActionMenuToggle(event: CustomEvent<MenuButtonToggleEventDetail>): void;
    onActionMenuBlur(): void;
    onCellViewFocusIn(): void;
    onCellFocusIn(): void;
    onCellBlur(): void;
}
export declare const tableCellTag = "nimble-table-cell";
