/// 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 declare type UInt = Layout; interface UIntConstructor { new (span?: T, property?: P): UInt; } export declare const UInt: UIntConstructor; export declare type Blob

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

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

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

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

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

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

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

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

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

(property?: P) => Layout; export declare const struct: (fields: T, property?: P, decodePrefixes?: boolean) => T extends Layout[] ? Structure, "">]: Extract> extends Layout ? V : any; }> : any; export declare const blob:

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

; export declare const offset: (layout: Layout, offset?: number, property?: P) => Layout; export {};