/**
 * Copyright (c) 2018-2025 mol* contributors, licensed under MIT, See LICENSE file for more info.
 *
 * @author Alexander Rose <alexander.rose@weirdbyte.de>
 */
import { Renderable, RenderableState } from '../renderable.js';
import { WebGLContext } from '../webgl/context.js';
import { Transparency } from '../webgl/render-item.js';
import { AttributeSpec, ElementsSpec, DefineSpec, Values, ValueSpec, UniformSpec, GlobalDefines } from './schema.js';
export declare const MeshSchema: {
    readonly aGroup: AttributeSpec<"float32">;
    readonly aPosition: AttributeSpec<"float32">;
    readonly aNormal: AttributeSpec<"float32">;
    readonly elements: ElementsSpec<"uint32">;
    readonly dVaryingGroup: DefineSpec<"boolean">;
    readonly dFlatShaded: DefineSpec<"boolean">;
    readonly uDoubleSided: UniformSpec<"b">;
    readonly dFlipSided: DefineSpec<"boolean">;
    readonly dIgnoreLight: DefineSpec<"boolean">;
    readonly dCelShaded: DefineSpec<"boolean">;
    readonly dXrayShaded: DefineSpec<"string">;
    readonly dTransparentBackfaces: DefineSpec<"string">;
    readonly uBumpFrequency: UniformSpec<"f">;
    readonly uBumpAmplitude: UniformSpec<"f">;
    readonly uInteriorColor: UniformSpec<"v4">;
    readonly uInteriorSubstance: UniformSpec<"v4">;
    readonly meta: ValueSpec<"unknown">;
    readonly dClipObjectCount: DefineSpec<"number">;
    readonly dClipVariant: DefineSpec<"string">;
    readonly uClipObjectType: UniformSpec<"i[]">;
    readonly uClipObjectInvert: UniformSpec<"b[]">;
    readonly uClipObjectPosition: UniformSpec<"v3[]">;
    readonly uClipObjectRotation: UniformSpec<"v4[]">;
    readonly uClipObjectScale: UniformSpec<"v3[]">;
    readonly uClipObjectTransform: UniformSpec<"m4[]">;
    readonly aInstance: AttributeSpec<"float32">;
    readonly aTransform: AttributeSpec<"float32">;
    readonly uAlpha: UniformSpec<"f">;
    readonly uMetalness: UniformSpec<"f">;
    readonly uRoughness: UniformSpec<"f">;
    readonly uBumpiness: UniformSpec<"f">;
    readonly uEmissive: UniformSpec<"f">;
    readonly uDensity: UniformSpec<"f">;
    readonly uVertexCount: UniformSpec<"i">;
    readonly uInstanceCount: UniformSpec<"i">;
    readonly uGroupCount: UniformSpec<"i">;
    readonly uInvariantBoundingSphere: UniformSpec<"v4">;
    readonly uLod: UniformSpec<"v4">;
    readonly drawCount: ValueSpec<"number">;
    readonly instanceCount: ValueSpec<"number">;
    readonly alpha: ValueSpec<"number">;
    readonly matrix: ValueSpec<"m4">;
    readonly transform: ValueSpec<"float32">;
    readonly extraTransform: ValueSpec<"float32">;
    readonly hasReflection: ValueSpec<"boolean">;
    readonly instanceGranularity: ValueSpec<"boolean">;
    readonly boundingSphere: ValueSpec<"sphere">;
    readonly invariantBoundingSphere: ValueSpec<"sphere">;
    readonly instanceGrid: ValueSpec<"instanceGrid">;
    readonly uClippingTexDim: UniformSpec<"v2">;
    readonly tClipping: import("./schema.js").TextureSpec<"image-uint8">;
    readonly dClipping: DefineSpec<"boolean">;
    readonly dClippingType: DefineSpec<"string">;
    readonly uSubstanceTexDim: UniformSpec<"v2">;
    readonly tSubstance: import("./schema.js").TextureSpec<"image-uint8">;
    readonly dSubstance: DefineSpec<"boolean">;
    readonly uSubstanceGridDim: UniformSpec<"v3">;
    readonly uSubstanceGridTransform: UniformSpec<"v4">;
    readonly tSubstanceGrid: import("./schema.js").TextureSpec<"texture">;
    readonly dSubstanceType: DefineSpec<"string">;
    readonly uSubstanceStrength: UniformSpec<"f">;
    readonly uEmissiveTexDim: UniformSpec<"v2">;
    readonly tEmissive: import("./schema.js").TextureSpec<"image-uint8">;
    readonly dEmissive: DefineSpec<"boolean">;
    readonly emissiveAverage: ValueSpec<"number">;
    readonly uEmissiveGridDim: UniformSpec<"v3">;
    readonly uEmissiveGridTransform: UniformSpec<"v4">;
    readonly tEmissiveGrid: import("./schema.js").TextureSpec<"texture">;
    readonly dEmissiveType: DefineSpec<"string">;
    readonly uEmissiveStrength: UniformSpec<"f">;
    readonly uTransparencyTexDim: UniformSpec<"v2">;
    readonly tTransparency: import("./schema.js").TextureSpec<"image-uint8">;
    readonly dTransparency: DefineSpec<"boolean">;
    readonly transparencyAverage: ValueSpec<"number">;
    readonly transparencyMin: ValueSpec<"number">;
    readonly uTransparencyGridDim: UniformSpec<"v3">;
    readonly uTransparencyGridTransform: UniformSpec<"v4">;
    readonly tTransparencyGrid: import("./schema.js").TextureSpec<"texture">;
    readonly dTransparencyType: DefineSpec<"string">;
    readonly uTransparencyStrength: UniformSpec<"f">;
    readonly uOverpaintTexDim: UniformSpec<"v2">;
    readonly tOverpaint: import("./schema.js").TextureSpec<"image-uint8">;
    readonly dOverpaint: DefineSpec<"boolean">;
    readonly uOverpaintGridDim: UniformSpec<"v3">;
    readonly uOverpaintGridTransform: UniformSpec<"v4">;
    readonly tOverpaintGrid: import("./schema.js").TextureSpec<"texture">;
    readonly dOverpaintType: DefineSpec<"string">;
    readonly uOverpaintStrength: UniformSpec<"f">;
    readonly uMarker: UniformSpec<"f">;
    readonly uMarkerTexDim: UniformSpec<"v2">;
    readonly tMarker: import("./schema.js").TextureSpec<"image-uint8">;
    readonly markerAverage: ValueSpec<"number">;
    readonly markerStatus: ValueSpec<"number">;
    readonly dMarkerType: DefineSpec<"string">;
    readonly uColor: UniformSpec<"v3">;
    readonly uColorTexDim: UniformSpec<"v2">;
    readonly uColorGridDim: UniformSpec<"v3">;
    readonly uColorGridTransform: UniformSpec<"v4">;
    readonly uPaletteDomain: UniformSpec<"v2">;
    readonly uPaletteDefault: UniformSpec<"v3">;
    readonly tColor: import("./schema.js").TextureSpec<"image-uint8">;
    readonly tPalette: import("./schema.js").TextureSpec<"image-uint8">;
    readonly tColorGrid: import("./schema.js").TextureSpec<"texture">;
    readonly dColorType: DefineSpec<"string">;
    readonly dUsePalette: DefineSpec<"boolean">;
    readonly dGeometryType: DefineSpec<"string">;
};
export type MeshSchema = typeof MeshSchema;
export type MeshValues = Values<MeshSchema>;
export declare function MeshRenderable(ctx: WebGLContext, id: number, values: MeshValues, state: RenderableState, materialId: number, transparency: Transparency, globals: GlobalDefines): Renderable<MeshValues>;
