import type { UnionToTuple } from 'utilium/types'; import type { Type } from './types.js'; declare const __view__: unique symbol; /** * @internal @hidden */ declare function view(buffer: ArrayBufferLike & { [__view__]?: DataView; }): DataView; export { view as __view }; /** * So we don't need to create intermediate types for each interface */ type _ = x; declare const int8: { readonly name: "int8"; readonly size: 1; readonly array: Int8ArrayConstructor; readonly get: (this: void, buffer: ArrayBufferLike, offset: number) => number; readonly set: (this: void, buffer: ArrayBufferLike, offset: number, value: number) => void; }; export interface int8 extends _ { } declare const uint8: { readonly name: "uint8"; readonly size: 1; readonly array: Uint8ArrayConstructor; readonly get: (this: void, buffer: ArrayBufferLike, offset: number) => number; readonly set: (this: void, buffer: ArrayBufferLike, offset: number, value: number) => void; }; export interface uint8 extends _ { } declare const int16: { readonly name: "int16"; readonly size: 2; readonly array: Int16ArrayConstructor; readonly get: (this: void, buffer: ArrayBufferLike, offset: number) => number; readonly set: (this: void, buffer: ArrayBufferLike, offset: number, value: number) => void; }; export interface int16 extends _ { } declare const uint16: { readonly name: "uint16"; readonly size: 2; readonly array: Uint16ArrayConstructor; readonly get: (this: void, buffer: ArrayBufferLike, offset: number) => number; readonly set: (this: void, buffer: ArrayBufferLike, offset: number, value: number) => void; }; export interface uint16 extends _ { } declare const int32: { readonly name: "int32"; readonly size: 4; readonly array: Int32ArrayConstructor; readonly get: (this: void, buffer: ArrayBufferLike, offset: number) => number; readonly set: (this: void, buffer: ArrayBufferLike, offset: number, value: number) => void; }; export interface int32 extends _ { } declare const uint32: { readonly name: "uint32"; readonly size: 4; readonly array: Uint32ArrayConstructor; readonly get: (this: void, buffer: ArrayBufferLike, offset: number) => number; readonly set: (this: void, buffer: ArrayBufferLike, offset: number, value: number) => void; }; export interface uint32 extends _ { } declare const int64: { readonly name: "int64"; readonly size: 8; readonly array: BigInt64ArrayConstructor; readonly get: (this: void, buffer: ArrayBufferLike, offset: number) => bigint; readonly set: (this: void, buffer: ArrayBufferLike, offset: number, value: bigint) => void; }; export interface int64 extends _ { } declare const uint64: { readonly name: "uint64"; readonly size: 8; readonly array: BigUint64ArrayConstructor; readonly get: (this: void, buffer: ArrayBufferLike, offset: number) => bigint; readonly set: (this: void, buffer: ArrayBufferLike, offset: number, value: bigint) => void; }; export interface uint64 extends _ { } declare const float32: { readonly name: "float32"; readonly size: 4; readonly array: Float32ArrayConstructor; readonly get: (this: void, buffer: ArrayBufferLike, offset: number) => number; readonly set: (this: void, buffer: ArrayBufferLike, offset: number, value: number) => void; }; export interface float32 extends _ { } declare const float64: { readonly name: "float64"; readonly size: 8; readonly array: Float64ArrayConstructor; readonly get: (this: void, buffer: ArrayBufferLike, offset: number) => number; readonly set: (this: void, buffer: ArrayBufferLike, offset: number, value: number) => void; }; export interface float64 extends _ { } export declare const types: { readonly int8: int8; readonly uint8: uint8; readonly int16: int16; readonly uint16: uint16; readonly int32: int32; readonly uint32: uint32; readonly int64: int64; readonly uint64: uint64; readonly float32: float32; readonly float64: float64; }; export type TypeName = keyof typeof types; export type AnyType = (typeof rawTypes)[ValidName]; export declare const typeNames: UnionToTuple; export declare function isTypeName(type: { toString(): string; }): type is TypeName; export declare const rawTypes: { readonly char: uint8; readonly Int8: int8; readonly Uint8: uint8; readonly Int16: int16; readonly Uint16: uint16; readonly Int32: int32; readonly Uint32: uint32; readonly Int64: int64; readonly Uint64: uint64; readonly Float32: float32; readonly Float64: float64; readonly int8: int8; readonly uint8: uint8; readonly int16: int16; readonly uint16: uint16; readonly int32: int32; readonly uint32: uint32; readonly int64: int64; readonly uint64: uint64; readonly float32: float32; readonly float64: float64; }; export type ValidName = keyof typeof rawTypes; export declare const validNames: UnionToTuple; export declare function isValid(type: { toString(): string; }): type is ValidName; export declare function checkValid(type: { toString(): string; }): asserts type is ValidName; export type Normalize = (T extends 'char' ? 'uint8' : Uncapitalize) & TypeName; export declare function normalize(type: T): Normalize; export type Size = (T extends ValidName ? (typeof types)[Normalize] : T)['size'];