import { BufferGeometry, Float32BufferAttribute, ShaderMaterial } from 'three';

declare const char: "char";
declare const uchar: "uchar";
declare const short: "short";
declare const ushort: "ushort";
declare const long: "long";
declare const ulong: "ulong";
declare const ulonglong: "ulonglong";
declare const float: "float";
declare const double: "double";
declare const composite: "composite";
type LasTypeSize = {
    type: "char";
    size: 1;
} | {
    type: "uchar";
    size: 1;
} | {
    type: "short";
    size: 2;
} | {
    type: "ushort";
    size: 2;
} | {
    type: "long";
    size: 4;
} | {
    type: "ulong";
    size: 4;
} | {
    type: "longlong";
    size: 4;
} | {
    type: "ulonglong";
    size: 4;
} | {
    type: "float";
    size: 4;
} | {
    type: "double";
    size: 8;
} | {
    type: "string";
    size: 1;
} | {
    type: "composite";
    size: 1;
};
type LasDataType = LasTypeSize["type"];
type LasSize = LasTypeSize["size"];
declare const lasByteSizes: {
    char: 1;
    uchar: 1;
    short: 2;
    ushort: 2;
    long: 4;
    ulong: 4;
    longlong: 8;
    ulonglong: 8;
    float: 4;
    double: 8;
    string: 1;
    composite: 1;
};
declare const fileSignature: "fileSignature";
declare const fileSourceID: "fileSourceID";
declare const globalEncoding: "globalEncoding";
declare const projectID_GUIDData1: "projectID_GUIDData1";
declare const projectID_GUIDData2: "projectID_GUIDData2";
declare const projectID_GUIDData3: "projectID_GUIDData3";
declare const projectID_GUIDData4: "projectID_GUIDData4";
declare const versionMajor: "versionMajor";
declare const versionMinor: "versionMinor";
declare const systemIdentifier: "systemIdentifier";
declare const generatingSoftware: "generatingSoftware";
declare const fileCreationDayOfYear: "fileCreationDayOfYear";
declare const fileCreationYear: "fileCreationYear";
declare const headerSize: "headerSize";
declare const offsetToPointData: "offsetToPointData";
declare const numberOfVariableLengthRecords: "numberOfVariableLengthRecords";
declare const pointDataRecordFormat: "pointDataRecordFormat";
declare const pointDataRecordLength: "pointDataRecordLength";
declare const numberOfPointRecords: "numberOfPointRecords";
declare const numberOfPointByReturn: "numberOfPointByReturn";
declare const xScaleFactor: "xScaleFactor";
declare const yScaleFactor: "yScaleFactor";
declare const zScaleFactor: "zScaleFactor";
declare const xOffset: "xOffset";
declare const yOffset: "yOffset";
declare const zOffset: "zOffset";
declare const xMax: "xMax";
declare const yMax: "yMax";
declare const zMax: "zMax";
declare const xMin: "xMin";
declare const yMin: "yMin";
declare const zMin: "zMin";
declare const startOfWaveformDataPacketRecord: "startOfWaveformDataPacketRecord";
declare const legacyNumberOfPointRecords: "legacyNumberOfPointRecords";
declare const legacyNumberOfPointByReturn: "legacyNumberOfPointByReturn";
declare const startOfFirstExtVariableLengthRecord: "startOfFirstExtVariableLengthRecord";
declare const numberOfExtVariableLengthRecords: "numberOfExtVariableLengthRecords";
type HeaderFieldName = typeof fileSignature | typeof fileSourceID | typeof globalEncoding | typeof projectID_GUIDData1 | typeof projectID_GUIDData2 | typeof projectID_GUIDData3 | typeof projectID_GUIDData4 | typeof versionMajor | typeof versionMinor | typeof systemIdentifier | typeof generatingSoftware | typeof fileCreationDayOfYear | typeof fileCreationYear | typeof headerSize | typeof offsetToPointData | typeof numberOfVariableLengthRecords | typeof pointDataRecordFormat | typeof pointDataRecordLength | typeof numberOfPointRecords | typeof numberOfPointByReturn | typeof xScaleFactor | typeof yScaleFactor | typeof zScaleFactor | typeof xOffset | typeof yOffset | typeof zOffset | typeof xMax | typeof yMax | typeof zMax | typeof xMin | typeof yMin | typeof zMin | typeof startOfWaveformDataPacketRecord | typeof legacyNumberOfPointRecords | typeof legacyNumberOfPointByReturn | typeof startOfFirstExtVariableLengthRecord | typeof numberOfExtVariableLengthRecords;
type HeaderField<Name extends HeaderFieldName, Type extends LasDataType, Size extends number> = {
    name: Name;
    type: Type;
    size: Size;
};
type HeaderFormatMap = {
    "1.2": [
        HeaderField<typeof fileSignature, typeof char, 4>,
        HeaderField<typeof fileSourceID, typeof ushort, 1>,
        HeaderField<typeof globalEncoding, typeof ushort, 1>,
        HeaderField<typeof projectID_GUIDData1, typeof ulong, 1>,
        HeaderField<typeof projectID_GUIDData2, typeof ushort, 1>,
        HeaderField<typeof projectID_GUIDData3, typeof ushort, 1>,
        HeaderField<typeof projectID_GUIDData4, typeof uchar, 8>,
        HeaderField<typeof versionMajor, typeof uchar, 1>,
        HeaderField<typeof versionMinor, typeof uchar, 1>,
        HeaderField<typeof systemIdentifier, typeof char, 32>,
        HeaderField<typeof generatingSoftware, typeof char, 32>,
        HeaderField<typeof fileCreationDayOfYear, typeof ushort, 1>,
        HeaderField<typeof fileCreationYear, typeof ushort, 1>,
        HeaderField<typeof headerSize, typeof ushort, 1>,
        HeaderField<typeof offsetToPointData, typeof ulong, 1>,
        HeaderField<typeof numberOfVariableLengthRecords, typeof ulong, 1>,
        HeaderField<typeof pointDataRecordFormat, typeof uchar, 1>,
        HeaderField<typeof pointDataRecordLength, typeof ushort, 1>,
        HeaderField<typeof numberOfPointRecords, typeof ulong, 1>,
        HeaderField<typeof numberOfPointByReturn, typeof ulong, 5>,
        HeaderField<typeof xScaleFactor, typeof double, 1>,
        HeaderField<typeof yScaleFactor, typeof double, 1>,
        HeaderField<typeof zScaleFactor, typeof double, 1>,
        HeaderField<typeof xOffset, typeof double, 1>,
        HeaderField<typeof yOffset, typeof double, 1>,
        HeaderField<typeof zOffset, typeof double, 1>,
        HeaderField<typeof xMax, typeof double, 1>,
        HeaderField<typeof yMax, typeof double, 1>,
        HeaderField<typeof zMax, typeof double, 1>,
        HeaderField<typeof xMin, typeof double, 1>,
        HeaderField<typeof yMin, typeof double, 1>,
        HeaderField<typeof zMin, typeof double, 1>
    ];
    "1.3": [
        HeaderField<typeof fileSignature, typeof char, 4>,
        HeaderField<typeof fileSourceID, typeof ushort, 1>,
        HeaderField<typeof globalEncoding, typeof ushort, 1>,
        HeaderField<typeof projectID_GUIDData1, typeof ulong, 1>,
        HeaderField<typeof projectID_GUIDData2, typeof ushort, 1>,
        HeaderField<typeof projectID_GUIDData3, typeof ushort, 1>,
        HeaderField<typeof projectID_GUIDData4, typeof uchar, 8>,
        HeaderField<typeof versionMajor, typeof uchar, 1>,
        HeaderField<typeof versionMinor, typeof uchar, 1>,
        HeaderField<typeof systemIdentifier, typeof char, 32>,
        HeaderField<typeof generatingSoftware, typeof char, 32>,
        HeaderField<typeof fileCreationDayOfYear, typeof ushort, 1>,
        HeaderField<typeof fileCreationYear, typeof ushort, 1>,
        HeaderField<typeof headerSize, typeof ushort, 1>,
        HeaderField<typeof offsetToPointData, typeof ulong, 1>,
        HeaderField<typeof numberOfVariableLengthRecords, typeof ulong, 1>,
        HeaderField<typeof pointDataRecordFormat, typeof uchar, 1>,
        HeaderField<typeof pointDataRecordLength, typeof ushort, 1>,
        HeaderField<typeof numberOfPointRecords, typeof ulong, 1>,
        HeaderField<typeof numberOfPointByReturn, typeof ulong, 5>,
        HeaderField<typeof xScaleFactor, typeof double, 1>,
        HeaderField<typeof yScaleFactor, typeof double, 1>,
        HeaderField<typeof zScaleFactor, typeof double, 1>,
        HeaderField<typeof xOffset, typeof double, 1>,
        HeaderField<typeof yOffset, typeof double, 1>,
        HeaderField<typeof zOffset, typeof double, 1>,
        HeaderField<typeof xMax, typeof double, 1>,
        HeaderField<typeof yMax, typeof double, 1>,
        HeaderField<typeof zMax, typeof double, 1>,
        HeaderField<typeof xMin, typeof double, 1>,
        HeaderField<typeof yMin, typeof double, 1>,
        HeaderField<typeof zMin, typeof double, 1>,
        HeaderField<typeof startOfWaveformDataPacketRecord, typeof ulonglong, 1>
    ];
    "1.4": [
        HeaderField<typeof fileSignature, typeof char, 4>,
        HeaderField<typeof fileSourceID, typeof ushort, 1>,
        HeaderField<typeof globalEncoding, typeof ushort, 1>,
        HeaderField<typeof projectID_GUIDData1, typeof ulong, 1>,
        HeaderField<typeof projectID_GUIDData2, typeof ushort, 1>,
        HeaderField<typeof projectID_GUIDData3, typeof ushort, 1>,
        HeaderField<typeof projectID_GUIDData4, typeof uchar, 8>,
        HeaderField<typeof versionMajor, typeof uchar, 1>,
        HeaderField<typeof versionMinor, typeof uchar, 1>,
        HeaderField<typeof systemIdentifier, typeof char, 32>,
        HeaderField<typeof generatingSoftware, typeof char, 32>,
        HeaderField<typeof fileCreationDayOfYear, typeof ushort, 1>,
        HeaderField<typeof fileCreationYear, typeof ushort, 1>,
        HeaderField<typeof headerSize, typeof ushort, 1>,
        HeaderField<typeof offsetToPointData, typeof ulong, 1>,
        HeaderField<typeof numberOfVariableLengthRecords, typeof ulong, 1>,
        HeaderField<typeof pointDataRecordFormat, typeof uchar, 1>,
        HeaderField<typeof pointDataRecordLength, typeof ushort, 1>,
        HeaderField<typeof legacyNumberOfPointRecords, typeof ulong, 1>,
        HeaderField<typeof legacyNumberOfPointByReturn, typeof ulong, 5>,
        HeaderField<typeof xScaleFactor, typeof double, 1>,
        HeaderField<typeof yScaleFactor, typeof double, 1>,
        HeaderField<typeof zScaleFactor, typeof double, 1>,
        HeaderField<typeof xOffset, typeof double, 1>,
        HeaderField<typeof yOffset, typeof double, 1>,
        HeaderField<typeof zOffset, typeof double, 1>,
        HeaderField<typeof xMax, typeof double, 1>,
        HeaderField<typeof yMax, typeof double, 1>,
        HeaderField<typeof zMax, typeof double, 1>,
        HeaderField<typeof xMin, typeof double, 1>,
        HeaderField<typeof yMin, typeof double, 1>,
        HeaderField<typeof zMin, typeof double, 1>,
        HeaderField<typeof startOfWaveformDataPacketRecord, typeof ulonglong, 1>,
        HeaderField<typeof startOfFirstExtVariableLengthRecord, typeof ulonglong, 1>,
        HeaderField<typeof numberOfExtVariableLengthRecords, typeof ulong, 1>,
        HeaderField<typeof numberOfPointRecords, typeof ulonglong, 1>,
        HeaderField<typeof numberOfPointByReturn, typeof ulonglong, 15>
    ];
};
declare const version_1_2: "1.2";
declare const version_1_3: "1.3";
declare const version_1_4: "1.4";
type LasVersion = typeof version_1_2 | typeof version_1_3 | typeof version_1_4;
declare const pointRecordType0: 0;
declare const pointRecordType1: 1;
declare const pointRecordType2: 2;
declare const pointRecordType3: 3;
declare const pointRecordType4: 4;
declare const pointRecordType5: 5;
declare const pointRecordType6: 6;
declare const pointRecordType7: 7;
declare const pointRecordType8: 8;
declare const pointRecordType9: 9;
declare const pointRecordType10: 10;
type LasPointRecordFormat = typeof pointRecordType0 | typeof pointRecordType1 | typeof pointRecordType2 | typeof pointRecordType3 | typeof pointRecordType4 | typeof pointRecordType5 | typeof pointRecordType6 | typeof pointRecordType7 | typeof pointRecordType8 | typeof pointRecordType9 | typeof pointRecordType10;
declare const headerFormats: HeaderFormatMap;
declare const x: "x";
declare const y: "y";
declare const z: "z";
declare const intensity: "intensity";
declare const returnNumber: "returnNumber";
declare const numberOfReturns: "numberOfReturns";
declare const scanDirectionFlag: "scanDirectionFlag";
declare const edgeOfFlightLine: "edgeOfFlightLine";
declare const classification: "classification";
declare const scanAngleRank_LeftSide: "scanAngleRank_LeftSide";
declare const userData: "userData";
declare const pointSourceID: "pointSourceID";
declare const GPSTime: "GPSTime";
declare const red: "red";
declare const green: "green";
declare const blue: "blue";
declare const wavePacketDescriptorIndex: "wavePacketDescriptorIndex";
declare const byteOffsetToWaveFormData: "byteOffsetToWaveFormData";
declare const waveformPacketSizeInBytes: "waveformPacketSizeInBytes";
declare const returnPointWaveformLocation: "returnPointWaveformLocation";
declare const parametricDx: "parametricDx";
declare const parametricDy: "parametricDy";
declare const parametricDz: "parametricDz";
declare const classificationFlags: "classificationFlags";
declare const scannerChannel: "scannerChannel";
declare const scanAngle: "scanAngle";
declare const NIR: "NIR";
type PointRecordFieldName = typeof x | typeof y | typeof z | typeof intensity | typeof returnNumber | typeof numberOfReturns | typeof scanDirectionFlag | typeof edgeOfFlightLine | typeof classification | typeof scanAngleRank_LeftSide | typeof userData | typeof pointSourceID | typeof GPSTime | typeof red | typeof green | typeof blue | typeof wavePacketDescriptorIndex | typeof byteOffsetToWaveFormData | typeof waveformPacketSizeInBytes | typeof returnPointWaveformLocation | typeof parametricDx | typeof parametricDy | typeof parametricDz | typeof classificationFlags | typeof scannerChannel | typeof scanAngle | typeof NIR;
type PointRecordNormalAttribute<Name extends PointRecordFieldName> = {
    type: "normal";
    name: Name;
};
type PointRecordCompositeAttribute<Name extends PointRecordFieldName> = {
    type: "composite";
    name: Name;
    size: number;
    startBit: number;
};
type PointRecordCompositeField<Name extends PointRecordFieldName> = {
    type: typeof composite;
    attributes: PointRecordCompositeAttribute<Name>[];
};
type PointRecordNormalField<Name extends PointRecordFieldName, Type extends Exclude<LasDataType, typeof composite>> = {
    type: Type;
    attribute: PointRecordNormalAttribute<Name>;
};
type LasPointRecordField<Name extends PointRecordFieldName> = PointRecordCompositeField<Name> | PointRecordNormalField<Name, Exclude<LasDataType, typeof composite>>;
type LasPointRecordAttribute<Name extends PointRecordFieldName> = PointRecordNormalAttribute<Name> | PointRecordCompositeAttribute<Name>;
type PointRecordFormatBase = [
    PointRecordNormalField<typeof x, typeof long>,
    PointRecordNormalField<typeof y, typeof long>,
    PointRecordNormalField<typeof z, typeof long>,
    PointRecordNormalField<typeof intensity, typeof ushort>
];
type PointRecordFormatColor = [
    PointRecordNormalField<typeof red, typeof ushort>,
    PointRecordNormalField<typeof green, typeof ushort>,
    PointRecordNormalField<typeof blue, typeof ushort>
];
type PointRecordFormatWaveform = [
    PointRecordNormalField<typeof wavePacketDescriptorIndex, typeof uchar>,
    PointRecordNormalField<typeof byteOffsetToWaveFormData, typeof ulonglong>,
    PointRecordNormalField<typeof waveformPacketSizeInBytes, typeof ulong>,
    PointRecordNormalField<typeof returnPointWaveformLocation, typeof float>,
    PointRecordNormalField<typeof parametricDx, typeof float>,
    PointRecordNormalField<typeof parametricDy, typeof float>,
    PointRecordNormalField<typeof parametricDz, typeof float>
];
type PointRecordFormat0 = [
    ...PointRecordFormatBase,
    PointRecordCompositeField<typeof returnNumber | typeof numberOfReturns | typeof scanDirectionFlag | typeof edgeOfFlightLine>,
    PointRecordNormalField<typeof classification, typeof uchar>,
    PointRecordNormalField<typeof scanAngleRank_LeftSide, typeof char>,
    PointRecordNormalField<typeof userData, typeof uchar>,
    PointRecordNormalField<typeof pointSourceID, typeof ushort>
];
type PointRecordFormat1 = [
    ...PointRecordFormat0,
    PointRecordNormalField<typeof GPSTime, typeof double>
];
type PointRecordFormat2 = [...PointRecordFormat0, ...PointRecordFormatColor];
type PointRecordFormat3 = [...PointRecordFormat1, ...PointRecordFormatColor];
type PointRecordFormat4 = [...PointRecordFormat1, ...PointRecordFormatWaveform];
type PointRecordFormat5 = [...PointRecordFormat3, ...PointRecordFormatWaveform];
type PointRecordFormat6 = [
    ...PointRecordFormatBase,
    PointRecordCompositeField<typeof returnNumber | typeof numberOfReturns>,
    PointRecordCompositeField<typeof classificationFlags | typeof scannerChannel | typeof scanDirectionFlag | typeof edgeOfFlightLine>,
    PointRecordNormalField<typeof classification, typeof uchar>,
    PointRecordNormalField<typeof userData, typeof uchar>,
    PointRecordNormalField<typeof scanAngle, typeof short>,
    PointRecordNormalField<typeof pointSourceID, typeof ushort>,
    PointRecordNormalField<typeof GPSTime, typeof double>
];
type PointRecordFormat7 = [...PointRecordFormat6, ...PointRecordFormatColor];
type PointRecordFormat8 = [
    ...PointRecordFormat7,
    PointRecordNormalField<typeof NIR, typeof ushort>
];
type PointRecordFormat9 = [...PointRecordFormat6, ...PointRecordFormatWaveform];
type PointRecordFormat10 = [
    ...PointRecordFormat8,
    ...PointRecordFormatWaveform
];
type PointRecordFormatMap = {
    [pointRecordType0]: PointRecordFormat0;
    [pointRecordType1]: PointRecordFormat1;
    [pointRecordType2]: PointRecordFormat2;
    [pointRecordType3]: PointRecordFormat3;
    [pointRecordType4]: PointRecordFormat4;
    [pointRecordType5]: PointRecordFormat5;
    [pointRecordType6]: PointRecordFormat6;
    [pointRecordType7]: PointRecordFormat7;
    [pointRecordType8]: PointRecordFormat8;
    [pointRecordType9]: PointRecordFormat9;
    [pointRecordType10]: PointRecordFormat10;
};
declare const pointRecordFormats: PointRecordFormatMap;
type BaseHeader = {
    [fileSignature]: string;
    [fileSourceID]: number;
    [globalEncoding]: number;
    [projectID_GUIDData1]: number;
    [projectID_GUIDData2]: number;
    [projectID_GUIDData3]: number;
    [projectID_GUIDData4]: string;
    [systemIdentifier]: string;
    [generatingSoftware]: string;
    [versionMajor]: number;
    [versionMinor]: number;
    [pointDataRecordFormat]: LasPointRecordFormat;
    [pointDataRecordLength]: number;
    [fileCreationDayOfYear]: number;
    [fileCreationYear]: number;
    [headerSize]: number;
    [offsetToPointData]: number;
    [numberOfVariableLengthRecords]: number;
    [numberOfPointRecords]: number;
    [numberOfPointByReturn]: number[];
    [xScaleFactor]: number;
    [yScaleFactor]: number;
    [zScaleFactor]: number;
    [xOffset]: number;
    [yOffset]: number;
    [zOffset]: number;
    [xMax]: number;
    [yMax]: number;
    [zMax]: number;
    [xMin]: number;
    [yMin]: number;
    [zMin]: number;
};
type LasHeaderMap = {
    [version_1_2]: BaseHeader & object;
    [version_1_3]: BaseHeader & {
        [startOfWaveformDataPacketRecord]: number;
    };
    [version_1_4]: BaseHeader & {
        [legacyNumberOfPointRecords]: number;
        [legacyNumberOfPointByReturn]: number[];
        [startOfWaveformDataPacketRecord]: number;
        [startOfFirstExtVariableLengthRecord]: number;
        [numberOfExtVariableLengthRecords]: number;
    };
};
type LasHeader = LasHeaderMap[LasVersion];
type BasePointRecord = {
    [x]: number;
    [y]: number;
    [z]: number;
    [intensity]: number;
};
type PointRecordColor = {
    [red]: number;
    [green]: number;
    [blue]: number;
};
type PointRecordWaveform = {
    [wavePacketDescriptorIndex]: number;
    [byteOffsetToWaveFormData]: number;
    [waveformPacketSizeInBytes]: number;
    [returnPointWaveformLocation]: number;
    [parametricDx]: number;
    [parametricDy]: number;
    [parametricDz]: number;
};
type PointRecord0 = BasePointRecord & {
    [returnNumber]: number;
    [numberOfReturns]: number;
    [scanDirectionFlag]: number;
    [edgeOfFlightLine]: number;
    [classification]: number;
    [scanAngleRank_LeftSide]: number;
    [userData]: number;
    [pointSourceID]: number;
};
type PointRecord1 = PointRecord0 & {
    [GPSTime]: number;
};
type PointRecord2 = PointRecord0 & PointRecordColor;
type PointRecord3 = PointRecord1 & PointRecordColor;
type PointRecord4 = PointRecord1 & PointRecordWaveform;
type PointRecord5 = PointRecord3 & PointRecordWaveform;
type PointRecord6 = BasePointRecord & {
    [returnNumber]: number;
    [numberOfReturns]: number;
    [classificationFlags]: number;
    [scannerChannel]: number;
    [scanDirectionFlag]: number;
    [edgeOfFlightLine]: number;
    [classification]: number;
    [userData]: number;
    [scanAngle]: number;
    [pointSourceID]: number;
    [GPSTime]: number;
};
type PointRecord7 = PointRecord6 & PointRecordColor;
type PointRecord8 = PointRecord7 & {
    [NIR]: number;
};
type PointRecord9 = PointRecord6 & PointRecordWaveform;
type PointRecord10 = PointRecord8 & PointRecordWaveform;
type LasPointRecordMap = {
    [pointRecordType0]: PointRecord0;
    [pointRecordType1]: PointRecord1;
    [pointRecordType2]: PointRecord2;
    [pointRecordType3]: PointRecord3;
    [pointRecordType4]: PointRecord4;
    [pointRecordType5]: PointRecord5;
    [pointRecordType6]: PointRecord6;
    [pointRecordType7]: PointRecord7;
    [pointRecordType8]: PointRecord8;
    [pointRecordType9]: PointRecord9;
    [pointRecordType10]: PointRecord10;
};
type LasPointRecord = LasPointRecordMap[LasPointRecordFormat];
type LasPointAttribute = keyof PointRecord0 | keyof PointRecord1 | keyof PointRecord2 | keyof PointRecord3 | keyof PointRecord4 | keyof PointRecord5 | keyof PointRecord6 | keyof PointRecord7 | keyof PointRecord8 | keyof PointRecord9 | keyof PointRecord10;
type LasPointBaseAttribute = typeof x | typeof y | typeof z;
type LasPointExtraAttribute = Exclude<LasPointAttribute, LasPointBaseAttribute>;

type LasOnProgress = (progress: number) => void;

declare class LasPointCloud<Version extends LasVersion = LasVersion, ExtraAttribute extends LasPointExtraAttribute = LasPointExtraAttribute> {
    private _header;
    private _data;
    private constructor();
    get header(): LasHeaderMap[Version];
    getPoint(i: number): Record<LasPointBaseAttribute | ExtraAttribute, number>;
    getData<A extends ExtraAttribute | LasPointBaseAttribute>(attr: A): A extends LasPointBaseAttribute ? Float64Array : Float32Array;
    getAttributes(): string[];
    write({ attributes, compressed, wasmPath, onProgress, }: {
        attributes?: Partial<Record<ExtraAttribute, Float32Array>>;
        compressed?: boolean;
        wasmPath?: string;
        onProgress?: LasOnProgress;
    }): Promise<ArrayBuffer | undefined>;
    static parse<Version extends LasVersion, ExtraAttribute extends LasPointExtraAttribute>(data: ArrayBuffer, { attributes, wasmPath, onProgress, }?: {
        attributes?: ExtraAttribute[];
        wasmPath?: string;
        onProgress?: LasOnProgress;
    }): Promise<LasPointCloud<Version, ExtraAttribute>>;
}

type GeometryOptions = {
    anchor?: [number, number];
    sampleRate?: number;
    withOpacity?: boolean;
    withId?: boolean;
};
declare class LasPointsGeometry<Version extends LasVersion, Attribute extends LasPointExtraAttribute> extends BufferGeometry<Record<Attribute | "position" | string, Float32BufferAttribute>> {
    constructor(pointCloud?: LasPointCloud<Version, Attribute>, { anchor, sampleRate, withOpacity, withId, }?: GeometryOptions);
}
type LasPointsMaterialParams<Attribute extends LasPointExtraAttribute> = {
    colorAttribute: Attribute | [Attribute, Attribute, Attribute];
    vertexOpacity?: boolean;
    pointSize?: number;
    opacity?: number;
    sizeAttenuation?: boolean;
    colorAttributeRange?: [number, number];
    redAttributeRange?: [number, number];
    greenAttributeRange?: [number, number];
    blueAttributeRange?: [number, number];
};
declare class LasPointsMaterial<Attribute extends LasPointExtraAttribute = LasPointExtraAttribute> extends ShaderMaterial {
    constructor({ colorAttribute, colorAttributeRange, redAttributeRange, greenAttributeRange, blueAttributeRange, vertexOpacity, pointSize, opacity, sizeAttenuation, }: LasPointsMaterialParams<Attribute>);
    get pointSize(): number;
    set pointSize(size: number);
    set colorAttributeRange(range: [number, number]);
}

export { type LasDataType, type LasHeader, type LasHeaderMap, type LasPointAttribute, type LasPointBaseAttribute, LasPointCloud, type LasPointExtraAttribute, type LasPointRecord, type LasPointRecordAttribute, type LasPointRecordField, type LasPointRecordFormat, type LasPointRecordMap, LasPointsGeometry, LasPointsMaterial, type LasSize, type LasVersion, headerFormats, lasByteSizes, pointRecordFormats };
