import type { KeywordMatchOptions, ResolvedKeywordMatchOptions } from '../../types/keyword-matcher.js';
/**
 * Apply defaults to a partial options object. Defaults match the
 * "semantic-safe" profile documented on `KeywordMatchOptions`.
 */
export declare function resolveOptions(options?: KeywordMatchOptions): ResolvedKeywordMatchOptions;
/**
 * Returns true if `keyword` is found in `text` under the active options.
 *
 * When `requireBoundary` is true (default), matching uses `\b` word
 * boundaries so `"auth"` does NOT match inside `"authoritative"`.
 * When false, a plain substring match is performed (case-controlled
 * by `caseSensitive`).
 */
export declare function matchKeyword(text: string, keyword: string, options?: KeywordMatchOptions): boolean;
/**
 * Scan `text` for every keyword in `keywords`. Returns the unique list of
 * keywords that matched, in the order they appear in the input array.
 * Empty input or no matches yields an empty array.
 */
export declare function matchAnyKeyword(text: string, keywords: readonly string[], options?: KeywordMatchOptions): readonly string[];
/**
 * Density score in [0, 1]: the fraction of provided keywords that appear
 * in `text`. Returns 0 when `keywords` is empty so callers can treat
 * "nothing to score" as "no signal" without a special case.
 */
export declare function scoreMatches(text: string, keywords: readonly string[], options?: KeywordMatchOptions): number;
//# sourceMappingURL=matcher.d.ts.map