import type { TableNumberField } from '../../table/types';
import { TableColumnTextBase } from '../text-base';
import type { ColumnInternalsOptions } from '../base/models/column-internals';
import { DateTextFormat } from './types';
import type { LocaleMatcherAlgorithm, EraFormat, YearFormat, DayFormat, HourFormat, MinuteFormat, SecondFormat, TimeZoneNameFormat, FormatMatcherAlgorithm, DayPeriodFormat, DateStyle, TimeStyle, HourCycleFormat, MonthFormat, WeekdayFormat } from './types';
import { TableColumnDateTextValidator } from './models/table-column-date-text-validator';
import type { TableColumnTextBaseColumnConfig } from '../text-base/cell-view';
export type TableColumnDateTextCellRecord = TableNumberField<'value'>;
export interface TableColumnDateTextColumnConfig extends TableColumnTextBaseColumnConfig {
    formatter: Intl.DateTimeFormat;
}
declare global {
    interface HTMLElementTagNameMap {
        'nimble-table-column-date-text': TableColumnDateText;
    }
}
declare const TableColumnDateText_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<TableColumnDateTextColumnConfig, TableColumnDateTextValidator>) & {
    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 dates/times as text.
 */
export declare class TableColumnDateText extends TableColumnDateText_base {
    format: DateTextFormat;
    customLocaleMatcher: LocaleMatcherAlgorithm;
    customWeekday: WeekdayFormat;
    customEra: EraFormat;
    customYear: YearFormat;
    customMonth: MonthFormat;
    customDay: DayFormat;
    customHour: HourFormat;
    customMinute: MinuteFormat;
    customSecond: SecondFormat;
    customTimeZoneName: TimeZoneNameFormat;
    customFormatMatcher: FormatMatcherAlgorithm;
    customHour12?: boolean;
    customTimeZone?: string;
    customCalendar?: string;
    customDayPeriod: DayPeriodFormat;
    customNumberingSystem?: string;
    customDateStyle: DateStyle;
    customTimeStyle: TimeStyle;
    customHourCycle: HourCycleFormat;
    private readonly langSubscriber;
    connectedCallback(): void;
    disconnectedCallback(): void;
    placeholderChanged(): void;
    protected getColumnInternalsOptions(): ColumnInternalsOptions<TableColumnDateTextValidator>;
    protected formatChanged(): void;
    protected customLocaleMatcherChanged(): void;
    protected customWeekdayChanged(): void;
    protected customEraChanged(): void;
    protected customYearChanged(): void;
    protected customMonthChanged(): void;
    protected customDayChanged(): void;
    protected customHourChanged(): void;
    protected customMinuteChanged(): void;
    protected customSecondChanged(): void;
    protected customTimeZoneNameChanged(): void;
    protected customFormatMatcherChanged(): void;
    protected customHour12Changed(): void;
    protected customTimeZoneChanged(): void;
    protected customCalendarChanged(): void;
    protected customDayPeriodChanged(): void;
    protected customNumberingSystemChanged(): void;
    protected customDateStyleChanged(): void;
    protected customTimeStyleChanged(): void;
    protected customHourCycleChanged(): void;
    private updateColumnConfig;
    private createFormatter;
    private getCustomFormattingOptions;
}
export declare const tableColumnDateTextTag = "nimble-table-column-date-text";
export {};
