import { MatchSorterOptions } from 'match-sorter';
import { TreeSelectFieldNode, TreeSelectFieldProps } from './types';
import { TreeSyncFilterFn } from './internal/treeSync';
export type { TreeSyncFilterFn };
/**
 * Props for the TreeSelectFieldSync component.
 * @property options - The static tree options to display.
 * @property filter - Custom filter function or MatchSorterOptions to control how nodes are filtered during search.
 *   By default, filters by label and searchText using match-sorter, preserving parent nodes of any match.
 * @extends TreeSelectFieldProps
 */
export type TreeSelectFieldSyncProps = Omit<TreeSelectFieldProps, "loadOptions" | "debounceMs" | "cache" | "initialLoad"> & {
    /**
     * The static tree options to display in the field.
     */
    options: TreeSelectFieldNode[];
    /**
     * Controls how options are filtered when the user types a search value.
     * Can be a function that returns nodes in the desired display order,
     * or a MatchSorterOptions object to customize the default match-sorter behavior.
     *
     * By default, nodes are filtered by `label` and `searchText` using match-sorter,
     * and parents of matching nodes are preserved in the tree structure.
     *
     * @example
     * <TreeSelectFieldSync
     *   options={options}
     *   filter={(nodes, searchValue) => {
     *     return nodes.filter((node) =>
     *       node.label.toLowerCase().includes(searchValue.toLowerCase())
     *     );
     *   }}
     * />
     *
     * @example
     * <TreeSelectFieldSync
     *   options={options}
     *   filter={{ keys: ["label"] }}
     * />
     */
    filter?: TreeSyncFilterFn | MatchSorterOptions<TreeSelectFieldNode>;
};
/**
 * TreeSelectFieldSync is a simplified wrapper around TreeSelectField for static (non-async) tree data.
 *
 * Features:
 * - Accepts static `options` instead of `loadOptions`.
 * - Performs client-side filtering with tree-structure awareness (parents of matches are preserved).
 * - Accepts a custom filter function or MatchSorterOptions to customize filtering behavior.
 * - Invalidates the field when the options reference changes.
 * - Supports all other props of TreeSelectField.
 *
 * @example
 * <TreeSelectFieldSync
 *   label="Select location"
 *   options={locationTree}
 *   value={selected}
 *   onSelectedOptionsChange={setSelected}
 * />
 */
export declare const TreeSelectFieldSync: {
    (props: TreeSelectFieldSyncProps): import("react/jsx-runtime").JSX.Element;
    displayName: string;
};
