import * as React from 'react'; import type { MentionsContextValue, MentionsHandle, MentionsProps } from './types.cjs'; /** Default `getResultCountLabel`: `"1 result available"` / `"3 results available"`. */ export declare function defaultGetResultCountLabel(count: number): string; export declare const MentionsProvider: React.FC, useMentionsContext: (consumerName: string) => MentionsContextValue; type MentionsRootProps = Omit & { ref?: React.Ref | undefined; }; /** * A multi-line text field where a trigger character such as `@` opens a floating * listbox, and choosing an entry replaces only the typed token rather than the * whole value. Real DOM focus stays on the textarea throughout; the highlighted * entry is virtual focus, and the popup is anchored to the caret. * * The component's value is the free text the user wrote — the query is a * substring inside it, derived from the text and the caret together, which is * why there is no `query` prop and `onQueryChange` is the hook an async * collection is loaded from. * * @example * ```tsx * function Composer() { * const [query, setQuery] = React.useState(null); * const people = PEOPLE.filter((p) => query === null || p.startsWith(query)); * * return ( * setQuery(token?.query ?? null)}> * * * * {people.map((person) => ( * {person} * ))} * No people * * * * ); * } * ``` */ export declare const Mentions: { (props: MentionsRootProps): React.ReactNode; displayName: string; }; export {};