import { AfterViewInit, ElementRef, EventEmitter, Injector, OnDestroy, OnInit } from '@angular/core';
import { MatCheckboxChange } from '@angular/material/checkbox';
import { MatMenu } from '@angular/material/menu';
import { Subscription } from 'rxjs';
import type { OTableOptions } from '../../../../../interfaces/o-table-options.interface';
import type { OTableQuickfilter } from '../../../../../interfaces/o-table-quickfilter.interface';
import type { Expression } from '../../../../../types/expression.type';
import type { OInputsOptions } from '../../../../../types/o-inputs-options.type';
import type { OColumn } from '../../../column/o-column.class';
import { OTableBase } from '../../../o-table-base.class';
import * as i0 from "@angular/core";
export declare const DEFAULT_INPUTS_O_TABLE_QUICKFILTER: string[];
export declare const DEFAULT_OUTPUTS_O_TABLE_QUICKFILTER: string[];
export declare class OTableQuickfilterComponent implements OTableQuickfilter, OnInit, AfterViewInit, OnDestroy {
    protected injector: Injector;
    protected elRef: ElementRef;
    protected table: OTableBase;
    protected _placeholder: string;
    get placeholder(): string;
    set placeholder(value: string);
    filter: ElementRef;
    matMenu: MatMenu;
    value: string;
    onChange: EventEmitter<string>;
    formControl: any;
    protected oInputsOptions: OInputsOptions;
    protected quickFilterObservable: Subscription;
    constructor(injector: Injector, elRef: ElementRef, table: OTableBase);
    ngOnInit(): void;
    ngAfterViewInit(): void;
    ngOnDestroy(): void;
    get oTableOptions(): OTableOptions;
    get quickFilterColumns(): OColumn[];
    get filterExpression(): Expression;
    getUserFilter(): Expression;
    initializeEventFilter(): void;
    setValue(value: any, trigger?: boolean): void;
    onMenuClosed(): void;
    isChecked(column: OColumn): boolean;
    onCheckboxChange(column: OColumn, event: MatCheckboxChange): void;
    showCaseSensitiveCheckbox(): boolean;
    areAllColumnsChecked(): boolean;
    getCountColumnsChecked(): number;
    onSelectAllChange(event: MatCheckboxChange): void;
    protected isFilterableColumn(column: OColumn): boolean;
    protected getColumnsWithoutRendererExpressions(columns: OColumn[]): Expression[];
    protected getColumnsRendererExpressions(columns: OColumn[]): Expression[];
    static ɵfac: i0.ɵɵFactoryDeclaration<OTableQuickfilterComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<OTableQuickfilterComponent, "o-table-quickfilter", never, { "placeholder": { "alias": "placeholder"; "required": false; }; }, { "onChange": "onChange"; }, never, never, true, never>;
}
