import { IFilterParams } from 'ag-grid-community';
import * as breeze from 'breeze-client';
import BaseFilter from "./base-filter";
import { ValueSelected } from "../../model/common-model";
import { ServiceBase } from "../../data/service-base";
export declare abstract class BaseRelationFilter<T extends breeze.Entity> extends BaseFilter {
    filterValues: Array<ValueSelected>;
    filterValuesSelected: Array<ValueSelected>;
    selectedIds: Array<number>;
    protected service: ServiceBase<T>;
    protected fieldPath: Array<string>;
    protected relationIdFieldName: string;
    protected abstract filterType: string;
    protected displayEmptyFields: boolean;
    private selectedIdInternalChange;
    private selectedIdsObserver;
    private originalValues;
    private currentSetModelRetries;
    private valueSearch;
    ignoreChanges: boolean;
    init(params: IFilterParams): void;
    valueSearchChanged(newVal: string, oldVal: string): void;
    isFilterActive(): boolean;
    getModel(): any;
    resetFilter(): void;
    removeFilterValue(filterValue: ValueSelected): void;
    setupContentGui(): Promise<string>;
    loadValues(): Promise<void>;
    getValues(): Promise<void>;
    private setFilterValues;
    protected applyObservers(): void;
    protected detectAndSetRelationIdFieldName(params: IFilterParams & {
        relationIdFieldName: string;
    }): void;
    getFieldValue(value: T): string;
    filterValuesChanged(newVal: boolean, oldVal: boolean): void;
    protected extendFilterValuesChangesModel(): any;
    protected setSelectedValues(): void;
    setModel(model: any): void;
    private internalSetModel;
    protected setModelHook(model: any): void;
    getValue(): Array<ValueSelected>;
    getModelAsString?(): string;
    protected dispose(): void;
    protected buildService(params: IFilterParams<any> & {
        serviceName: string;
        service: ServiceBase<T>;
    }): void;
}
