import { ExtensionType } from '../../../../extensions/Extensions';
import type { System } from '../system/System';
import type { UniformGroup } from './UniformGroup';
export declare class UniformBufferSystem implements System {
    /** @ignore */
    static extension: {
        readonly type: readonly [ExtensionType.WebGLSystem, ExtensionType.WebGPUSystem, ExtensionType.CanvasSystem];
        readonly name: "uniformBuffer";
    };
    /** Cache of uniform buffer layouts and sync functions, so we don't have to re-create them */
    private _syncFunctionHash;
    ensureUniformGroup(uniformGroup: UniformGroup): void;
    private _initUniformGroup;
    syncUniformGroup(uniformGroup: UniformGroup, data?: Float32Array, offset?: number): boolean;
    updateUniformGroup(uniformGroup: UniformGroup): boolean;
    destroy(): void;
}
