import { NgxFiltersService } from "./ngx-filters.service";
import { EventEmitter, Injector, OnChanges, OnInit, SimpleChanges } from "@angular/core";
import { Filter, FilterTypes, NgxApplyFilterResult } from "./ngx-types";
export declare abstract class NgxFiltersParentBase implements OnInit, OnChanges {
    filtersService: NgxFiltersService;
    abstract filters: Filter[];
    abstract afterApply: any;
    filterCount: number;
    innerFilters: Filter[];
    abstract apply: EventEmitter<NgxApplyFilterResult>;
    abstract filterChange: EventEmitter<Filter>;
    abstract afterFilterChange: (filter: Filter) => Promise<any>;
    private _firstFilters;
    abstract filteredFilters: Filter[];
    abstract filteredFiltersChange: EventEmitter<Filter[]>;
    protected constructor(injector: Injector);
    ngOnChanges(changes: SimpleChanges): void;
    getClone(outerFilters: Filter[]): Filter[];
    get filterTypes(): typeof FilterTypes;
    applyFilter(filter: Filter): void;
    applyFilters(): void;
    private mapFilters;
    private mapFiltersForFilteredFilters;
    private _getAndSetFilteredFilters;
    populateInnerFilter(): void;
    private _setFilterCount;
    ngOnInit(): void;
    private _sort;
    onClearAll(): void;
}
