import type { TableStringField } from '../../table/types';
import type { ColumnInternalsOptions } from '../base/models/column-internals';
import { ColumnValidator } from '../base/models/column-validator';
import { TableColumn } from '../base';
export type TableColumnMenuButtonCellRecord = TableStringField<'value'>;
export interface TableColumnMenuButtonColumnConfig {
    menuSlot?: string;
}
declare global {
    interface HTMLElementTagNameMap {
        'nimble-table-column-menu-button': TableColumnMenuButton;
    }
}
declare const TableColumnMenuButton_base: (abstract new (...args: any[]) => {
    fractionalWidth?: number | null;
    minPixelWidth?: number | null;
    fractionalWidthChanged(): void;
    minPixelWidthChanged(): void;
    readonly columnInternals: import("../base/models/column-internals").ColumnInternals<unknown, ColumnValidator<[]>>;
}) & ((abstract new () => TableColumn<TableColumnMenuButtonColumnConfig, ColumnValidator<[]>>) & {
    compose<T extends import("@ni/fast-foundation").FoundationElementDefinition = import("@ni/fast-foundation").FoundationElementDefinition, K extends import("@ni/fast-element").Constructable<import("@ni/fast-foundation").FoundationElement> = import("@ni/fast-element").Constructable<import("@ni/fast-foundation").FoundationElement>>(this: K, elementDefinition: T): (overrideDefinition?: import("@ni/fast-foundation").OverrideFoundationElementDefinition<T>) => import("@ni/fast-foundation").FoundationElementRegistry<T, K>;
    from<TBase extends {
        new (): HTMLElement;
        prototype: HTMLElement;
    }>(BaseType: TBase): new () => InstanceType<TBase> & import("@ni/fast-element").FASTElement;
    define<TType extends Function>(type: TType, nameOrDef?: string | import("@ni/fast-element").PartialFASTElementDefinition): TType;
});
/**
 * The table column for displaying string fields as the content within a menu button.
 */
export declare class TableColumnMenuButton extends TableColumnMenuButton_base {
    fieldName?: string;
    menuSlot?: string;
    /** @internal */
    onDelegatedEvent(e: Event): void;
    protected getColumnInternalsOptions(): ColumnInternalsOptions;
    protected fieldNameChanged(): void;
    protected menuSlotChanged(): void;
    private updateColumnConfig;
}
export declare const tableColumnMenuButtonTag = "nimble-table-column-menu-button";
export {};
