import type { AssetLoadRequest, AssetLoader } from "./AssetLoader";
import type { LoadContext } from "./LoadContext";
import { Material } from "@aura3d/rendering";
export interface MaterialDescriptorAsset {
    readonly url: string;
    readonly name?: string;
    readonly model: "unlit" | "pbr";
    readonly properties: Readonly<Record<string, unknown>>;
    createMaterial(): Material;
}
export declare class MaterialLoader implements AssetLoader<MaterialDescriptorAsset> {
    readonly type = "material";
    canLoad(request: AssetLoadRequest): boolean;
    load(request: AssetLoadRequest, context: LoadContext): Promise<MaterialDescriptorAsset>;
}
export declare function createMaterialFromDescriptor(descriptor: Pick<MaterialDescriptorAsset, "name" | "model" | "properties">): Material;
//# sourceMappingURL=MaterialLoader.d.ts.map