import { MetaColumnFilterBuilderService } from './meta-column-filter-builder/meta-column-filter-builder.service';
import { EventEmitter } from '@angular/core';
import { AxFilter } from '../enlighten-lib/filters/ax-filter';
import { FilterCategory } from '../enlighten-lib/filters/filter-category';
import { MetaColumnTypes } from './metaColumnTypes';
import * as i0 from "@angular/core";
export declare class FiltersService {
    private _metaColumnBuilderService;
    /**
     * Component variables.
     */
    filterSelectionChange: EventEmitter<AxFilter>;
    filterCategorySelectionChange: EventEmitter<FilterCategory>;
    private _activeFilterList;
    private _activeFilterCategoryList;
    /**
     * Constructor
     */
    constructor(_metaColumnBuilderService: MetaColumnFilterBuilderService);
    /**
     * Get Active filter list.
     *
     * @returns Array of AXFilters
     */
    getActiveFilterList(): Array<AxFilter>;
    /**
     * Get Active filter category list.
     *
     * @returns Array of AXFilters
     */
    getActiveFilterCategoryList(): Array<FilterCategory>;
    /**
     * set Active  Filters list.
     *
     * @param filters;
     */
    setActiveFilterList(filters: Array<AxFilter>): void;
    setActiveFilterCategoryList(filters: Array<FilterCategory>): void;
    /**
     * Check Filter value is empty or NOT
     *
     * @param filters
     * @returns
     */
    getValidFilter(filters: Array<AxFilter>, filterType?: number): Array<AxFilter>;
    /**
     * Check filter category is empty or Not
     *
     * @param filterCategory
     * @returns
     */
    getValidFilterCategory(filterCategory: Array<FilterCategory>, filterType?: number): Array<FilterCategory>;
    /**
     * checks value has a property value and checks the value is valid or not.
     *
     * @param filter
     * @returns
     */
    getValidValue(filter: any): boolean;
    /**
     * return value is value or not as per the value type.
     * i.e string,number,object
     *
     * @param value
     * @returns
     */
    returnValidValue(value: any): boolean;
    /**
     * Generate Filter for meta column.
     *
     * @param metaColumnType
     */
    generateMetaColumnFilter(metaColumnType: MetaColumnTypes, appVersionId: number): AxFilter;
    generateAssetFormsFilter(form: any, appVersionId: number): AxFilter;
    /**
     * returns true if there is a visible filter present
     * @param filters
     * @param filterCategory
     * @returns
     */
    setVisibilityOfFilterComponent(filters?: Array<AxFilter>, filterCategory?: Array<FilterCategory>): boolean;
    static ɵfac: i0.ɵɵFactoryDeclaration<FiltersService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<FiltersService>;
}
