import type { UnitFormat } from '@ni/unit-format';
import { TableColumnAlignment, type TableNumberField } from '../../table/types';
import { TableColumnTextBase } from '../text-base';
import type { ColumnInternalsOptions } from '../base/models/column-internals';
import { NumberTextAlignment, NumberTextFormat } from './types';
import { TableColumnNumberTextValidator } from './models/table-column-number-text-validator';
import type { TableColumnTextBaseColumnConfig } from '../text-base/cell-view';
export type TableColumnNumberTextCellRecord = TableNumberField<'value'>;
export interface TableColumnNumberTextColumnConfig extends TableColumnTextBaseColumnConfig {
    formatter: UnitFormat;
    alignment: TableColumnAlignment;
}
declare global {
    interface HTMLElementTagNameMap {
        'nimble-table-column-number-text': TableColumnNumberText;
    }
}
declare const TableColumnNumberText_base: (abstract new (...args: any[]) => {
    groupingDisabled: boolean;
    groupIndex?: number | null;
    groupingDisabledChanged(): void;
    groupIndexChanged(): void;
    readonly columnInternals: import("../base/models/column-internals").ColumnInternals<unknown, import("../base/models/column-validator").ColumnValidator<[]>>;
}) & (abstract new (...args: any[]) => {
    fractionalWidth?: number | null;
    minPixelWidth?: number | null;
    fractionalWidthChanged(): void;
    minPixelWidthChanged(): void;
    readonly columnInternals: import("../base/models/column-internals").ColumnInternals<unknown, import("../base/models/column-validator").ColumnValidator<[]>>;
}) & (abstract new (...args: any[]) => {
    placeholder?: string;
    placeholderChanged(): void;
}) & (abstract new (...args: any[]) => {
    sortingDisabled: boolean;
    sortIndex?: number | null;
    sortDirection: import("../../table/types").TableColumnSortDirection;
    sortingDisabledChanged(): void;
    sortDirectionChanged(): void;
    sortIndexChanged(): void;
    readonly columnInternals: import("../base/models/column-internals").ColumnInternals<unknown, import("../base/models/column-validator").ColumnValidator<[]>>;
}) & ((abstract new () => TableColumnTextBase<TableColumnNumberTextColumnConfig, TableColumnNumberTextValidator>) & {
    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 numbers as text.
 */
export declare class TableColumnNumberText extends TableColumnNumberText_base {
    format: NumberTextFormat;
    alignment: NumberTextAlignment;
    decimalDigits?: number;
    decimalMaximumDigits?: number;
    /** @internal */
    unitElements?: Element[];
    private unit?;
    private unitNotifier?;
    private readonly langSubscriber;
    private readonly unitSubscriber;
    connectedCallback(): void;
    disconnectedCallback(): void;
    placeholderChanged(): void;
    protected getColumnInternalsOptions(): ColumnInternalsOptions<TableColumnNumberTextValidator>;
    private updateUnitNotifier;
    private formatChanged;
    private alignmentChanged;
    private decimalDigitsChanged;
    private decimalMaximumDigitsChanged;
    private unitElementsChanged;
    private updateUnit;
    private unitChanged;
    private updateColumnConfig;
    private createFormatter;
    private determineCellContentAlignment;
}
export declare const tableColumnNumberTextTag = "nimble-table-column-number-text";
export {};
