import type { BindingsDescriptor, BufferBinding, InputLayoutBufferDescriptor, InputLayoutDescriptor, RenderPipelineDescriptor, SamplerBinding, SamplerDescriptor, StencilFaceState, TextureBinding, VertexAttributeDescriptor } from '../interfaces'; type EqualFunc = (a: K, b: K) => boolean; export declare function arrayEqual(a: T[], b: T[], e: EqualFunc): boolean; type CopyFunc = (a: T) => T; export declare function arrayCopy(a: T[], copyFunc: CopyFunc): T[]; export declare function bindingsDescriptorEquals(a: BindingsDescriptor, b: BindingsDescriptor): boolean; export declare function stencilFaceStateEquals(a: Readonly>, b: Readonly>): boolean; export declare function renderPipelineDescriptorEquals(a: Readonly, b: Readonly): boolean; export declare function vertexAttributeDescriptorEquals(a: Readonly, b: Readonly): boolean; export declare function inputLayoutBufferDescriptorEquals(a: Readonly, b: Readonly): boolean; export declare function inputLayoutDescriptorEquals(a: Readonly, b: Readonly): boolean; export declare function samplerDescriptorEquals(a: Readonly, b: Readonly): boolean; export declare function samplerBindingCopy(a: Readonly): SamplerBinding; export declare function bufferBindingCopy(a: Readonly): BufferBinding; export declare function textureBindingCopy(a: Readonly): TextureBinding; export declare function bindingsDescriptorCopy(a: Readonly): BindingsDescriptor; export declare function renderPipelineDescriptorCopy(a: Readonly): RenderPipelineDescriptor; export declare function vertexAttributeDescriptorCopy(a: Readonly): VertexAttributeDescriptor; export declare function inputLayoutBufferDescriptorCopy(a: Readonly): InputLayoutBufferDescriptor | null; export declare function inputLayoutDescriptorCopy(a: Readonly): InputLayoutDescriptor; export {};