import * as i0 from '@angular/core';
import { EventEmitter } from '@angular/core';
import { ProductExperienceEventSource, ProductExperienceEvent } from '@c8y/ngx-components';
import { OperationStatusOption, OperationStatusOptionsMapShared } from '@c8y/ngx-components/operations/shared';

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, true, never>;
}

/**
 * This module provides a component for selecting status filter.
 */
declare class StatusFilterModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<StatusFilterModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<StatusFilterModule, never, [typeof StatusFilterComponent], [typeof StatusFilterComponent]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<StatusFilterModule>;
}

export { StatusFilterComponent, StatusFilterModule };
//# sourceMappingURL=index.d.ts.map
