import { MessageContent } from '../../llms/dist/index.cjs';
import { PromptMixin } from '../../prompts/dist/index.cjs';
import { QueryBundle, QueryType } from '../../query-engine/dist/index.cjs';
import { NodeWithScore } from '../../schema/dist/index.cjs';

type RetrieveParams = {
    query: MessageContent;
    preFilters?: unknown;
};
type RetrieveStartEvent = {
    id: string;
    query: QueryBundle;
};
type RetrieveEndEvent = {
    id: string;
    query: QueryBundle;
    nodes: NodeWithScore[];
};
declare abstract class BaseRetriever extends PromptMixin {
    objectMap: Map<string, unknown>;
    protected _updatePrompts(): void;
    protected _getPrompts(): {};
    protected _getPromptModules(): {};
    protected constructor();
    retrieve(params: QueryType): Promise<NodeWithScore[]>;
    abstract _retrieve(params: QueryBundle): Promise<NodeWithScore[]>;
    _handleRecursiveRetrieval(params: QueryBundle, nodes: NodeWithScore[]): Promise<NodeWithScore[]>;
    _retrieveFromObject(object: unknown, queryBundle: QueryBundle, score: number): NodeWithScore[];
}

export { BaseRetriever, type RetrieveEndEvent, type RetrieveParams, type RetrieveStartEvent };
