import React from "react";
import { BaseODataFilter } from "../../../../fd-toolbox/odata/filters/base-odata-filter";
import { PropertyMeta } from "../../core/property-meta";
import { VoidFunc, VoidFuncNoParam } from "../../../../fd-toolbox/functions/internal-getter-setter-functions";
import { type FilterListOrientation } from "../filter-list-positions";
import { FilterType } from "./filter-enums";
/**
 * Methods of {@link Filter} component available via ref
 */
export interface FilterComponent {
    /** Get current width of the filter container */
    getWidth: () => number | undefined;
}
/**
 * Props for the {@link Filter} component.
 */
export interface FilterProps {
    /** Current state of the filter*/
    state: BaseODataFilter;
    /** Event handler called when the filter state changes */
    onStateChange: VoidFunc<BaseODataFilter>;
    /** Metadata of the property to filter */
    propertyMeta: PropertyMeta;
    /** Whether the filter should be disabled */
    disabled?: boolean;
    /** Event handler called when any filter interaction occurs */
    onChange?: VoidFuncNoParam;
    /** Class name for the filter container */
    className?: string;
    /** Position of the filter in the filter list */
    orientation?: FilterListOrientation;
    /** Visual type of the filter */
    type?: FilterType;
    /** Counter that triggers reset of input visibility */
    resetCounter?: number;
    /** Name of the parent component context, used for generating element Ids */
    parentContextName?: string;
    /** Ref for accessing filter component methods */
    ref?: React.Ref<FilterComponent>;
}
/**
 * Component for filtering data.
 *
 * @param props - {@link FilterProps}
 */
export declare function Filter({ propertyMeta, onChange, className, state, onStateChange, type, resetCounter, ref, parentContextName, disabled: disabledProp, }: FilterProps): React.JSX.Element;
