/**
 * 共享工具函数
 * 提供JSON↔SSE双向转换中常用的工具函数
 */
import { Readable } from 'stream';
/**
 * 字符串工具
 */
export declare class StringUtils {
    /**
     * 安全地将值转换为字符串
     */
    static safeStringify(value: unknown): string;
    /**
     * 安全地解析JSON字符串
     */
    static safeParse<T = any>(text: string): T | null;
    /**
     * 检查字符串是否为空或只包含空白字符
     */
    static isEmpty(str: string): boolean;
    /**
     * 检查字符串是否为有效的JSON
     */
    static isValidJson(str: string): boolean;
    /**
     * 截断字符串到指定长度
     */
    static truncate(str: string, maxLength: number, suffix?: string): string;
    /**
     * 生成随机字符串
     */
    static random(length?: number): string;
    /**
     * 分割字符串为块
     */
    static chunkString(text: string, chunkSize: number, boundary: RegExp): string[];
}
/**
 * 对象工具
 */
export declare class ObjectUtils {
    /**
     * 深度冻结对象
     */
    static deepFreeze<T>(obj: T): T;
    /**
     * 深度克隆对象
     */
    static deepClone<T>(obj: T): T;
    /**
     * 安全地获取嵌套对象属性
     */
    static get(obj: any, path: string, defaultValue?: any): any;
    /**
     * 安全地设置嵌套对象属性
     */
    static set(obj: any, path: string, value: any): void;
    /**
     * 检查对象是否为空
     */
    static isEmpty(obj: any): boolean;
    /**
     * 合并对象
     */
    static merge<T extends Record<string, any>>(target: T, source: Partial<T>): T;
}
/**
 * 数组工具
 */
export declare class ArrayUtils {
    /**
     * 数组去重
     */
    static unique<T>(arr: T[]): T[];
    /**
     * 分组数组
     */
    static groupBy<T, K extends string | number>(arr: T[], keyFn: (item: T) => K): Record<K, T[]>;
    /**
     * 分块数组
     */
    static chunk<T>(arr: T[], size: number): T[][];
    /**
     * 扁平化数组
     */
    static flatten<T>(arr: (T | T[])[]): T[];
    /**
     * 找到数组中的差异
     */
    static diff<T>(arr1: T[], arr2: T[]): {
        added: T[];
        removed: T[];
        common: T[];
    };
}
/**
 * 时间工具
 */
export declare class TimeUtils {
    /**
     * 获取当前时间戳（毫秒）
     */
    static now(): number;
    /**
     * 获取当前时间戳（秒）
     */
    static nowSeconds(): number;
    /**
     * 格式化时间戳
     */
    static formatTimestamp(timestamp: number, format?: string): string;
    /**
     * 延迟指定时间
     */
    static delay(ms: number): Promise<void>;
    /**
     * 带超时的Promise
     */
    static timeout<T>(promise: Promise<T>, timeoutMs: number): Promise<T>;
}
/**
 * 验证工具
 */
export declare class ValidationUtils {
    /**
     * 检查值是否为对象
     */
    static isObject(value: unknown): value is Record<string, unknown>;
    /**
     * 检查值是否为有效的ID
     */
    static isValidId(value: string, pattern: RegExp): boolean;
    /**
     * 验证序列号
     */
    static isValidSequenceNumber(value: number, max?: number): boolean;
    /**
     * 验证时间戳
     */
    static isValidTimestamp(value: number): boolean;
    /**
     * 验证JSON结构
     */
    static validateJsonStructure(obj: any, schema: any): {
        valid: boolean;
        errors: string[];
    };
}
/**
 * 流工具
 */
export declare class StreamUtils {
    /**
     * 创建可读流
     */
    static createReadable<T>(data: T[]): Readable;
    /**
     * 将异步生成器转换为流
     */
    static asyncGeneratorToStream<T>(generator: AsyncGenerator<T>): Readable;
    /**
     * 将流转换为数组
     */
    static streamToArray<T>(stream: Readable): Promise<T[]>;
    /**
     * 管道流超时
     */
    static pipeWithTimeout<T>(source: Readable, destination: NodeJS.WritableStream, timeoutMs: number): Promise<void>;
}
/**
 * ID生成工具
 */
export declare class IdUtils {
    /**
     * 生成请求ID
     */
    static generateRequestId(): string;
    /**
     * 生成响应ID
     */
    static generateResponseId(): string;
    /**
     * 生成推理项目ID
     */
    static generateReasoningId(): string;
    /**
     * 生成函数调用ID
     */
    static generateFunctionCallId(): string;
    /**
     * 生成工具调用ID
     */
    static generateToolCallId(): string;
    /**
     * 生成消息ID
     */
    static generateMessageId(): string;
}
/**
 * 错误处理工具
 */
export declare class ErrorUtils {
    /**
     * 创建标准错误
     */
    static createError(message: string, code: string, context?: any): Error & {
        code: string;
        context?: any;
    };
    /**
     * 包装错误
     */
    static wrapError(error: unknown, context?: string): Error;
    /**
     * 判断是否为超时错误
     */
    static isTimeoutError(error: Error): boolean;
    /**
     * 判断是否为网络错误
     */
    static isNetworkError(error: Error): boolean;
}
/**
 * 正则表达式模式
 */
export declare const REGEX_PATTERNS: {
    readonly WORD_BOUNDARY: RegExp;
};
/**
 * 性能监控工具
 */
export declare class PerformanceUtils {
    /**
     * 创建性能计时器
     */
    static createTimer(): () => number;
    /**
     * 测量函数执行时间
     */
    static measureTime<T>(fn: () => T | Promise<T>): Promise<{
        result: T;
        duration: number;
    }>;
    /**
     * 创建内存使用快照
     */
    static createMemorySnapshot(): {
        rss: number;
        heapUsed: number;
        heapTotal: number;
        external: number;
    };
}
