import * as i0 from '@angular/core';
import { OnInit } from '@angular/core';
import { HttpParams } from '@angular/common/http';
import { TranslatableString } from '@siemens/element-translate-ng/translate';

interface SortCriteria {
    name: TranslatableString;
    key: number | string;
}
/**
 * @deprecated SiSortBarComponent originate from the older design system and do not align with current
 * design guidelines. No known use case exists for this component.
 * It will be removed in v50.
 */
declare class SiSortBarComponent implements OnInit {
    /**
     * Custom sort title.
     *
     * @defaultValue
     * ```
     * t(() => $localize`:@@SI_SORT_BAR.TITLE:Sort by`)
     * ```
     */
    readonly sortTitle: i0.InputSignal<TranslatableString>;
    /**
     * List of sort criteria.
     */
    readonly sortCriteria: i0.InputSignal<SortCriteria[]>;
    /**
     * `key` which sortCriteria is active by default.
     */
    readonly defaultSortCriteria: i0.InputSignal<string | number>;
    /**
     * Output callback event will provide you with a HttpParams object if active
     * sortCriteria change.
     */
    readonly sortChange: i0.OutputEmitterRef<HttpParams>;
    protected readonly icons: Record<"elementSortDown" | "elementSortUp", string>;
    protected activeSortCriteria: SortCriteria['key'];
    protected sortIsDescending: boolean;
    ngOnInit(): void;
    protected setActive(key: SortCriteria['key']): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<SiSortBarComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<SiSortBarComponent, "si-sort-bar", never, { "sortTitle": { "alias": "sortTitle"; "required": false; "isSignal": true; }; "sortCriteria": { "alias": "sortCriteria"; "required": true; "isSignal": true; }; "defaultSortCriteria": { "alias": "defaultSortCriteria"; "required": true; "isSignal": true; }; }, { "sortChange": "sortChange"; }, never, never, true, never>;
}

/**
 * @deprecated SiSortBarModule originate from the older design system and do not align with current
 * design guidelines. No known use case exists for this module and component.
 * It will be removed in v50.
 */
declare class SiSortBarModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<SiSortBarModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<SiSortBarModule, never, [typeof SiSortBarComponent], [typeof SiSortBarComponent]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<SiSortBarModule>;
}

export { SiSortBarComponent, SiSortBarModule };
export type { SortCriteria };
