import { TableColumn } from '../base';
import { TableColumnSortOperation } from '../base/types';
import type { TableStringField } from '../../table/types';
import type { AnchorAppearance } from '../../anchor/types';
import type { ColumnInternalsOptions } from '../base/models/column-internals';
import { TableColumnAnchorValidator } from './models/table-column-anchor-validator';
export type TableColumnAnchorCellRecord = TableStringField<'label' | 'href'>;
export interface TableColumnAnchorColumnConfig {
    appearance: AnchorAppearance;
    underlineHidden?: boolean;
    hreflang?: string;
    ping?: string;
    referrerpolicy?: string;
    rel?: string;
    target?: string;
    type?: string;
    download?: string;
    placeholder?: string;
}
declare global {
    interface HTMLElementTagNameMap {
        'nimble-table-column-anchor': TableColumnAnchor;
    }
}
declare const TableColumnAnchor_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 (...args: any[]) => {
    sortByFieldName?: string;
    customSortOrderColumnNotifier?: import("@ni/fast-element").Notifier;
    customSortOrderColumnChangeHandler: {
        handleChange: (_source: unknown, args: unknown) => void;
    };
    getResolvedOperandDataRecordFieldName(initialOperandFieldName: string | undefined): string | undefined;
    getResolvedSortOperation(initialSortOperation: TableColumnSortOperation): TableColumnSortOperation;
    sortByFieldNameChanged(): void;
    handleSortConfigurationChange(): void;
    handleCustomSortOrderColumnChange(_source: unknown, args: unknown): void;
    updateCustomColumnSortingValidity(): void;
    readonly columnInternals: import("../base/models/column-internals").ColumnInternals<unknown, import("../base/models/column-validator").ColumnValidator<["invalidCustomSortWithGrouping"]>>;
}) & ((abstract new () => TableColumn<TableColumnAnchorColumnConfig, TableColumnAnchorValidator>) & {
    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;
});
/**
 * A table column for displaying links.
 */
export declare class TableColumnAnchor extends TableColumnAnchor_base {
    labelFieldName?: string;
    hrefFieldName?: string;
    appearance?: AnchorAppearance;
    underlineHidden: boolean;
    hreflang?: string;
    ping?: string;
    referrerpolicy?: string;
    rel?: string;
    target?: string;
    type?: string;
    download?: string;
    private readonly defaultSortOperation;
    placeholderChanged(): void;
    handleSortConfigurationChange(): void;
    protected getColumnInternalsOptions(): ColumnInternalsOptions<TableColumnAnchorValidator>;
    protected labelFieldNameChanged(): void;
    protected hrefFieldNameChanged(): void;
    protected appearanceChanged(): void;
    protected underlineHiddenChanged(): void;
    protected hreflangChanged(): void;
    protected pingChanged(): void;
    protected referrerpolicyChanged(): void;
    protected relChanged(): void;
    protected targetChanged(): void;
    protected typeChanged(): void;
    protected downloadChanged(): void;
    private updateColumnConfig;
    private updateColumnInternalsSortConfiguration;
}
export declare const tableColumnAnchorTag = "nimble-table-column-anchor";
export {};
