import * as i0 from '@angular/core';
import { AfterViewInit, ChangeDetectorRef, ElementRef } from '@angular/core';
import * as i4 from '@progress/kendo-angular-grid';
import { FilterService, ColumnComponent } from '@progress/kendo-angular-grid';
import { IdType } from 'imng-nrsrx-client-utils';
import { ODataState } from 'imng-kendo-odata';
import { CompositeFilterDescriptor } from '@progress/kendo-data-query';
import { Subscriptions } from 'imng-ngrx-utils';
import * as i3 from '@angular/common';

declare class MultiSelectFilterComponent implements AfterViewInit {
    readonly filterService: FilterService;
    readonly changeDetectorRef: ChangeDetectorRef;
    readonly elementRef: ElementRef<any>;
    isPrimitive: boolean;
    odataState: ODataState | null;
    data: unknown[];
    textField: string | undefined;
    valueField: string | undefined;
    field: string;
    showTextFilter: boolean;
    currentData: unknown[];
    value: unknown[];
    textAccessor: (dataItem: any) => any;
    valueAccessor: (dataItem: any) => any;
    ngAfterViewInit(): void;
    isItemSelected(item: unknown): boolean;
    onSelectionChange(item: unknown, li: HTMLLIElement): void;
    onInput(e: {
        target: {
            value: IdType;
        };
    } | any): void;
    onFocus(li: HTMLLIElement): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<MultiSelectFilterComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<MultiSelectFilterComponent, "imng-multi-select-filter", never, { "isPrimitive": { "alias": "isPrimitive"; "required": false; }; "odataState": { "alias": "odataState"; "required": false; }; "data": { "alias": "data"; "required": false; }; "textField": { "alias": "textField"; "required": false; }; "valueField": { "alias": "valueField"; "required": false; }; "field": { "alias": "field"; "required": false; }; "showTextFilter": { "alias": "showTextFilter"; "required": false; }; }, {}, never, never, false, never>;
}

/**
 * How To Use:
 * <kendo-grid-column ...>
 *  <ng-template kendoGridFilterMenuTemplate let-filter>
      <imng-uuid-filter [filter]="filter"></imng-uuid-filter>
    </ng-template>
   <kendo-grid-column>
 */
declare class UuidFilterComponent {
    filterService: FilterService;
    column: ColumnComponent;
    /**
     * The current menu filter.
     * @type {CompositeFilterDescriptor}
     */
    filter: CompositeFilterDescriptor;
    allSubscriptions: Subscriptions;
    constructor();
    static ɵfac: i0.ɵɵFactoryDeclaration<UuidFilterComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<UuidFilterComponent, "imng-uuid-filter", never, { "filter": { "alias": "filter"; "required": false; }; }, {}, never, never, false, never>;
}

declare class ImngKendoGridFilteringModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<ImngKendoGridFilteringModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<ImngKendoGridFilteringModule, [typeof MultiSelectFilterComponent, typeof UuidFilterComponent], [typeof i3.CommonModule, typeof i4.GridModule], [typeof MultiSelectFilterComponent, typeof UuidFilterComponent]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<ImngKendoGridFilteringModule>;
}

export { ImngKendoGridFilteringModule, MultiSelectFilterComponent, UuidFilterComponent };
