import { DataTable } from './data-table';
type CoordinateSystem = {
    RDF: number;
};
type GaussianCloud = {
    numPoints: number;
    shDegree: number;
    antialiased: boolean;
    extensions: unknown[];
    positions: Float32Array;
    scales: Float32Array;
    rotations: Float32Array;
    alphas: Float32Array;
    colors: Float32Array;
    sh: Float32Array;
};
type PackOptions = {
    version: number;
    from: number;
    sh1Bits?: number;
    shRestBits?: number;
};
type UnpackOptions = {
    to: number;
};
type SpzModule = {
    CoordinateSystem: CoordinateSystem;
    LATEST_SPZ_HEADER_VERSION: number;
    loadSpzFromBuffer(data: Uint8Array | ArrayBuffer, options?: UnpackOptions): GaussianCloud | Promise<GaussianCloud>;
    saveSpzToBuffer(cloud: GaussianCloud, options?: PackOptions): Uint8Array;
};
declare const SPZ_SH_COMPONENTS: readonly [0, 9, 24, 45, 72];
declare const getSpzModule: () => Promise<SpzModule>;
declare const gaussianCloudToDataTable: (cloud: GaussianCloud) => DataTable;
declare const dataTableToGaussianCloud: (dataTable: DataTable) => GaussianCloud;
declare const makeSpzPackOptions: (overrides?: Partial<PackOptions>) => Promise<PackOptions>;
export { SPZ_SH_COMPONENTS, dataTableToGaussianCloud, gaussianCloudToDataTable, getSpzModule, makeSpzPackOptions };
