import type { LASFormat, LASHeader, VectorPointM } from '../../..';
/**
 * @param input - 30bits input
 * @returns - parsed to a LASpoint14 output
 */
export declare function modifyPoint14RawInput(input: DataView): DataView;
/** Base class for common data manipulation */
export declare class CopyDataView {
    readonly data: DataView;
    /** @param data - the data to manipulate */
    constructor(data: DataView);
    /**
     * @param data - the data to copy from
     * @param length - the length to copy
     */
    copyFrom(data: DataView, length: number): void;
    /**
     * @param item - the data to copy to
     * @param length - the length to copy
     */
    copyTo(item: DataView, length: number): void;
}
/**
 * Point 1.0 Internal manipulation tool
 * [Reference](https://github.com/LASzip/LASzip/blob/658d03825b221fab91ddf4571439724fda930191/src/lasreaditemcompressed_v1.cpp#L44)
 * The struct form:
 * ```cpp
 * struct LASpoint10
 * {
 *   I32 x;
 *   I32 y;
 *   I32 z;
 *   U16 intensity;
 *   U8 return_number : 3;
 *   U8 number_of_returns_of_given_pulse : 3;
 *   U8 scan_direction_flag : 1;
 *   U8 edge_of_flight_line : 1;
 *   U8 classification;
 *   I8 scan_angle_rank;
 *   U8 user_data;
 *   U16 point_source_ID;
 * };
 * ```
 */
export declare class LASpoint10 extends CopyDataView {
    /** @param data - 20 bytes */
    constructor(data?: DataView);
    /**
     * Modify the vector point given the input data and header
     * @param data - the raw data
     * @param header - the las header
     * @param point - the vector point to modify
     */
    static rawToVectorPoint(data: DataView, header: LASHeader, point: VectorPointM<LASFormat>): void;
    /** @returns the I32 at x position */
    get x(): number;
    /** set an I32 at x position */
    set x(value: number);
    /** @returns the I32 at y position */
    get y(): number;
    /** set an I32 at y position */
    set y(value: number);
    /** @returns the I32 at z position */
    get z(): number;
    /** set an I32 at z position */
    set z(value: number);
    /** @returns the U16 at intensity position */
    get intensity(): number;
    /** set an U16 at intensity position */
    set intensity(value: number);
    /** @returns the U8 at flags position */
    get flags(): number;
    /** @returns the return number flag */
    get returnNumber(): number;
    /** @returns the number of returns flag */
    get numberOfReturns(): number;
    /** @returns the scan direction flag */
    get scanDirectionFlag(): number;
    /** @returns the edge of flight line flag */
    get edgeOfFlightLine(): number;
    /** set an U8 at flags position */
    set flags(value: number);
    /** @returns the U8 at class position */
    get class(): number;
    /** @returns the isSynthetic flag */
    get isSynthetic(): boolean;
    /** @returns the isKeyPoint flag */
    get isKeyPoint(): boolean;
    /** @returns the isWithheld flag */
    get isWithheld(): boolean;
    /** set an U8 at class position */
    set class(value: number);
    /** @returns the I8 at scan angle rank */
    get scanAngleRank(): number;
    /** set an I8 at scan angle rank */
    set scanAngleRank(value: number);
    /** @returns the U8 at user data position */
    get userData(): number;
    /** set an U8 at user data position */
    set userData(value: number);
    /** @returns the U16 at point source ID position */
    get pointSourceID(): number;
    /** set an U16 at point source ID position */
    set pointSourceID(value: number);
}
/** LAS 1.0 RGBA Point data. Each color channel is 2 bytes. */
export declare class LASrgba extends CopyDataView {
    /**  @param data - 6 bytes (2 bytes each for R, G, B) */
    constructor(data?: DataView);
    /**
     * Modify the vector point given the input data
     * @param data - the raw data
     * @param point - the vector point to modify
     */
    static rawToVectorPoint(data: DataView, point: VectorPointM<LASFormat>): void;
    /** @returns the U16 red position */
    get r(): number;
    /** set an U16 red position */
    set r(value: number);
    /** @returns the U16 green position */
    get g(): number;
    /** set an U16 green position */
    set g(value: number);
    /** @returns the U16 blue position */
    get b(): number;
    /** set an U16 blue position */
    set b(value: number);
}
/** LAS 1.0 RGBA Point data. Each color channel is 2 bytes. */
export declare class LASrgbaNir extends LASrgba {
    /**  @param data - 8 bytes (2 bytes each for R, G, B, and NIR) */
    constructor(data?: DataView);
    /**
     * Modify the vector point given the input data
     * @param data - the raw data
     * @param point - the vector point to modify
     */
    static rawToVectorPoint(data: DataView, point: VectorPointM<LASFormat>): void;
    /** @returns the U16 blue position */
    get nir(): number;
    /** set an U16 blue position */
    set nir(value: number);
}
/** LAS 1.0 Wave Packet. Each wave packet is 29 bytes. */
export declare class LASWavePacket13 extends CopyDataView {
    /** @param data - 29 */
    constructor(data?: DataView);
    /**
     * Modify the vector point given the input data
     * @param data - the raw data
     * @param point - the vector point to modify
     */
    static rawToVectorPoint(data: DataView, point: VectorPointM<LASFormat>): void;
    /** @returns - the index */
    get index(): number;
    /** set the index */
    set index(value: number);
    /** @returns the offset */
    get offset(): number;
    /** set an offset */
    set offset(value: number | bigint);
    /** @returns the packet size */
    get packetSize(): number;
    /** set an packet size */
    set packetSize(value: number);
    /** @returns the return point */
    get returnPoint(): number;
    /** set an return point */
    set returnPoint(value: number);
    /** @returns the x */
    get x(): number;
    /** set an x */
    set x(value: number);
    /** @returns the y */
    get y(): number;
    /** set an y */
    set y(value: number);
    /** @returns the z */
    get z(): number;
    /** set an z */
    set z(value: number);
}
/**
 * LAS Internal Temp Point Format 1.4
 * The struct form:
 * ```cpp
 * typedef struct LAStempReadPoint14 {
 *   I32 X;
 *   I32 Y;
 *   I32 Z;
 *   U16 intensity;
 *   U8 return_number : 4;
 *   U8 number_of_returns : 4;
 *   U8 classification_flags : 4;
 *   U8 scanner_channel : 2;
 *   U8 scan_direction_flag : 1;
 *   U8 edge_of_flight_line : 1;
 *   U8 classification;
 *   U8 user_data;
 *   I16 scan_angle;
 *   U16 point_source_ID;
 * };
 * ```
 */
export declare class LAStempReadPoint14 extends CopyDataView {
    /** @param data - 22 bytes */
    constructor(data?: DataView);
    /** @returns the I32 at x position */
    get x(): number;
    /** @returns the I32 at y position */
    get y(): number;
    /** @returns the I32 at z position */
    get z(): number;
    /** @returns the U16 at intensity position */
    get intensity(): number;
    /** @returns the U8 at returnNumber position */
    get returnNumber(): number;
    /** @returns the U8 at numberOfReturns position */
    get numberOfReturns(): number;
    /** @returns the U8 at classificationFlags position */
    get classificationFlags(): number;
    /** @returns the U8 at scannerChannel position */
    get scannerChannel(): number;
    /** @returns the U8 at scanDirectionFlag position */
    get scanDirectionFlag(): number;
    /** @returns the U8 at edgeOfFlightLine position */
    get edgeOfFlightLine(): number;
    /** @returns the U8 at classification position */
    get classification(): number;
    /** @returns the U8 at userData position */
    get userData(): number;
    /** @returns the I16 at scanAngle position */
    get scanAngle(): number;
    /** @returns the U16 at pointSourceID position */
    get pointSourceID(): number;
}
/**
 * LAS Internal Point Format 1.4
 * The struct form:
 * ```cpp
 * typedef struct LASpoint14 {
 *   I32 X;
 *   I32 Y;
 *   I32 Z;
 *   U16 intensity;
 *   U8 legacy_return_number : 3;
 *   U8 legacy_number_of_returns : 3;
 *   U8 scan_direction_flag : 1;
 *   U8 edge_of_flight_line : 1;
 *
 *   U8 legacy_classification : 5;
 *   U8 legacy_flags : 3;
 *   I8 legacy_scan_angle_rank;
 *   U8 user_data;
 *   U16 point_source_ID;
 *   // LAS 1.4 only
 *   I16 scan_angle;
 *   U8 legacy_point_type : 2;
 *   U8 scanner_channel : 2;
 *   U8 classification_flags : 4;
 *   U8 classification;
 *   U8 return_number : 4;
 *   U8 number_of_returns : 4;
 *   // LASlib internal use only
 *   U8 deleted_flag;
 *   // for 8 byte alignment of the GPS time
 *   U8 dummy[2];
 *   // compressed LASzip 1.4 points only
 *   BOOL gps_time_change;
 *   F64 gps_time;
 *   U16 rgb[4];
 *   LASwavepacket wavepacket;
 * } LASpoint14;
 * ```
 */
export declare class LASpoint14 extends CopyDataView {
    /** @param data - 45 bytes */
    constructor(data?: DataView);
    /**
     * Modify the vector point given the input data and header
     * @param data - the raw data
     * @param header - the las header
     * @param point - the vector point to modify
     */
    static rawToVectorPoint(data: DataView, header: LASHeader, point: VectorPointM<LASFormat>): void;
    /** @returns the I32 at x position */
    get x(): number;
    /** set an I32 at x position */
    set x(value: number);
    /** @returns the I32 at y position */
    get y(): number;
    /** set an I32 at y position */
    set y(value: number);
    /** @returns the I32 at z position */
    get z(): number;
    /** set an I32 at z position */
    set z(value: number);
    /** @returns the U16 at intensity position */
    get intensity(): number;
    /** set an U16 at intensity position */
    set intensity(value: number);
    /** @returns the U8 at first flags position */
    get flags1(): number;
    /** @returns the U8 at legacy return number position */
    get legacyReturnNumber(): number;
    /** set an U8 at legacy return number position */
    set legacyReturnNumber(value: number);
    /** @returns the U8 at legacy number of returns position */
    get legacyNumberOfReturns(): number;
    /** set an U8 at legacy number of returns position */
    set legacyNumberOfReturns(value: number);
    /** @returns the U8 at scan direction flag position */
    get scanDirectionFlag(): number;
    /** set an U8 at scan direction flag position */
    set scanDirectionFlag(value: number);
    /** @returns the U8 at edge of flight line position */
    get edgeOfFlightLine(): number;
    /** set an U8 at edge of flight line position */
    set edgeOfFlightLine(value: number);
    /** set an U8 at first flags position */
    set flags1(value: number);
    /** @returns the U8 at second flags position */
    get flags2(): number;
    /** @returns the U8 at legacy classification position */
    get legacyClassification(): number;
    /** @returns the isSynthetic flag */
    get isSynthetic(): boolean;
    /** @returns the isKeyPoint flag */
    get isKeyPoint(): boolean;
    /** @returns the isWithheld flag */
    get isWithheld(): boolean;
    /** set an U8 at legacy classification position */
    set legacyClassification(value: number);
    /** @returns the U8 at legacy flags position */
    get legacyFlags(): number;
    /** set an U8 at legacy flags position */
    set legacyFlags(value: number);
    /** set an U8 at second flags position */
    set flags2(value: number);
    /** @returns the I8 at legacy scan angle rank position */
    get legacyScanAngleRank(): number;
    /** set an I8 at legacy scan angle rank position */
    set legacyScanAngleRank(value: number);
    /** @returns the U8 at user data position */
    get userData(): number;
    /** set an U8 at user data position */
    set userData(value: number);
    /** @returns the U16 at point source ID position */
    get pointSourceID(): number;
    /** set an U16 at point source ID position */
    set pointSourceID(value: number);
    /** @returns the I16 at scan angle position */
    get scanAngle(): number;
    /** set an I16 at scan angle position */
    set scanAngle(value: number);
    /** @returns the U8 at third flags position */
    get flags3(): number;
    /** @returns the U8 at legacy point type position */
    get legacyPointType(): number;
    /** @returns the U8 at scanner channel position */
    get scannerChannel(): number;
    /** set an U8 at scanner channel position */
    set scannerChannel(value: number);
    /** @returns the U8 at classification flags position */
    get classificationFlags(): number;
    /** set an U8 at classification flags position */
    set classificationFlags(value: number);
    /** set an U8 at third flags position */
    set flags3(value: number);
    /** @returns the U8 at classification position */
    get classification(): number;
    /** set an U8 at classification position */
    set classification(value: number);
    /** @returns the U8 at fourth flags position */
    get flags4(): number;
    /** @returns the U8 at return number position */
    get returnNumber(): number;
    /** set an U8 at return number position */
    set returnNumber(value: number);
    /** @returns the U8 at number of returns position */
    get numberOfReturns(): number;
    /** set an U8 at return number position */
    set numberOfReturns(value: number);
    /** set an U8 at fourth flags position */
    set flags4(value: number);
    /** @returns the U8 at deleted flag position */
    get deletedFlag(): number;
    /** set an U8 at deleted flag position */
    set deletedFlag(value: number);
    /** @returns the U8 at dummy position */
    get dummy(): number;
    /** set an U8 at dummy position */
    set dummy(value: number);
    /** @returns the BOOL at gps time change position */
    get gpsTimeChange(): number;
    /** set an BOOL at gps time change position */
    set gpsTimeChange(value: number);
    /** @returns the F64 at gps time position */
    get gpsTime(): number;
    /** set an F64 at gps time position */
    set gpsTime(value: number);
    /** @returns the U16 red position */
    get r(): number;
    /** set an U16 red position */
    set r(value: number);
    /** @returns the U16 green position */
    get g(): number;
    /** set an U16 green position */
    set g(value: number);
    /** @returns the U16 blue position */
    get b(): number;
    /** set an U16 blue position */
    set b(value: number);
}
//# sourceMappingURL=items.d.ts.map