Initial commit

This commit is contained in:
2026-04-15 17:08:39 +02:00
parent ae164c47a8
commit 47fd1c2b7a
1819 changed files with 685388 additions and 0 deletions

View File

@@ -0,0 +1,75 @@
import { PhysicalStreamType } from "../metadata/tile/physicalStreamType";
import { LogicalLevelTechnique } from "../metadata/tile/logicalLevelTechnique";
import { PhysicalLevelTechnique } from "../metadata/tile/physicalLevelTechnique";
import { DictionaryType } from "../metadata/tile/dictionaryType";
import { type Column } from "../metadata/tileset/tilesetMetadata";
import type { RleEncodedStreamMetadata, StreamMetadata } from "../metadata/tile/streamMetadataDecoder";
import type { LogicalStreamType } from "../metadata/tile/logicalStreamType";
/**
* Creates basic stream metadata with logical techniques.
*/
export declare function createStreamMetadata(logicalTechnique1: LogicalLevelTechnique, logicalTechnique2?: LogicalLevelTechnique, numValues?: number): StreamMetadata;
/**
* Creates RLE-encoded stream metadata.
*/
export declare function createRleMetadata(logicalTechnique1: LogicalLevelTechnique, logicalTechnique2: LogicalLevelTechnique, runs: number, numRleValues: number): RleEncodedStreamMetadata;
/**
* Creates column metadata for STRUCT type columns.
*/
export declare function createColumnMetadataForStruct(columnName: string, childFields: Array<{
name: string;
type?: number;
}>): Column;
/**
* Creates a single stream with metadata and data.
*/
export declare function createStream(physicalType: PhysicalStreamType, data: Uint8Array, options?: {
logical?: LogicalStreamType;
technique?: PhysicalLevelTechnique;
count?: number;
}): Uint8Array;
/**
* Encodes FSST-compressed strings into a complete stream.
* This uses hardcoded test data: ["cat", "dog", "cat"]
* @returns Encoded Uint8Array that can be passed to decodeString
*/
export declare function encodeFsstStrings(): Uint8Array;
/**
* Encodes a shared dictionary for struct fields.
* @param dictionaryStrings - Array of unique strings in the dictionary
* @param options - Encoding options
* @returns Object containing length and data streams
*/
export declare function encodeSharedDictionary(dictionaryStrings: string[], options?: {
useFsst?: boolean;
dictionaryType?: DictionaryType;
}): {
lengthStream: Uint8Array;
dataStream: Uint8Array;
symbolLengthStream?: Uint8Array;
symbolDataStream?: Uint8Array;
};
/**
* Encodes streams for a struct field.
* @param offsetIndices - Indices into the shared dictionary
* @param presentValues - Boolean array indicating which values are present
* @param isPresent - Whether the field itself is present
* @returns Encoded streams for the field
*/
export declare function encodeStructField(offsetIndices: number[], presentValues: boolean[], isPresent?: boolean): Uint8Array;
/**
* Builds a complete encoded stream by combining metadata and data.
*/
export declare function buildEncodedStream(streamMetadata: StreamMetadata | RleEncodedStreamMetadata, encodedData: Uint8Array): Uint8Array;
/**
* Encodes stream metadata into binary format.
* - Byte 1: Stream type (physical type in upper 4 bits, logical subtype in lower 4 bits)
* - Byte 2: Encodings (llt1[5-7], llt2[2-4], plt[0-1])
* - Varints: numValues, byteLength
* - If RLE: Varints: runs, numRleValues
*/
export declare function encodeStreamMetadata(metadata: StreamMetadata | RleEncodedStreamMetadata): Uint8Array;
/**
* Concatenates multiple Uint8Array buffers into a single buffer.
*/
export declare function concatenateBuffers(...buffers: Uint8Array[]): Uint8Array;