import { PromptMixin } from "../prompts/Mixin.js";
import type { QueryBundle, ToolMetadataOnlyDescription } from "../types.js";
export interface SingleSelection {
    index: number;
    reason: string;
}
export type SelectorResult = {
    selections: SingleSelection[];
};
type QueryType = string | QueryBundle;
type MetadataType = string | ToolMetadataOnlyDescription;
export declare abstract class BaseSelector extends PromptMixin {
    select(choices: MetadataType[], query: QueryType): Promise<SelectorResult>;
    abstract _select(choices: ToolMetadataOnlyDescription[], query: QueryBundle): Promise<SelectorResult>;
}
export {};
