import { UniversalRedactionConfig, UniversalRedactionResult } from './base/index.js'; declare class UniversalProvider { private redactor; private config; constructor(config?: UniversalRedactionConfig); redact(input: unknown): UniversalRedactionResult; redactBatch(inputs: unknown[]): Promise; updateConfig(newConfig: Partial): void; getConfig(): UniversalRedactionConfig; private extractContent; private redactMetadata; private transformMetadata; private normalizeConfig; } declare abstract class BaseAdapter { protected provider: UniversalProvider; abstract readonly providerName: string; abstract readonly version: string; constructor(config?: UniversalRedactionConfig); abstract transform(input: TInput): Promise | TOutput; updateConfig(newConfig: Partial): void; getConfig(): UniversalRedactionConfig; } interface Document { pageContent: string; metadata: Record; id?: string; } declare class LangChainAdapter extends BaseAdapter { readonly providerName = "langchain"; readonly version = "3.0.0"; transform(input: Document[] | string): Promise; createDocumentTransformer(): (documents: Document[]) => Promise; createRunnable(): Promise; createRunnableWithMetadata(): Promise; createDocumentTransform(): Promise; } declare function createLangChainAdapter(config?: UniversalRedactionConfig): LangChainAdapter; interface BaseNode { getText(): string; clone(options?: { text?: string; metadata?: Record; }): BaseNode; getMetadata(): Record; getNodeId(): string; setContent(content: string): void; } interface NodeTransformation { transform(nodes: BaseNode[]): Promise; } declare class LlamaIndexAdapter extends BaseAdapter { readonly providerName = "llamaindex"; readonly version = "5.0.0"; transform(input: BaseNode[] | string): Promise; createNodeTransformer(): { transform: (nodes: BaseNode[]) => Promise; }; createTransformComponent(): { transformNodes: (nodes: BaseNode[]) => Promise; }; createTransformation(): Promise; createPreprocessor(): Promise; } declare function createLlamaIndexAdapter(config?: UniversalRedactionConfig): LlamaIndexAdapter; interface StreamTextOptions { model: unknown; prompt: string; messages?: Array<{ role: string; content: string; }>; system?: string; maxTokens?: number; temperature?: number; [key: string]: unknown; } interface StreamObjectOptions { model: unknown; prompt: string; schema: unknown; system?: string; [key: string]: unknown; } interface GenerateTextOptions { model: unknown; prompt?: string; messages?: Array<{ role: string; content: string; }>; system?: string; tools?: Record; [key: string]: unknown; } interface Tool { description?: string; parameters: unknown; execute: (params: unknown) => Promise | unknown; } declare class VercelAIAdapter extends BaseAdapter { readonly providerName = "vercel-ai"; readonly version = "3.0.0"; transform(input: unknown): Promise; createStreamingWrapper(): { streamText: (options: StreamTextOptions) => Promise; streamObject: (options: StreamObjectOptions) => Promise; generateText: (options: GenerateTextOptions) => Promise; }; createToolWrapper(tools: Record): Record; createMessageCleaner(): { cleanMessage: (message: { role: string; content: string; }) => { role: string; content: string; }; cleanMessages: (messages: Array<{ role: string; content: string; }>) => Array<{ role: string; content: string; }>; }; } declare function createVercelAIAdapter(config?: UniversalRedactionConfig): VercelAIAdapter; interface ChatMessage { role: "system" | "user" | "assistant" | "tool" | "function"; content: string | null; name?: string; tool_calls?: unknown[]; tool_call_id?: string; } interface ChatCompletionOptions { model: string; messages: ChatMessage[]; functions?: unknown[]; tools?: unknown[]; temperature?: number; max_tokens?: number; [key: string]: unknown; } interface CompletionOptions$1 { model: string; prompt: string | string[]; max_tokens?: number; temperature?: number; [key: string]: unknown; } interface EmbeddingOptions { model: string; input: string | string[]; [key: string]: unknown; } interface AssistantMessage { role: "user" | "assistant"; content: string; file_ids?: string[]; metadata?: Record; } declare class OpenAIAdapter extends BaseAdapter { readonly providerName = "openai"; readonly version = "4.0.0"; transform(input: unknown): Promise; createClientWrapper(openai: unknown): { chat: { completions: { create: (options: ChatCompletionOptions) => Promise; }; }; completions: { create: (options: CompletionOptions$1) => Promise; }; embeddings: { create: (options: EmbeddingOptions) => Promise; }; }; createAssistantWrapper(openai: unknown): { beta: { threads: { messages: { create: (threadId: string, message: AssistantMessage) => Promise; }; runs: { create: (threadId: string, options: { assistant_id: string; instructions?: string; [key: string]: unknown; }) => Promise; }; }; }; }; createFunctionCallCleaner(): { cleanFunctionCall: (functionCall: { name: string; arguments: string; }) => { name: string; arguments: string; }; cleanToolCall: (toolCall: { function: { name: string; arguments: string; }; [key: string]: unknown; }) => { function: { name: string; arguments: string; }; [key: string]: unknown; }; }; createMessageProcessor(): { processMessages: (messages: ChatMessage[]) => ChatMessage[]; processSystemMessage: (content: string) => string; processUserMessage: (content: string) => string; }; } declare function createOpenAIAdapter(config?: UniversalRedactionConfig): OpenAIAdapter; interface ClaudeMessage { role: "user" | "assistant"; content: string | Array<{ type: string; text?: string; [key: string]: unknown; }>; } interface MessageOptions { model: string; messages: ClaudeMessage[]; system?: string; max_tokens: number; temperature?: number; tools?: unknown[]; tool_choice?: unknown; [key: string]: unknown; } interface CompletionOptions { model: string; prompt: string; max_tokens_to_sample: number; temperature?: number; [key: string]: unknown; } declare class AnthropicAdapter extends BaseAdapter { readonly providerName = "anthropic"; readonly version = "0.24.0"; transform(input: unknown): Promise; createClientWrapper(anthropic: unknown): { messages: { create: (options: MessageOptions) => Promise; stream: (options: MessageOptions) => Promise; }; completions: { create: (options: CompletionOptions) => Promise; }; }; private processContent; createToolCallProcessor(): { processToolCall: (toolCall: { name: string; input: Record; }) => { name: string; input: Record; }; }; createMessageProcessor(): { processMessage: (message: ClaudeMessage) => ClaudeMessage; processMessages: (messages: ClaudeMessage[]) => ClaudeMessage[]; processSystemPrompt: (system: string) => string; }; createConversationCleaner(): { cleanConversation: (messages: ClaudeMessage[], systemPrompt?: string) => { messages: ClaudeMessage[]; system?: string; }; }; createStreamingWrapper(): { createStreamingMessage: (options: MessageOptions) => Promise; }; } declare function createAnthropicAdapter(config?: UniversalRedactionConfig): AnthropicAdapter; export { UniversalProvider, UniversalRedactionConfig, UniversalRedactionResult, createAnthropicAdapter, createLangChainAdapter, createLlamaIndexAdapter, createOpenAIAdapter, createVercelAIAdapter };