import type { InputOption, InputResponse } from "#shared/input.js";
/** The request fields plain text is resolved against. */
export interface TextResolvableRequest {
    readonly allowFreeform?: boolean;
    readonly options?: readonly InputOption[];
    readonly requestId: string;
}
/**
 * Maps freeform text to an {@link InputResponse} for a single request.
 *
 * Resolution order:
 * 1. Exact option ID (case-insensitive)
 * 2. Exact option label (case-insensitive)
 * 3. 1-based numeric index into the options array
 * 4. Freeform text when {@link InputRequest.allowFreeform} is `true` or the
 *    request has no options
 */
export declare function resolveTextToResponse(text: string, request: TextResolvableRequest): InputResponse | undefined;
/**
 * Resolves text against all pending requests, returning one
 * {@link InputResponse} for each request that could be matched.
 */
export declare function resolveTextToResponses(text: string, requests: readonly TextResolvableRequest[]): readonly InputResponse[];
