import { OnInit, OnDestroy } from '@angular/core';
import { FormArray, FormGroup } from '@angular/forms';
import { EuiDropdownComponent } from '@eui/components/eui-dropdown';
import { MultisortParam } from '../models/multi-sort.model';
import * as i0 from "@angular/core";
/**
 * @description
 * Component used internally by `eui-table` to make a column sortable.
 */
export declare class EuiTableSortableColComponent implements OnInit, OnDestroy {
    dropdown: EuiDropdownComponent;
    sortOn: string;
    sortOrder: 'asc' | 'desc';
    /**
     * Whether the column is multi-sorted by default.
     *
     * @default false
     */
    defaultMultiOrder: any;
    /**
     * Whether the column is sorted by default.
     *
     * @default false
     */
    defaultOrder: boolean;
    /**
     * Whether the sort is disabled on the column.
     *
     * @default false
     */
    sortDisabled: boolean;
    /**
     * Whether the sorting of the column can be cumulated with the one of other column.
     *
     * @default false
     */
    isMultiSortable: boolean;
    order: 'asc' | 'desc' | null;
    multisortParams: MultisortParam[];
    currentMultiSortPosition: number;
    error: boolean;
    form: FormGroup;
    private destroy$;
    /**
     * @description
     * Computes and returns the CSS classes for the component based on its current state.
     *
     * @returns {string} Space-separated string of CSS class names
     */
    get cssClasses(): string;
    private euiTableSortService;
    ngOnInit(): void;
    ngOnDestroy(): void;
    get columns(): FormArray;
    /**
     * Handles the click event on the sortable column.
     */
    click(): void;
    /**
     * Handles the click event on the multi-sortable column.
     */
    onClickMultisortOrder(index: number, order: 'asc' | 'desc' | null): void;
    onOpenDropdown(): void;
    getOrderByIndex(index: number): string | null;
    onCancelMultiSort(): void;
    onSubmitMultiSort(): void;
    private setSortableParams;
    private setCurrentMultisortPosition;
    private checkValidForSorting;
    private isElementUniqueName;
    static ɵfac: i0.ɵɵFactoryDeclaration<EuiTableSortableColComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<EuiTableSortableColComponent, "th[sortable]", never, { "sortOn": { "alias": "sortOn"; "required": false; }; "sortOrder": { "alias": "sortOrder"; "required": false; }; "defaultMultiOrder": { "alias": "defaultMultiOrder"; "required": false; }; "defaultOrder": { "alias": "defaultOrder"; "required": false; }; "sortDisabled": { "alias": "sortDisabled"; "required": false; }; "isMultiSortable": { "alias": "isMultiSortable"; "required": false; }; }, {}, never, ["*"], true, never>;
    static ngAcceptInputType_defaultMultiOrder: unknown;
    static ngAcceptInputType_defaultOrder: unknown;
    static ngAcceptInputType_sortDisabled: unknown;
    static ngAcceptInputType_isMultiSortable: unknown;
}
//# sourceMappingURL=eui-table-sortable-col.component.d.ts.map