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

//#region src/config.d.ts

/**
 * Content privacy mode for LLM message tracking.
 *
 * - `FULL`: Capture complete message content (default).
 * - `METADATA_ONLY`: Strip content, keep token counts and metadata.
 * - `CUSTOMER_ENRICHED`: Let customer enrich events post-hoc.
 *
 * Both `ContentMode.FULL` (const accessor) and `'full'` (string literal)
 * are valid — they produce the same value.
 */
type ContentMode = 'full' | 'metadata_only' | 'customer_enriched';
declare const ContentMode: {
  readonly FULL: ContentMode;
  readonly METADATA_ONLY: ContentMode;
  readonly CUSTOMER_ENRICHED: ContentMode;
};
interface AIConfigOptions {
  contentMode?: ContentMode;
  redactPii?: boolean;
  customRedactionPatterns?: Array<string | {
    pattern: string;
    replacement: string;
  }>;
  customRedactionFn?: (text: string) => string;
  onEventCallback?: (event: unknown, statusCode: number, message: string | null) => void;
  debug?: boolean;
  dryRun?: boolean;
  validate?: boolean;
  propagateContext?: boolean;
  /**
   * When `true`, capture `error.stack` on error events and attach as
   * `[Agent] Stack Trace`. Default: `false`. Only enable when explicitly
   * opted in — stack traces may contain file paths and internal details.
   */
  captureStackTrace?: boolean;
}
/**
 * Configuration for the Amplitude AI SDK.
 *
 * Controls content capture mode, PII redaction, debug output,
 * and validation behavior.
 *
 * @example
 * ```typescript
 * const config = new AIConfig({
 *   contentMode: ContentMode.METADATA_ONLY,
 *   redactPii: true,
 *   debug: true,
 * });
 * ```
 */
declare class AIConfig {
  readonly contentMode: ContentMode;
  readonly redactPii: boolean;
  readonly customRedactionPatterns: Array<string | {
    pattern: string;
    replacement: string;
  }>;
  readonly customRedactionFn: ((text: string) => string) | null;
  readonly onEventCallback: ((event: unknown, statusCode: number, message: string | null) => void) | null;
  readonly debug: boolean;
  readonly dryRun: boolean;
  readonly validate: boolean;
  readonly propagateContext: boolean;
  readonly captureStackTrace: boolean;
  constructor(options?: AIConfigOptions);
  toPrivacyConfig(): PrivacyConfig;
}
//#endregion
export { AIConfig, AIConfigOptions, ContentMode };
//# sourceMappingURL=config.d.ts.map