import type { ArrayMetadata, ArrayMetadataV2, BigintDataType, CodecMetadata, DataType, GroupMetadata, NumberDataType, ObjectType, Scalar, StringDataType, TypedArrayConstructor } from "./metadata.js"; export declare function json_encode_object(o: Record): Uint8Array; export declare function json_decode_object(bytes: Uint8Array): any; export declare function byteswap_inplace(view: Uint8Array, bytes_per_element: number): void; export declare function get_ctr(data_type: D): TypedArrayConstructor; /** Compute strides for 'C' or 'F' ordered array from shape */ export declare function get_strides(shape: readonly number[], order: "C" | "F"): number[]; export declare function create_chunk_key_encoder({ name, configuration }: ArrayMetadata["chunk_key_encoding"]): (chunk_coords: number[]) => string; export declare function get_array_order(codecs: CodecMetadata[]): "C" | "F"; export declare const v2_marker: unique symbol; export declare function v2_to_v3_array_metadata(meta: ArrayMetadataV2, attributes?: Record): ArrayMetadata; export declare function v2_to_v3_group_metadata(_meta: unknown, attributes?: Record): GroupMetadata; export type DataTypeQuery = DataType | "boolean" | "number" | "bigint" | "object" | "string"; export type NarrowDataType = Query extends "number" ? NumberDataType : Query extends "bigint" ? BigintDataType : Query extends "string" ? StringDataType : Query extends "object" ? ObjectType : Extract; export declare function is_dtype(dtype: DataType, query: Query): dtype is NarrowDataType; export type ShardingCodecMetadata = { name: "sharding_indexed"; configuration: { chunk_shape: number[]; codecs: CodecMetadata[]; index_codecs: CodecMetadata[]; }; }; export declare function is_sharding_codec(codec: CodecMetadata): codec is ShardingCodecMetadata; export declare function ensure_correct_scalar(metadata: ArrayMetadata): Scalar | null;