import { FormArray } from '@angular/forms';
import { BehaviorSubject } from 'rxjs';
import { MultisortParam } from '../models/multi-sort.model';
import * as i0 from "@angular/core";
/**
 * Service to manage the sorting state of columns in a table.
 * Uses a `BehaviorSubject` to store and emit the current sorting values.
 */
export declare class EuiTableSortService {
    /**
     * BehaviorSubject containing the current sorting information.
     */
    sortingParams$: BehaviorSubject<{
        sort: any;
        order: string;
    }>;
    multisortParamsChange$: BehaviorSubject<any[]>;
    multisortParamsSort$: BehaviorSubject<any[]>;
    private multisortParams;
    /**
     * Sets the ordering order for a given column
     *
     * @param sort The name of the column to sort.
     * @param order The sorting order (ascending or descending).
     */
    setSort(sort: string | null, order: 'asc' | 'desc' | null): void;
    /**
     * Sets the ordering on multiple columns.
     *
     * @param multisortParams Name, order and position of the columns in the sort sequence.
     */
    setMultiSortColumns(multisortParams: MultisortParam[]): void;
    /**
     * Add a column to the sorting.
     *
     * @param column The column to add to the sorting.
     */
    addMultisortParam(column: MultisortParam): void;
    /**
     * Add a new select to the form displayed in the dropdown to configure the sorting.
     *
     * @param params The current sorting configuration.
     * @returns The form group with the selects.
     */
    toFormGroup(params: MultisortParam[]): FormArray;
    /**
     * Checks if the params are already used for the sorting.
     *
     * @param multisortParams Params to check.
     * @returns True if the params are found otherwise false.
     */
    private checkIsMultisortable;
    private sortParamsAsc;
    private isNullPosition;
    private getValue;
    static ɵfac: i0.ɵɵFactoryDeclaration<EuiTableSortService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<EuiTableSortService>;
}
//# sourceMappingURL=eui-table-sort.service.d.ts.map