/// import { PublicKey } from '@solana/web3.js'; import BN from 'bn.js'; import { Blob, Layout, UInt, Structure as _Structure, Union as _Union, blob } from './buffer-layout'; export * from './buffer-layout'; export { blob }; export declare class BNLayout

extends Layout { blob: Layout; signed: boolean; constructor(span: number, signed: boolean, property?: P); /** @override */ decode(b: Buffer, offset?: number): BN; /** @override */ encode(src: BN, b: Buffer, offset?: number): number; } export declare class WideBits

extends Layout, P> { _lower: any; _upper: any; constructor(property?: P); addBoolean(property: string): void; decode(b: Buffer, offset?: number): Record; encode(src: any, b: Buffer, offset?: number): any; } export declare function u8

(property?: P): UInt; export declare function u32

(property?: P): UInt; export declare function u64

(property?: P): BNLayout

; export declare function u128

(property?: P): BNLayout

; export declare function i8

(property?: P): BNLayout

; export declare function i64

(property?: P): BNLayout

; export declare function i128

(property?: P): BNLayout

; export declare class WrappedLayout extends Layout { layout: Layout; decoder: (data: T) => U; encoder: (src: U) => T; constructor(layout: Layout, decoder: (data: T) => U, encoder: (src: U) => T, property?: P); decode(b: Buffer, offset?: number): U; encode(src: U, b: Buffer, offset?: number): number; getSpan(b: Buffer, offset?: number): number; } export declare function publicKey

(property?: P): Layout; export declare class OptionLayout extends Layout { layout: Layout; discriminator: Layout; constructor(layout: Layout, property?: P); encode(src: T | null, b: Buffer, offset?: number): number; decode(b: Buffer, offset?: number): T | null; getSpan(b: Buffer, offset?: number): number; } export declare function option(layout: Layout, property?: P): Layout; export declare function bool

(property?: P): Layout; export declare function decodeBool(value: number): boolean; export declare function encodeBool(value: boolean): number; export declare function vec(elementLayout: Layout, property?: P): Layout; export declare function tagged(tag: BN, layout: Layout, property?: P): Layout; export declare function vecU8

(property?: P): Layout; export declare function str

(property?: P): Layout; export interface EnumLayout extends Layout { registry: Record>; } export declare function rustEnum(variants: Layout[], property?: P): EnumLayout; export declare function array(elementLayout: Layout, length: number, property?: P): Layout; export declare class Structure extends _Structure { /** @override */ decode(b: Buffer, offset?: number): D; } export declare function struct(fields: T, property?: P, decodePrefixes?: boolean): T extends Layout[] ? Structure, ''>]: Extract> extends Layout ? V : any; }> : any; export type GetLayoutSchemaFromStructure> = T extends Structure ? S : any; export type GetStructureFromLayoutSchema = Structure; export declare class Union extends _Union { encodeInstruction(instruction: any): Buffer; decodeInstruction(instruction: any): Partial; } export declare function union(discr: any, defaultLayout?: any, property?: string): Union; declare class Zeros extends Blob { decode(b: Buffer, offset: number): Buffer; } export declare function zeros(length: number): Zeros; export declare function seq(elementLayout: Layout, count: number | BN | Layout, property?: AnotherP): Layout;