import type { GridColumnProps } from '@vaadin/react-components/GridColumn.js';
import { type ComponentType, type JSX, type ReactElement } from 'react';
import type FilterUnion from './types/com/vaadin/hilla/crud/filter/FilterUnion.js';
type ExtractComponentTypeProps<T extends ComponentType<any>> = T extends ComponentType<infer U> ? U : never;
export type HeaderRendererProps = ExtractComponentTypeProps<NonNullable<Required<GridColumnProps<unknown>>['headerRenderer']>>;
export type HeaderFilterRendererProps = HeaderRendererProps & {
    setFilter(filter: FilterUnion): void;
};
export type HeaderFilterProps = Readonly<{
    sortable?: boolean;
    filterable?: boolean;
    filterPlaceholder?: string;
    filterDebounceTime?: number;
    filterMinLength?: number;
    headerFilterRenderer?: ComponentType<HeaderFilterRendererProps>;
}>;
export declare function StringHeaderFilter(): ReactElement;
export declare function NumberHeaderFilter(): ReactElement;
export declare function EnumHeaderFilter(): ReactElement;
export declare function BooleanHeaderFilter(): ReactElement;
export declare function DateHeaderFilter(): ReactElement;
export declare function TimeHeaderFilter(): ReactElement;
export declare function NoHeaderFilter(): ReactElement;
export declare function HeaderFilterWrapper({ original }: HeaderRendererProps): JSX.Element | null;
export {};
