import { ComponentFactory, ComponentFactoryResolver, Injector } from '@angular/core';
import { NgxFilterConfig } from "./ngx-filter-config";
import { ConditionOperator, Filter, FilterTranslator, FilterTypes, PageFilter } from "./ngx-types";
export declare class NgxFiltersService {
    private resolver;
    translator: FilterTranslator;
    filtersComponent: {
        textBox?: ComponentFactory<any>;
        numberBox?: ComponentFactory<any>;
        date?: ComponentFactory<any>;
        selectBox?: ComponentFactory<any>;
        multiSelectBox?: ComponentFactory<any>;
        trueFalse?: ComponentFactory<any>;
        conditionSelector?: ComponentFactory<any>;
    };
    private _configs;
    constructor(injector: Injector, configs: NgxFilterConfig, resolver: ComponentFactoryResolver);
    getComponentFactory<T>(filterType: FilterTypes): ComponentFactory<T>;
    conditionSource: any[];
    useJalaliDate: boolean;
    checkHasFilter(filter: Filter): boolean;
    getConditionSource(): any[];
    getDefaultCondition(filterType: FilterTypes): ConditionOperator;
    private getConditionLabel;
    getCondition(condition: ConditionOperator, filter: Filter): {
        label: string;
        types: FilterTypes[];
        hasValue: boolean;
    };
    get noValueConditions(): ConditionOperator[];
    getTime(dt: any): string;
    setValueForDateHasNoValue(filter: Filter): void;
    clearFilter(filter: Filter): void;
    getDisplayLabel(filter: Filter, hasConditionName?: boolean): string;
    private toQueryString;
    getFiltersInQueryString(filterBy: Filter[]): string;
    getPageFilterInQueryString(queryObject: PageFilter): string;
    private _numberWithCommas;
    private _money;
}
