import { ServiceBase } from './../../data/service-base';
import { FilterMode, ValueSelected } from './../../model/common-model';
import * as breeze from 'breeze-client';
import BaseFloatingFilter from './base-floating-filter';
import { BindingEngine } from 'aurelia-binding';
import { FilterChangedEvent, IFloatingFilterParams } from 'ag-grid-community';
export declare abstract class BaseRelationFloatingFilter<T extends breeze.Entity> extends BaseFloatingFilter {
    protected abstract get filterType(): string;
    abstract setupContentGuiSideFilter(): string;
    abstract toggleFilterMode(filterMode: FilterMode): any;
    abstract setInstanceModel(): any;
    protected filterValues: Array<ValueSelected>;
    protected selectedIds: Array<number>;
    protected service: ServiceBase<T>;
    protected fieldPath: Array<string>;
    protected bindingEngine: BindingEngine;
    protected selectedIdInternalChange: boolean;
    protected displayEmptyFields: boolean;
    private valueSearch;
    init(params: IFloatingFilterParams & {
        service: ServiceBase<T>;
    }): Promise<void>;
    valueSearchChanged(newVal: string, oldVal: string): void;
    getValues(): Promise<void>;
    getFieldValue(value: T): string;
    onOpenDropDown(): Promise<void>;
    filterValuesChanged(newVal: boolean, oldVal: boolean): void;
    resetFilter(): void;
    onParentModelChanged(parentModel: any, filterChangedEvent?: FilterChangedEvent): void;
    getModelAsString(): string;
}
