import { type MessageData } from '../../types/messages.js'; import type { Model } from '../../models/model.js'; import type { ExtractionResult, Extractor, ExtractorContext } from './types.js'; /** Options for {@link ModelExtractor}. */ export interface ModelExtractorOptions { /** Model used to extract facts. Defaults to the agent's own model; set a cheaper one to cut cost. */ model?: Model; /** System prompt steering what counts as a fact. Defaults to a general fact-extraction prompt. */ systemPrompt?: string; } /** * An {@link Extractor} that calls a language model to distill messages into discrete facts. * * Use for self-managed stores that hold plain text and want automatic distillation. Backends that * extract server-side should omit the extractor entirely (the no-extractor passthrough hands them * raw messages instead). * * @example * ```typescript * extraction: { * trigger: [new InvocationTrigger()], * extractor: new ModelExtractor({ model: cheapModel, systemPrompt: 'Extract user preferences.' }), * } * ``` */ export declare class ModelExtractor implements Extractor { private readonly _model?; private readonly _systemPrompt; constructor(options?: ModelExtractorOptions); extract(messages: MessageData[], context?: ExtractorContext): Promise; } //# sourceMappingURL=model-extractor.d.ts.map