import { EventEmitter } from '@angular/core';
import { ProductExperienceEvent, ProductExperienceEventSource } from '@c8y/ngx-components';
import { OperationStatusOptionsMapShared, OperationStatusOption } from '@c8y/ngx-components/operations/shared';
import * as i0 from "@angular/core";
export declare class StatusFilterComponent implements ProductExperienceEventSource {
    ACTIONS: {
        readonly FILTER: "filter";
        readonly OPEN_OPERATION_DETAILS: "openOperationDetails";
        readonly RETRY: "retry";
    };
    productExperienceEvent: ProductExperienceEvent;
    statusOptions: Array<{
        selected: boolean;
        option: OperationStatusOption;
    }>;
    /** List of filter options to be displayed */
    set options(options: OperationStatusOptionsMapShared);
    /**
     * Allows multiple options to be active simultaneosly.
     */
    set _multiple(multiple: boolean);
    /** Display the filter as a small button group */
    set _small(small: boolean);
    get displaySmall(): boolean;
    onFilterChanged: EventEmitter<OperationStatusOption[]>;
    isAllButtonSelected: boolean;
    private multiple;
    private small;
    changeFilter(option: {
        selected: boolean;
        option: OperationStatusOption;
    }): void;
    removeFilter(): void;
    /**
     * Allows the filter to be initalliy displayed with some preset filters.
     *
     * @param filters An `StatusOption` array defining filter options to be preset.
     * @param emit  (optional) If `true` component will emit `onFilterChanged` event.
     */
    preset(filters: OperationStatusOption[], emit?: boolean): void;
    reset(): void;
    activeFilters(): OperationStatusOption[];
    isFilterApplied(): boolean;
    private emitSelectedOptions;
    static ɵfac: i0.ɵɵFactoryDeclaration<StatusFilterComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<StatusFilterComponent, "c8y-status-filter", never, { "options": { "alias": "options"; "required": false; }; "_multiple": { "alias": "multiple"; "required": false; }; "_small": { "alias": "small"; "required": false; }; }, { "onFilterChanged": "onFilterChanged"; }, never, never, false, never>;
}
//# sourceMappingURL=status-filter.component.d.ts.map