export interface PoolMetrics {
    allocations: number;
    reuses: number;
    peakPoolSize: number;
    hitRate: number;
}
export declare class ObjectPool<T extends object> {
    private pool;
    private index;
    private factory;
    private reset;
    private metrics;
    constructor(factory: () => T, reset?: (obj: T) => void, initialSize?: number);
    get(): T;
    releaseAll(): void;
    getMetrics(): PoolMetrics;
    clear(): void;
}
export declare class StyleBatcher {
    private pending;
    private rafId;
    private stylePool;
    add(element: HTMLElement, styles: Record<string, string>): void;
    private flush;
    cancel(): void;
    getPendingCount(): number;
    getPoolMetrics(): PoolMetrics;
}
export declare const styleBatcher: StyleBatcher;
export declare class EventQueue {
    private listeners;
    wait(eventName: string, target: EventTarget): Promise<Event>;
    private setupListener;
    private getKey;
    cleanup(target: EventTarget, eventName: string): void;
    cleanupAll(): void;
    getListenerCount(): number;
}
export declare const eventQueue: EventQueue;
//# sourceMappingURL=performance.d.ts.map