type DecodeErrors = "strict" | "replace"; declare class UnicodeDecodeError extends Error { readonly encoding: string; readonly byte: number; readonly position: number; readonly reason: string; constructor(encoding: string, byte: number, position: number, reason?: string); } declare class UnicodeEncodeError extends Error { readonly encoding: string; readonly character: string; readonly position: number; constructor(encoding: string, character: string, position: number); } declare function normalizeEncoding(encoding: string): string; declare function canEncode(text: string, encoding: string): boolean; declare function encodeSingleByte(text: string, encoding: string): Uint8Array; declare function decodeSingleByte(bytes: Uint8Array, encoding: string, errors?: DecodeErrors): string; /** Decode standard UTF-8 plus CESU-8 surrogate pairs and Java's C0 80 null. */ declare function decodeUtf8Variants(bytes: Uint8Array, errors?: DecodeErrors, allowIncomplete?: boolean): { text: string; consumed: number; }; declare class Utf8VariantsIncrementalDecoder { #private; readonly errors: DecodeErrors; constructor(errors?: DecodeErrors); decode(input: Uint8Array, final?: boolean): string; } declare function decodeBytes(bytes: Uint8Array, encoding: string, errors?: DecodeErrors): string; declare function encodeText(text: string, encoding: string): Uint8Array; export { Utf8VariantsIncrementalDecoder as U, UnicodeDecodeError as a, UnicodeEncodeError as b, canEncode as c, decodeUtf8Variants as d, decodeBytes as e, decodeSingleByte as f, encodeSingleByte as g, encodeText as h, normalizeEncoding as n };