import { ReplaySubject } from 'rxjs/Rx';
import { services, filters } from 'typescript-angular-utilities';
import __object = services.object;
export interface IFilterGroupSettingsOld {
    label: string;
    type: string;
    options: IFilterOptionOld[];
    serialize?: {
        (): any;
    };
}
export interface IFilterOptionOld {
    active?: boolean;
    label: string;
    type?: string;
    value?: any;
    filter<TItemType>(item: TItemType): boolean;
    serialize?: {
        (): any;
    };
}
export interface IFilterGroupOld extends filters.IFilterWithCounts, filters.ISerializableFilter<any> {
    label: string;
    type: string;
    options: IFilterOptionOld[];
    activeOption: IFilterOptionOld;
    changeFromDefault$: ReplaySubject<any>;
    setActiveOption(index: number): void;
    setOptionCounts(counts: number[]): void;
    setActiveOptionByValue(value: number): void;
    setActiveOptionByLabel(label: string): void;
}
export declare class FilterGroupOld extends filters.SerializableFilter<any> implements IFilterGroupOld {
    label: string;
    type: string;
    options: IFilterOptionOld[];
    template: string;
    settings: IFilterGroupSettingsOld;
    private _defaultOption;
    private _activeOption;
    private _changeFromDefault$;
    object: __object.IObjectUtility;
    constructor(settings: IFilterGroupSettingsOld, object: __object.IObjectUtility);
    initOptions(): void;
    readonly changeFromDefault$: ReplaySubject<any>;
    activeOption: IFilterOptionOld;
    private setDefaultOption();
    filter<TItemType>(item: TItemType): boolean;
    serialize(): any;
    setActiveOption(index: number): void;
    setActiveOptionByValue(value: number): void;
    setActiveOptionByLabel(label: string): void;
    setOptionCounts(counts: number[]): void;
    updateOptionCounts<TDataType>(filteredDataSet: TDataType[]): void;
}
