import { AfterViewInit, OnDestroy, ChangeDetectorRef } from '@angular/core';
import { SdTableOptionFilter, SdTableExternalFilter, SdTableFilterRegister } from '../../services/table-filter/table-filter.model';
import { SdTableColumn } from '../../models/table-column.model';
import { SdPopupFilter } from '../popup-filter/popup-filter.component';
import { BehaviorSubject } from 'rxjs';
import { DeviceDetectorService } from 'ngx-device-detector';
import { SdTableFilterDefDirective } from '../../directives/sd-table-filter-def.directive';
export declare class SdTableFilter implements AfterViewInit, OnDestroy {
    #private;
    private ref;
    private deviceService;
    popupFilter: SdPopupFilter;
    filter: Readonly<SdTableOptionFilter>;
    set _filter(filter: SdTableOptionFilter);
    columns: SdTableColumn[];
    externalFilters: SdTableExternalFilter[];
    set _externalFilters(value: SdTableExternalFilter[]);
    filterDefs: SdTableFilterDefDirective[];
    filterRegister: SdTableFilterRegister;
    set _filterRegister(value: SdTableFilterRegister);
    filterRegisterChange: BehaviorSubject<SdTableFilterRegister>;
    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?: SdTableColumn | SdTableExternalFilter) => void;
    updateFilter: () => void;
    open: () => void;
}
