export interface JsonSchema {
    type: string;
    properties?: Record<string, JsonSchema>;
    items?: JsonSchema;
    compressed_properties?: string[];
}
export interface CompressionMetadata {
    compressed_properties: Record<string, any>;
    compression_reason: string;
    similarity_score?: number;
}
export interface JsonCompressorStorage {
    storeString(key: string, value: string): void;
    generateKey(): string;
    estimateTokens(text: string): number;
}
export declare class JsonCompressor {
    private deduplicationMap;
    private objectSeenCount;
    private propertyNamesMap;
    private propertyNamesSeenCount;
    private compressionThreshold;
    private maxTokens;
    private toolName;
    private storage;
    constructor(storage: JsonCompressorStorage, compressionThreshold: number, maxTokens: number, toolName: string);
    clearDeduplication(): void;
    updateSettings(compressionThreshold: number, maxTokens: number): void;
    tryParseJson(content: string): any | null;
    generateSchema(obj: any, maxDepth?: number, currentDepth?: number): JsonSchema;
    private calculateSimilarity;
    private detectLowSignalProperties;
    compressObjectWithLowSignalDetection(obj: any, path?: string): any;
    private hashObject;
    compressJsonProperties(obj: any, path?: string): any;
}
