import type { Unstable_DirectiveFormatter, Unstable_TriggerItem } from "@assistant-ui/core";
import type { AssistantClient } from "@assistant-ui/store";
import type { DetectedTrigger } from "./triggerDetectionResource.js";
/** External override for selection (used by Lexical's DirectivePlugin). */
export type SelectItemOverride = (item: Unstable_TriggerItem) => boolean;
export type TriggerBehavior = {
    readonly kind: "directive";
    readonly formatter: Unstable_DirectiveFormatter;
    readonly onInserted?: (item: Unstable_TriggerItem) => void;
} | {
    readonly kind: "action";
    readonly formatter: Unstable_DirectiveFormatter;
    readonly onExecute: (item: Unstable_TriggerItem) => void;
    readonly removeOnExecute?: boolean;
};
export type TriggerSelectionResourceOutput = {
    /** Select an item — runs override (if any) then applies behavior. */
    selectItem(item: Unstable_TriggerItem): void;
    /** Close the popover (moves cursor before trigger to deactivate detection). */
    close(): void;
    /** Register a Lexical-style selection override. Returns unregister fn. */
    registerSelectItemOverride(fn: SelectItemOverride): () => void;
};
/** Owns composer text mutation + behavior dispatch on item selection. */
export declare const TriggerSelectionResource: (props: {
    behavior: TriggerBehavior | undefined;
    trigger: DetectedTrigger | null;
    aui: AssistantClient;
    triggerChar: string;
    setCursorPosition: (pos: number) => void;
    /** Called after a successful selection so the parent can reset nav state. */
    onSelected: () => void;
}) => import("@assistant-ui/tap").ResourceElement<TriggerSelectionResourceOutput, {
    behavior: TriggerBehavior | undefined;
    trigger: DetectedTrigger | null;
    aui: AssistantClient;
    triggerChar: string;
    setCursorPosition: (pos: number) => void;
    /** Called after a successful selection so the parent can reset nav state. */
    onSelected: () => void;
}>;
//# sourceMappingURL=triggerSelectionResource.d.ts.map