import { AfterViewInit, OnDestroy, ChangeDetectorRef } from '@angular/core';
import { SdGridMaterialFilterOption, SdGridMaterialExternalFilter, SdGridMaterialFilterRegister } from '../../services/grid-filter/grid-filter.model';
import { SdGridMaterialColumn } from '../../models/grid-column.model';
import { SdPopupFilter } from '../popup-filter/popup-filter.component';
import { BehaviorSubject } from 'rxjs';
import { DeviceDetectorService } from 'ngx-device-detector';
import { SdMaterialFilterDefDirective } from '../../directives/sd-material-filter-def.directive';
export declare class SdGridFilter implements AfterViewInit, OnDestroy {
    #private;
    private ref;
    private deviceService;
    popupFilter: SdPopupFilter;
    filter: Readonly<SdGridMaterialFilterOption>;
    set _filter(filter: SdGridMaterialFilterOption);
    columns: SdGridMaterialColumn[];
    externalFilters: SdGridMaterialExternalFilter[];
    set _externalFilters(value: SdGridMaterialExternalFilter[]);
    filterDefs: SdMaterialFilterDefDirective[];
    filterRegister: SdGridMaterialFilterRegister;
    set _filterRegister(value: SdGridMaterialFilterRegister);
    filterRegisterChange: BehaviorSubject<SdGridMaterialFilterRegister>;
    filterDef: any;
    inlineFilterDef: Record<string, boolean>;
    columnFilter: any;
    inlineColumn: Record<string, boolean>;
    externalFilter: any;
    inlineExternal: Record<string, boolean>;
    isMobileOrTablet: boolean;
    constructor(ref: ChangeDetectorRef, deviceService: DeviceDetectorService);
    ngAfterViewInit(): void;
    ngOnDestroy(): void;
    onFilter: (item?: SdGridMaterialColumn | SdGridMaterialExternalFilter) => void;
    updateFilter: () => void;
    open: () => void;
}
