import { TuiTableDirective } from '../directives/table.directive';
import * as i0 from "@angular/core";
export declare class TuiTableTh<T extends Partial<Record<keyof T, unknown>>> {
    private readonly options;
    private readonly head;
    protected readonly width: import("@angular/core").WritableSignal<number | null>;
    protected readonly table: TuiTableDirective<T> | null;
    readonly minWidth: import("@angular/core").InputSignal<number>;
    readonly maxWidth: import("@angular/core").InputSignal<number>;
    readonly sorter: import("@angular/core").ModelSignal<((a: T, b: T) => number) | null>;
    readonly resizable: import("@angular/core").InputSignal<boolean>;
    readonly sticky: import("@angular/core").InputSignal<boolean>;
    readonly requiredSort: import("@angular/core").InputSignal<boolean>;
    get key(): keyof T;
    protected get isCurrent(): boolean;
    protected get icon(): string;
    protected updateSorterAndDirection(): void;
    protected onResized(width: number): void;
    private get isCurrentAndDescDirection();
    static ɵfac: i0.ɵɵFactoryDeclaration<TuiTableTh<any>, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<TuiTableTh<any>, "th[tuiTh]", never, { "minWidth": { "alias": "minWidth"; "required": false; "isSignal": true; }; "maxWidth": { "alias": "maxWidth"; "required": false; "isSignal": true; }; "sorter": { "alias": "sorter"; "required": false; "isSignal": true; }; "resizable": { "alias": "resizable"; "required": false; "isSignal": true; }; "sticky": { "alias": "sticky"; "required": false; "isSignal": true; }; "requiredSort": { "alias": "requiredSort"; "required": false; "isSignal": true; }; }, { "sorter": "sorterChange"; }, never, ["*"], true, never>;
}
export declare class TuiTableSortKeyException extends Error {
    constructor();
}
