import { OverlayConfig } from "@angular/cdk/overlay";
import { AfterViewInit, ElementRef, EventEmitter, OnChanges, OnDestroy, OnInit, Renderer2, SimpleChanges } from "@angular/core";
import { Subject } from "rxjs";
import { IFilter, IFilterPub, ISorterFilter } from "../../services/data-source/public-api";
import { LoggerService } from "../../services/log-service";
import { MenuPopupComponent } from "../menu";
import { IMenuGroup, IMenuItem } from "../menu/public-api";
import { OverlayComponent } from "../overlay/overlay-component/overlay.component";
import { ISorterChanges } from "./public-api";
import { SorterKeyboardService } from "./sorter-keyboard.service";
import * as i0 from "@angular/core";
export declare class SorterComponent implements OnChanges, OnInit, OnDestroy, AfterViewInit, IFilterPub {
    private logger;
    private sorterKeyboardService;
    private elRef;
    private renderer;
    appendToBody: boolean;
    caption: string;
    /**
     * The string[] type for itemsSource is the legacy non-i18n-friendly type
     * and it should be removed as an option in scope of NUI-5801
     */
    itemsSource: string[] | IMenuItem[];
    selectedItem: string;
    sortDirection: any;
    sorterAction: EventEmitter<ISorterChanges>;
    popupArea: ElementRef;
    overlay: OverlayComponent;
    menuPopup: MenuPopupComponent;
    detectFilterChanges: boolean;
    customContainer: ElementRef | undefined;
    onDestroy$: Subject<void>;
    items: IMenuGroup[];
    overlayConfig: OverlayConfig;
    private toggleRef;
    private sortConfig;
    private sortIcons;
    private menuKeyControlListeners;
    constructor(logger: LoggerService, sorterKeyboardService: SorterKeyboardService, elRef: ElementRef, renderer: Renderer2);
    ngOnInit(): void;
    ngOnChanges(changes: SimpleChanges): void;
    ngAfterViewInit(): void;
    select(item: IMenuItem): void;
    toggleSortDirection(): void;
    getSelectedItem(): any;
    getSelectedItemTitle(): string;
    getSortIcon(): string;
    getFilters(): IFilter<ISorterFilter>;
    updateOverlayWidth(): void;
    getAriaLabelForSortingButton(): string;
    ngOnDestroy(): void;
    toggleSorterMenu(): void;
    private initSelectedItem;
    private initPopupItems;
    private initSortDirection;
    private setPopupSelection;
    private triggerSorterAction;
    private onAppendToBodyChange;
    private initKeyboardService;
    static ɵfac: i0.ɵɵFactoryDeclaration<SorterComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<SorterComponent, "nui-sorter", never, { "appendToBody": "appendToBody"; "caption": "caption"; "itemsSource": "itemsSource"; "selectedItem": "selectedItem"; "sortDirection": "sortDirection"; }, { "sorterAction": "sorterAction"; }, never, never, false, never>;
}
