/**
 * Lightweight performance metrics collector.
 * Serves as before/after benchmark for Phase 1 changes
 * and foundation for Phase 6's draw call budget system.
 *
 * Per D-07: Internal-only via callback, NOT a full budget system.
 * Per D-08: Foundation for Phase 6 BUDGET-01 through BUDGET-04.
 */
export interface PerformanceSnapshot {
    timestamp: number;
    frameTimeMs: number;
    drawCalls: number;
    triangles: number;
    geometries: number;
    textures: number;
    batchCount: number;
    fps: number;
}
export type MetricsCallback = (snapshot: PerformanceSnapshot) => void;
export declare class PerformanceMetrics {
    private _callback;
    private _lastFrameTime;
    private _frameCount;
    private _fpsAccumulator;
    private _lastFpsUpdate;
    private _currentFps;
    /**
     * Register a callback to receive per-frame performance snapshots.
     * Pass null to unsubscribe.
     */
    onMetrics(callback: MetricsCallback | null): void;
    /** Call at the start of each render frame */
    beginFrame(): void;
    /** Call at the end of each render frame with renderer.info */
    endFrame(info: {
        render: {
            calls: number;
            triangles: number;
        };
        memory: {
            geometries: number;
            textures: number;
        };
    }, batchCount: number): void;
    dispose(): void;
}
