import { type TuiComparator } from '@taiga-ui/addon-table/types';
import { type TuiTextfieldOptions } from '@taiga-ui/core/components/textfield';
import { TuiSortDirection, type TuiTableSortChange } from '../table.options';
import * as i0 from "@angular/core";
import * as i1 from "./stuck.directive";
export declare class TuiTableDirective<T extends Partial<Record<keyof T, unknown>>> implements TuiTextfieldOptions {
    private readonly options;
    protected readonly nothing: undefined;
    protected readonly computedSortChange: import("@angular/core").Signal<TuiTableSortChange<T>>;
    protected readonly sortChangeOutput: import("@angular/core").EffectRef;
    readonly columns: import("@angular/core").InputSignal<readonly (string | keyof T)[]>;
    readonly size: import("@angular/core").InputSignal<"s" | "m" | "l">;
    readonly direction: import("@angular/core").ModelSignal<TuiSortDirection>;
    readonly sorter: import("@angular/core").ModelSignal<TuiComparator<T>>;
    readonly sortChange: import("@angular/core").OutputEmitterRef<TuiTableSortChange<T>>;
    readonly appearance: import("@angular/core").WritableSignal<string>;
    readonly cleaner: import("@angular/core").WritableSignal<boolean>;
    updateSorterAndDirection(sorter: TuiComparator<T> | null): void;
    updateSorter(sorter: TuiComparator<T> | null, direction?: TuiSortDirection): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<TuiTableDirective<any>, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<TuiTableDirective<any>, "table[tuiTable]", never, { "columns": { "alias": "columns"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "direction": { "alias": "direction"; "required": false; "isSignal": true; }; "sorter": { "alias": "sorter"; "required": false; "isSignal": true; }; }, { "direction": "directionChange"; "sorter": "sorterChange"; "sortChange": "sortChange"; }, never, never, true, [{ directive: typeof i1.TuiStuck; inputs: {}; outputs: {}; }]>;
}
