import { TgdContext } from "../context";
import { TgdMaterial } from "../material";
import { TgdPainterMeshGltfMaterialDescription, TgdPainterNode } from "../painter";
import { TgdDataGlb } from "../parser";
import { TgdTextureCube } from "../texture";
import { TgdFormatGltfMesh, TgdFormatGltfMeshPrimitive, TgdFormatGltfNode } from "../types";
interface OverrideMaterialOptions {
    data: TgdDataGlb;
    mesh: TgdFormatGltfMesh;
    primitive: TgdFormatGltfMeshPrimitive;
}
type MaterialOverrider = (options: OverrideMaterialOptions) => (this: void, options: TgdPainterMeshGltfMaterialDescription) => TgdMaterial;
interface MakeMeshGlbPainterOptions {
    data: TgdDataGlb;
    context: TgdContext;
    node: number | string | TgdFormatGltfNode;
    overrideMaterial?: MaterialOverrider;
    /**
     * If defined, we skip all primitive with a material's name in the list.
     */
    excludeByMaterialName?: string[];
    /**
     * If defined, we skip all primitives with a material's name NOT in the list.
     */
    includeOnlyMaterialNames?: string[];
    skybox?: TgdTextureCube;
}
/**
 * Create a `TgdPainterNode` from a node hierarchy from a GLTF structure.
 * @param options
 * * `data`: a GLTF parser
 * * `context`: we will create painters, so we need a TgdContext
 * * `node`: the root node you want to paint.
 * @returns
 */
export declare function tgdMakeMeshGlbPainter(options: MakeMeshGlbPainterOptions): {
    painter: TgdPainterNode;
};
export {};
//# sourceMappingURL=mesh-glb.d.ts.map