/**-----------------------------------------------------------------------------------------
* Copyright © 2025 Progress Software Corporation. All rights reserved.
* Licensed under commercial license. See LICENSE.md in the project root for more information
*-------------------------------------------------------------------------------------------*/
import { OnInit, EventEmitter, ElementRef, Renderer2 } from '@angular/core';
import { LocalizationService } from '@progress/kendo-angular-l10n';
import { FilterService } from './filter.service';
import { CompositeFilterDescriptor } from '@progress/kendo-data-query';
import { FilterExpression } from './model/filter-expression';
import { Direction } from './util';
import { ChangeDetectorRef } from '@angular/core';
import { OnDestroy } from '@angular/core';
import { FilterItem } from './util';
import { NavigationService } from './navigation.service';
import * as i0 from "@angular/core";
/**
* Represents the [Kendo UI Filter component for Angular]({% slug overview_filter %}).
* The Filter component enables users to define and apply complex filter criteria.
*
* @example
* ```ts
* @Component({
* selector: 'my-app',
* template: `
*
* `
* })
* export class AppComponent {
* public filters: FilterExpression[] = [
* {
* name: 'country',
* label: 'Country',
* filter: 'string',
* operators: ['eq', 'neq'],
* },
* {
* name: 'budget',
* filter: 'number'
* }
* ];
*
* onValueChange(e: CompositeFilterDescriptor) {
* console.log(e);
* }
* }
* ```
*
* @remarks
* Supported children components are: {@link CustomMessagesComponent}, {@link FilterFieldComponent}.
*/
export declare class FilterComponent implements OnInit, OnDestroy {
private filterService;
private localization;
private cdr;
private element;
private navigationService;
private renderer;
/**
* @hidden
*/
focusout(): void;
/**
* @hidden
*/
focusin(): void;
/**
* @hidden
*/
onKeydown(event: KeyboardEvent): void;
direction: Direction;
/**
* Specifies the available user-defined filters. At least one filter should be provided.
*/
set filters(_filters: FilterExpression[]);
get filters(): FilterExpression[];
/**
* Sets the initial `value` of the Filter component.
*/
set value(value: CompositeFilterDescriptor);
get value(): CompositeFilterDescriptor;
/**
* Fires every time the Filter component value is updated.
* That is each time a Filter Group or Filter Expression is added, removed, or updated.
*/
valueChange: EventEmitter;
private localizationSubscription;
private filterFieldsSubscription;
private _value;
private filterFields;
private _filterItems;
get filterItems(): FilterItem[];
get toolbarElement(): HTMLElement;
constructor(filterService: FilterService, localization: LocalizationService, cdr: ChangeDetectorRef, element: ElementRef, navigationService: NavigationService, renderer: Renderer2);
ngOnInit(): void;
ngAfterViewInit(): void;
ngOnDestroy(): void;
private filterFieldsChanged;
private _currentFilter;
/**
* @hidden
*/
get currentFilter(): CompositeFilterDescriptor;
/**
* @hidden
*/
set currentFilter(value: CompositeFilterDescriptor);
/**
* @hidden
*/
onValueChange(isRemoveOperation?: any): void;
private normalizeFilter;
private setValue;
private normalizeValue;
/**
* @hidden
*/
messageFor(key: string): string;
/**
* @hidden
*/
private filtersTypeChanged;
static ɵfac: i0.ɵɵFactoryDeclaration;
static ɵcmp: i0.ɵɵComponentDeclaration;
}