76 lines
3.3 KiB
TypeScript
76 lines
3.3 KiB
TypeScript
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;
|