/// export interface Layout { span: number; property?: P; decode(b: Buffer, offset?: number): T; encode(src: T, b: Buffer, offset?: number): number; getSpan(b: Buffer, offset?: number): number; replicate(name: AP): Layout; } export interface LayoutConstructor { new (): Layout; new (span?: T, property?: P): Layout; readonly prototype: Layout; } export declare const Layout: LayoutConstructor; export interface Structure extends Layout { span: number; decode(b: Buffer, offset?: number): DecodeSchema; layoutFor(property: AP): Layout; offsetOf(property: AP): number; } interface StructureConstructor { new (): Structure; new (fields: T, property?: P, decodePrefixes?: boolean): Structure; } export declare const Structure: StructureConstructor; export interface Union extends Layout { registry: object; decode(b: Buffer, offset?: number): Partial; addVariant(variant: number, layout: Structure> | Layout, property?: string): any; } interface UnionConstructor { new (): Union; new (discr: Layout, defaultLayout: Layout, property?: string): Union; } export declare const Union: UnionConstructor; export type BitStructure = Layout; interface BitStructureConstructor { new (...params: any[]): BitStructure; } export declare const BitStructure: BitStructureConstructor; export type UInt = Layout; interface UIntConstructor { new (span?: T, property?: P): UInt; } export declare const UInt: UIntConstructor; export type Blob

= Layout; interface BlobConstructor { new (...params: ConstructorParameters): Blob; } export declare const Blob: BlobConstructor; export declare const greedy:

(elementSpan?: number, property?: P | undefined) => Layout; export declare const u8:

(property?: P | undefined) => Layout; export declare const u16:

(property?: P | undefined) => Layout; export declare const u24:

(property?: P | undefined) => Layout; export declare const u32:

(property?: P | undefined) => Layout; export declare const u40:

(property?: P | undefined) => Layout; export declare const u48:

(property?: P | undefined) => Layout; export declare const nu64:

(property?: P | undefined) => Layout; export declare const u16be:

(property?: P | undefined) => Layout; export declare const u24be:

(property?: P | undefined) => Layout; export declare const u32be:

(property?: P | undefined) => Layout; export declare const u40be:

(property?: P | undefined) => Layout; export declare const u48be:

(property?: P | undefined) => Layout; export declare const nu64be:

(property?: P | undefined) => Layout; export declare const s8:

(property?: P | undefined) => Layout; export declare const s16:

(property?: P | undefined) => Layout; export declare const s24:

(property?: P | undefined) => Layout; export declare const s32:

(property?: P | undefined) => Layout; export declare const s40:

(property?: P | undefined) => Layout; export declare const s48:

(property?: P | undefined) => Layout; export declare const ns64:

(property?: P | undefined) => Layout; export declare const s16be:

(property?: P | undefined) => Layout; export declare const s24be:

(property?: P | undefined) => Layout; export declare const s32be:

(property?: P | undefined) => Layout; export declare const s40be:

(property?: P | undefined) => Layout; export declare const s48be:

(property?: P | undefined) => Layout; export declare const ns64be:

(property?: P | undefined) => Layout; export declare const f32:

(property?: P | undefined) => Layout; export declare const f32be:

(property?: P | undefined) => Layout; export declare const f64:

(property?: P | undefined) => Layout; export declare const f64be:

(property?: P | undefined) => Layout; export declare const struct: (fields: T, property?: P | undefined, decodePrefixes?: boolean) => T extends Layout[] ? Structure, "">]: Extract> extends Layout ? V : any; }> : any; export declare const seq: (elementLayout: Layout, count: number | Layout, property?: P | undefined) => Layout; export declare const union: (discr: Layout, defaultLayout?: any, property?: string) => Union; export declare const unionLayoutDiscriminator:

(layout: Layout, property?: P | undefined) => any; export declare const blob:

(length: number | Layout, property?: P | undefined) => Blob

; export declare const cstr:

(property?: P | undefined) => Layout; export declare const utf8:

(maxSpan: number, property?: P | undefined) => Layout; export declare const bits: (word: Layout, msb?: boolean, property?: P | undefined) => BitStructure; export declare const offset: (layout: Layout, offset?: number, property?: P | undefined) => Layout; export type GetStructureSchema = T extends Structure ? S : unknown; export {};