/**
 * Performance Utilities
 *
 * Provides utilities for optimizing GML parsing performance,
 * including object pooling, caching, and batch processing.
 */
/**
 * String interning cache for commonly used strings
 * Reduces memory usage by reusing string instances
 */
declare class StringCache {
    private cache;
    private maxSize;
    constructor(maxSize?: number);
    intern(str: string): string;
    clear(): void;
    size(): number;
}
/**
 * Object pool for coordinate arrays
 * Reduces GC pressure by reusing arrays
 */
declare class CoordinateArrayPool {
    private pool;
    private maxPoolSize;
    constructor(maxPoolSize?: number);
    acquire(): number[][];
    release(array: number[][]): void;
    clear(): void;
    size(): number;
}
/**
 * Batch processor for processing multiple features efficiently
 */
export declare class BatchProcessor<T, R> {
    private batchSize;
    private batch;
    private processor;
    private results;
    constructor(batchSize: number, processor: (batch: T[]) => R[] | Promise<R[]>);
    add(item: T): void;
    flush(): Promise<void>;
    getResults(): Promise<R[]>;
}
/**
 * Performance monitor for tracking parsing metrics
 */
export declare class PerformanceMonitor {
    private startTime;
    private endTime;
    private featureCount;
    private bytesParsed;
    private metrics;
    start(): void;
    stop(): void;
    addFeature(bytes?: number): void;
    addMetric(name: string, value: number): void;
    getDuration(): number;
    getFeaturesPerSecond(): number;
    getBytesPerSecond(): number;
    getMetric(name: string): number | undefined;
    getReport(): PerformanceReport;
    reset(): void;
}
export interface PerformanceReport {
    duration: number;
    featureCount: number;
    bytesParsed: number;
    featuresPerSecond: number;
    bytesPerSecond: number;
    metrics: Record<string, number>;
}
/**
 * Global string cache instance
 */
export declare const stringCache: StringCache;
/**
 * Global coordinate array pool instance
 */
export declare const coordinatePool: CoordinateArrayPool;
/**
 * Optimize coordinate parsing for better performance
 */
export declare function parseCoordinatesOptimized(text: string, separator?: string, tupleSize?: number): number[][];
/**
 * Release coordinate array back to pool
 */
export declare function releaseCoordinates(coordinates: number[][]): void;
/**
 * Intern a string to reduce memory usage
 */
export declare function internString(str: string): string;
/**
 * Batch process an array of items
 */
export declare function processBatch<T, R>(items: T[], batchSize: number, processor: (batch: T[]) => R[] | Promise<R[]>): Promise<R[]>;
/**
 * Clear all caches and pools
 */
export declare function clearPerformanceCaches(): void;
/**
 * Get cache statistics
 */
export declare function getCacheStats(): {
    stringCacheSize: number;
    coordinatePoolSize: number;
};
export {};
