/**
 * Copyright (c) 2022 mol* contributors, licensed under MIT, See LICENSE file for more info.
 *
 * @author Alexander Rose <alexander.rose@weirdbyte.de>
 */
import { GLRenderingContext } from './compat';
import { WebGLExtensions } from './extensions';
export declare type TimerResult = {
    readonly label: string;
    readonly timeElapsed: number;
    readonly children: TimerResult[];
};
export declare type WebGLTimer = {
    /** Check with GPU for finished timers. */
    resolve: () => TimerResult[];
    mark: (label: string) => void;
    markEnd: (label: string) => void;
    clear: () => void;
    destroy: () => void;
};
export declare function createTimer(gl: GLRenderingContext, extensions: WebGLExtensions): WebGLTimer;
export declare function printTimerResults(results: TimerResult[]): void[];
