/** @internal */
export interface BaseOptions {
    /**
     * The current query string to find within the values
     */
    value: string;
    /**
     * The list of values to search within
     */
    values: readonly string[];
    /**
     * The start index for the search
     */
    startIndex: number;
}
/** @internal */
export interface MatchInRangeOptions extends BaseOptions {
    /**
     * The end index for the search
     */
    endIndex: number;
}
/**
 * Attempts to find the first match index for a list of values that starts with
 * the provided query string and is within the start and end indexes. If no
 * matches are found, -1 will be returned instead.
 *
 * Since this is normally coming from a keydown event, the query *must* be a
 * string of all capital letters to work as each value will be converted to
 * uppercase before checking.
 * @internal
 */
export declare function findMatchInRange(options: MatchInRangeOptions): number;
/** @internal */
export interface MatchIndexOptions extends BaseOptions {
    /**
     * Boolean if the current index can be included in the search
     *
     * @defaultValue `true`
     */
    isSelfMatchable?: boolean;
}
/**
 * A function that is used to find the next match index within a list of values
 * by comparing the start values ignoring case.
 *
 * If a match can not be found from the search string, `-1` will be returned.
 * The search value is self-matchable by default, but it can be omitted by
 * disabling the `isSelfMatchable` argument. This will make a self-match return
 * `-1`.
 *
 * @internal
 */
export declare function findMatchIndex(options: MatchIndexOptions): number;
