import type { DecodeBuffer } from "./buffer.js"; import type { AnyCodec } from "./codec.js"; export declare abstract class ScaleError extends Error { readonly codec: AnyCodec; constructor(codec: AnyCodec, message: string); } export declare class ScaleAssertError extends ScaleError { readonly value: unknown; readonly name = "ScaleAssertError"; constructor(codec: AnyCodec, value: unknown, message: string); } export declare class ScaleEncodeError extends ScaleError { readonly value: unknown; readonly name = "ScaleEncodeError"; constructor(codec: AnyCodec, value: unknown, message: string); } export declare class ScaleDecodeError extends ScaleError { readonly buffer: DecodeBuffer; readonly name = "ScaleDecodeError"; constructor(codec: AnyCodec, buffer: DecodeBuffer, message: string); } export type Expand = T extends T ? { [K in keyof T]: T[K]; } : never; export type U2I = (U extends U ? (u: U) => 0 : never) extends (i: infer I) => 0 ? Extract : never; type _Narrow = [U] extends [T] ? U : Extract; export type Narrow = _Narrow | _Narrow | _Narrow | _Narrow | _Narrow | _Narrow | _Narrow | (T extends object ? { [K in keyof T]: Narrow; } : never) | Extract<{} | null | undefined, T>; export {};