import type { ObjectSet, ObjectTypeDefinition, WhereClause } from "@osdk/api";
import React from "react";
import type { MultiSelectInputLayout } from "./base/inputs/MultiSelectInput.js";
import type { FilterDefinitionUnion } from "./FilterListApi.js";
import type { FilterState } from "./FilterListItemApi.js";
import type { LinkedFilter } from "./types/LinkedFilterTypes.js";
export interface FilterInputProps<Q extends ObjectTypeDefinition> {
	objectType: Q;
	objectSet?: ObjectSet<Q>;
	definition: FilterDefinitionUnion<Q>;
	filterState: FilterState | undefined;
	onFilterStateChanged: (state: FilterState) => void;
	/** Per-filter excluding-self where clause (direct filters only). */
	whereClause: WhereClause<Q>;
	/** Per-filter excluding-self linked-filter records. */
	linkedFilters?: ReadonlyArray<LinkedFilter<Q>>;
	showFilteredOutValues?: boolean;
	searchQuery?: string;
	excludeRowOpen?: boolean;
	/**
	* Layout for `MULTI_SELECT` filter components. Pass `"inline"` when this
	* input renders inside a popover (or any container where chips would feel
	* redundant) so the value list is always visible. Defaults to `"dropdown"`,
	* which renders chips + a portaled Combobox popup. Ignored by other
	* filter components.
	*/
	layout?: MultiSelectInputLayout;
}
declare function FilterInputInner<Q extends ObjectTypeDefinition>({ objectType, objectSet, definition, filterState, onFilterStateChanged, whereClause, linkedFilters, showFilteredOutValues, searchQuery, excludeRowOpen, layout }: FilterInputProps<Q>): React.ReactElement;
export declare const FilterInput: typeof FilterInputInner;
export {};
