import * as THREE from "three";
import type { ModelLoadContext, ModelLoadFromBufferContext } from "./BaseModelLoader";
import { BaseModelLoader } from "./BaseModelLoader";
export declare class PlyLoader extends BaseModelLoader {
    private readonly manager?;
    readonly id = "loader.builtin.ply";
    readonly priority = 0;
    readonly formats: readonly ["ply"];
    constructor(manager?: THREE.LoadingManager | undefined);
    load(ctx: ModelLoadContext): Promise<THREE.Object3D>;
    loadFromBuffer(ctx: ModelLoadFromBufferContext): Promise<THREE.Object3D>;
    private static toArrayBuffer;
    private applyRequestHeader;
    /**
     * PLYLoader always does `channel / 255` for vertex rgb. Float colors already in 0..1 become ~0.004 (near black).
     * Also ensure normals exist so MeshStandardMaterial is lit correctly.
     */
    private static preparePlyGeometry;
    private static ensureVertexNormals;
    private static fixVertexColorEncoding;
    private finalizeLoadedObject;
}
