//#region src/core/privacy.d.ts
declare const REDACTED_IMAGE_PLACEHOLDER = "[base64 image redacted]";
declare const REDACTED_CONTENT_PLACEHOLDER = "[content redacted]";
declare const MAX_CHUNK_SIZE = 1024;
declare const MAX_CHUNKS = 8;
declare function isBase64DataUrl(text: string): boolean;
declare function isValidUrl(text: string): boolean;
declare function isRawBase64(text: string): boolean;
declare function createContentHash(content: unknown): string;
declare function redactBase64Content(value: unknown): unknown;
declare function redactPiiPatterns(text: unknown): string;
/**
 * Return the `$llm_message` payload for the given text.
 *
 * Content is stored as `{ text: content }` at full length — the Node SDK
 * does not truncate string properties, and Nova already whitelists
 * `$llm_message` server-side.
 *
 * Previous versions split long content into `c0`..`c7` chunks. That format
 * is still readable via {@link getTextFromLlmMessage} for backward
 * compatibility, but is no longer produced.
 */
declare function chunkContent(text: string): Record<string, unknown>;
declare function getTextFromLlmMessage(llmMessage: Record<string, unknown>): string;
declare function sanitizeAnyContent(content: unknown, privacyMode?: boolean, redactPii?: boolean): Record<string, unknown>;
declare function sanitizeStructuredContent(content: unknown, redactPii: boolean): unknown;
/**
 * Normalize tool definitions from various provider formats into a canonical shape:
 * `[{ name, description, parameters }]`.
 */
declare function normalizeToolDefinitions(toolDefinitions: Array<Record<string, unknown>>): Array<Record<string, unknown>>;
interface PrivacyConfigOptions {
  privacyMode?: boolean;
  redactPii?: boolean;
  customRedactionPatterns?: Array<string | {
    pattern: string;
    replacement: string;
  }>;
  customRedactionFn?: (text: string) => string;
  contentMode?: string | null;
  validate?: boolean;
  debug?: boolean;
  captureStackTrace?: boolean;
}
declare class PrivacyConfig {
  readonly privacyMode: boolean;
  readonly redactPii: boolean;
  readonly validate: boolean;
  readonly debug: boolean;
  readonly captureStackTrace: boolean;
  readonly customPatterns: Array<string | {
    pattern: string;
    replacement: string;
  }>;
  private readonly _compiledCustomPatterns;
  private readonly _customRedactionFn;
  private readonly _contentMode;
  constructor(options?: PrivacyConfigOptions);
  get contentMode(): string | null;
  private _applyCustomPatterns;
  private _applyCustomFn;
  private _applyCustomPatternsToLlmMessage;
  sanitizeContent(content: unknown): Record<string, unknown>;
  sanitizeSystemPrompt(systemPrompt: string | null): Record<string, unknown>;
  sanitizeReasoningContent(reasoningContent: string | null, reasoningTokens?: number | null): Record<string, unknown>;
  sanitizeToolDefinitions(toolDefinitions: Array<Record<string, unknown>> | null | undefined): Record<string, unknown>;
}
//#endregion
export { MAX_CHUNKS, MAX_CHUNK_SIZE, PrivacyConfig, PrivacyConfigOptions, REDACTED_CONTENT_PLACEHOLDER, REDACTED_IMAGE_PLACEHOLDER, chunkContent, createContentHash, getTextFromLlmMessage, isBase64DataUrl, isRawBase64, isValidUrl, normalizeToolDefinitions, redactBase64Content, redactPiiPatterns, sanitizeAnyContent, sanitizeStructuredContent };
//# sourceMappingURL=privacy.d.ts.map