/** * @license *------------------------------------------------------------------------------------------- * Copyright © 2026 Progress Software Corporation. All rights reserved. * Licensed under commercial license. See LICENSE.md in the package root for more information *------------------------------------------------------------------------------------------- */ import { default as PropTypes } from 'prop-types'; import { CompositeFilterDescriptor } from '@progress/kendo-data-query'; import { BaseEvent } from '@progress/kendo-react-common'; import { FieldSettings } from './FieldSettings.js'; import * as React from 'react'; /** * @hidden * CSS selectors for keyboard navigation. * Uses only structural CSS classes - no data attributes or title attributes * to ensure stability across localizations and DOM changes. */ export declare const selectors: any; /** * The FilterChangeEvent object. */ export interface FilterChangeEvent extends BaseEvent { /** * The changed composite filter descriptor. */ filter: CompositeFilterDescriptor; } /** * The props of the Filter component. */ export interface FilterProps { /** * Adds custom CSS classes to the Filter's root element. */ className?: string; /** * Applies custom styles to the Filter's root element. */ style?: React.CSSProperties; /** * Defines the field settings for the Filter. Each field represents a filterable column. * * @example * fields: [ * { name: "ProductName", label: "Product Name", type: "string" }, * { name: "Price", label: "Price", type: "number" } * ] */ fields: Array; /** * Specifies the composite filter descriptor value. * This object defines the current state of the applied filters. * * @example * value: { * logic: "and", * filters: [ * { field: "ProductName", operator: "contains", value: "Chai" }, * { field: "Price", operator: "gte", value: 20 } * ] * } */ value: CompositeFilterDescriptor; /** * Provides an accessible label for the Filter's container component. * Similar to the [aria-label](https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-label) attribute. * * @remarks * This property is related to accessibility. */ ariaLabel?: string; /** * Provides an accessible label for the Filter's underlying Group component. * * @remarks * This property is related to accessibility. */ ariaLabelGroup?: string; /** * Provides an accessible label for the Filter's underlying Expression component. * * @remarks * This property is related to accessibility. */ ariaLabelExpression?: string; /** * The Filter onChange event. * * @param event - The event object containing the updated filter descriptor. */ onChange: (event: FilterChangeEvent) => void; /** * Specifies the initial composite filter descriptor used when a new group is created. * * @example * defaultGroupFilter: { * logic: "and", * filters: [] * } */ defaultGroupFilter?: CompositeFilterDescriptor; } /** * Represents the [KendoReact Filter component](https://www.telerik.com/kendo-react-ui/components/datatools/filter). */ export declare class Filter extends React.Component { /** * @hidden */ static propTypes: { className: PropTypes.Requireable; style: PropTypes.Requireable; fields: (props: FilterProps, propName: string) => Error | null; ariaLabelGroup: PropTypes.Requireable; ariaLabelExpression: PropTypes.Requireable; value: PropTypes.Validator; onChange: PropTypes.Validator<(...args: any[]) => any>; }; /** * @hidden */ wrapperRef: React.RefObject; private navigation?; private readonly showLicenseWatermark; private readonly licenseMessage?; constructor(props: FilterProps); /** * @hidden */ componentDidMount(): void; /** * @hidden */ render(): React.JSX.Element; private onFilterChange; private onGroupRemove; /** * @hidden * Shared vertical navigation logic for ArrowUp / ArrowDown keys. */ private navigateVertical; private onKeyDown; /** * Classifies the currently active element for navigation decisions. */ private classifyActive; }