import { PrivacyConfig } from "../core/privacy.js";
import { AmplitudeAI } from "../client.js";

//#region src/integrations/langchain.d.ts

interface CallbackHandlerOptions {
  amplitudeAI: AmplitudeAI;
  userId?: string;
  sessionId?: string;
  agentId?: string;
  env?: string;
  privacyConfig?: PrivacyConfig | null;
}
declare class AmplitudeCallbackHandler {
  private _ai;
  private _userId;
  private _sessionId;
  private _agentId;
  private _env;
  private _privacyConfig;
  private _runStartTimes;
  private _runModelNames;
  private _toolInputs;
  private _toolNames;
  constructor(options: CallbackHandlerOptions);
  private _getContext;
  handleLLMStart(serialized: Record<string, unknown>, prompts: string[], runId: string): void;
  handleLLMEnd(output: Record<string, unknown>, runId: string): void;
  handleToolStart(serialized: Record<string, unknown>, input: string, runId: string): void;
  handleToolEnd(output: string, runId: string): void;
  handleToolError(error: unknown, runId: string): void;
  handleLLMError(error: unknown, runId: string): void;
}
declare function createAmplitudeCallback(options: CallbackHandlerOptions): AmplitudeCallbackHandler;
//#endregion
export { AmplitudeCallbackHandler, CallbackHandlerOptions, createAmplitudeCallback };
//# sourceMappingURL=langchain.d.ts.map