import { OnInit, AfterViewInit, EventEmitter, ChangeDetectorRef } from '@angular/core';
import { ModalControl } from '../../../modal-control/modal-control.component';
import { GridColumn, GridExternalFilter } from '../../grid-control.model';
import { SettingService } from '../../../../services/setting/setting.service';
import { TranslateService } from '../../../../services/translate/translate.service';
import { QuickFilter, FilterConfiguration } from './grid-popup-filter.model';
import { NotifyService } from '../../../../services/notify/notify.service';
import { DeviceDetectorService } from 'ngx-device-detector';
import { MatSelectChange } from '@angular/material/select';
import { GridPopupQuickFilterDetailComponent } from '../grid-popup-quick-filter-detail/grid-popup-quick-filter-detail.component';
import { MatSelect } from '@angular/material/select';
export declare class GridPopupFilterComponent implements OnInit, AfterViewInit {
    private ref;
    private settingService;
    private notifyService;
    private translateService;
    private keyPrefix;
    displayKey: string;
    isMobileOrTablet: boolean;
    modal: ModalControl;
    popupQuickFilterDetail: GridPopupQuickFilterDetailComponent;
    matSelect: MatSelect;
    filterType: 'inline' | 'popup';
    key: string;
    quickFilterVisibility: 'inline' | 'popup' | 'none';
    accept: EventEmitter<{
        filter: any;
        externalFilter: any;
    }>;
    clear: EventEmitter<void>;
    loadInlineFilter: EventEmitter<FilterConfiguration>;
    newQuickFilter: string;
    filter: any;
    externalFilter: any;
    columns: GridColumn[];
    externalFilters: GridExternalFilter[];
    quickFilters: QuickFilter[];
    selectedCode: string;
    maxQuickFilters: number;
    inlineExternal: {
        [key: string]: boolean;
    };
    inlineColumn: {
        [key: string]: boolean;
    };
    constructor(ref: ChangeDetectorRef, deviceService: DeviceDetectorService, settingService: SettingService, notifyService: NotifyService, translateService: TranslateService);
    ngOnInit(): void;
    ngAfterViewInit(): void;
    open: (fixedColums: GridColumn[], normalColumns: GridColumn[], filter: any, externalFilter: any, externalFilters?: GridExternalFilter[]) => void;
    init: (fixedColums: GridColumn[], normalColumns: GridColumn[], filter: any, externalFilter: any, externalFilters?: GridExternalFilter[]) => void;
    close: () => void;
    onAccept(): void;
    onClear(): void;
    private loadConfiguration;
    updateConfiguration(selectedQuickFilterCode?: string): Promise<void>;
    onSelectionChange: (change: MatSelectChange) => void;
    onCreateQuickFilter: (ev?: Event) => void;
    onDetailQuickFilter: (quickFilter?: QuickFilter) => Promise<void>;
    onEditQuickFilter: (ev: Event, quickFilter?: QuickFilter) => void;
    onDeleteQuickFilter: (ev: Event, quickFilter?: QuickFilter) => void;
    onAcceptQuickFilter: (args: {
        code: string;
        filter: any;
        externalFilter: any;
    }) => Promise<void>;
    onInlineChange: () => void;
    private initExternalFilter;
}
