import type { MaterialDataBlockDestroyOptions, UniformValue } from './types'; import type { Disposable } from '../utils'; export interface MaterialDataBlockProps { uniformValues?: Record; name?: string; keepUboData?: boolean; } /** * 引擎接入暂时不需要实现 */ export declare abstract class MaterialDataBlock implements Disposable { readonly name: string; protected destroyed: boolean; protected constructor(props: MaterialDataBlockProps); setUniformValues(uniformValue: Record): void; invalidAllFlags(): void; updateUniformSubData(name: string, start: number, count: number): void; abstract hasUniformValue(name: string): boolean; abstract getUniformValue(name: string): UniformValue | undefined; abstract getUniformValues(): Record; abstract setUniformValue(name: string, value: UniformValue): void; abstract removeUniformValue(name: string): void; abstract dispose(options?: MaterialDataBlockDestroyOptions): void; static create: (props: MaterialDataBlockProps) => MaterialDataBlock; } export declare function isUniformStruct(value: UniformValue): boolean; export declare function isUniformStructArray(value: UniformValue): boolean | 0;