import { OnChanges, SimpleChanges, EventEmitter } from '@angular/core';
import { AlSimpleFilter, AlSimpleFilterValue } from '../types/filter.types';
import * as i0 from "@angular/core";
interface Chip {
    title: string;
    class?: string;
    icon?: boolean;
    filterValue?: AlSimpleFilterValue;
    toggle?: boolean;
}
export declare class AlFilter2Component implements OnChanges {
    filters?: AlSimpleFilter[];
    defaultVisibleChips: number;
    defaultVisibleValues: number;
    /**
     * The component offers three event outputs for convenience...
     *     `addedFilter`, which emits the filter value that changed when a new filter is added;
     *     `removedFilter`, which emits the filter value that changed when a filter is removed;
     *     `changed`, which emits the complete set of filters after any change.
     */
    addedFilter: EventEmitter<AlSimpleFilterValue>;
    removedFilter: EventEmitter<AlSimpleFilterValue>;
    changed: EventEmitter<AlSimpleFilterValue[]>;
    chips: Chip[];
    appliedFilterCount: number;
    showAllChips: boolean;
    constructor();
    /**
     * Public method allowing currently applied filters to be retrieved
     */
    getSelectedFilters(): AlSimpleFilterValue[];
    ngOnChanges(changes: SimpleChanges): void;
    /**
     * Capture value changes from underlying checkbox
     */
    onFilterValueChanged(property: AlSimpleFilter, value: AlSimpleFilterValue, checked: boolean): void;
    /**
     * Click on the header of a specific filter property
     */
    onClickFilterHeader(filter: AlSimpleFilter, event: MouseEvent): void;
    /**
     * Triggered when user clicks any filter chip
     */
    clickChip(chip: Chip): void;
    /**
     * Triggered when user clicks "clear all"
     */
    clearFilters(event?: MouseEvent): void;
    /**
     * Toggle filter value expansion
     */
    toggleFilterValueExpansion(filter: AlSimpleFilter, event?: MouseEvent): void;
    /**
     * Enumerate through filters and values and set reasonable defaults for optional fields used to control display
     */
    normalizeFilterData(): void;
    /**
     * Enumerate all filters/values to determine which are currently applied.  Use calculated filter set to determine whether
     * the applied filter chips should include a "show more" or "show less" variant.
     */
    recalculateChips(): void;
    static ɵfac: i0.ɵɵFactoryDef<AlFilter2Component, never>;
    static ɵcmp: i0.ɵɵComponentDefWithMeta<AlFilter2Component, "al-filter2", never, { "filters": "filters"; "defaultVisibleChips": "defaultVisibleChips"; "defaultVisibleValues": "defaultVisibleValues"; }, { "addedFilter": "addedFilter"; "removedFilter": "removedFilter"; "changed": "changed"; }, never, never>;
}
export {};
