import { EventEmitter, OnChanges, OnDestroy, OnInit } from '@angular/core';
import { MatSort, MatSortable, SortDirection } from '@angular/material/sort';
import * as i0 from "@angular/core";
/** The current sort state. */
export interface MultiSort {
    sortedBy: {
        id: string;
        direction: 'asc' | 'desc';
    }[];
}
/** Container for MatSortables to manage the sort state and provide default sort parameters. */
export declare class MdtMultiSort extends MatSort implements OnChanges, OnDestroy, OnInit {
    /**
     * The array of active sort ids. Order defines sorting precedence.
     */
    get sortedBy(): {
        id: string;
        direction: 'asc' | 'desc';
    }[];
    set sortedBy(sortedBy: {
        id: string;
        direction: 'asc' | 'desc';
    }[]);
    private _sortedBy;
    start: 'asc' | 'desc';
    mode: 'single' | 'multi';
    isSortDirectionValid(direction: {
        [id: string]: SortDirection;
    }): boolean;
    isIndividualSortDirectionValid(direction: string): boolean;
    /** Event emitted when the user changes either the active sort or sort direction. */
    readonly multiSortChange: EventEmitter<MultiSort>;
    /** Sets the active sort id and determines the new sort direction. */
    sort(sortable: MatSortable): void;
    ngOnInit(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<MdtMultiSort, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<MdtMultiSort, "[mdtMultiSort]", ["mdtMultiSort"], { "disabled": { "alias": "matSortDisabled"; "required": false; }; "sortedBy": { "alias": "mdtSortActive"; "required": false; }; "mode": { "alias": "mode"; "required": false; }; }, { "multiSortChange": "matSortChange"; }, never, never, false, never>;
}
