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