import { PublicKey } from '@solana/web3.js'; import BN__default from 'bn.js'; import { Layout, UInt, Structure as Structure$1, Union as Union$1, Blob } from './buffer-layout.js'; export { BitStructure, Blob, GetStructureSchema, Layout, LayoutConstructor, UInt, bits, blob, cstr, f32, f32be, f64, f64be, greedy, ns64, ns64be, nu64, nu64be, offset, s16, s16be, s24, s24be, s32, s32be, s40, s40be, s48, s48be, s8, u16, u16be, u24, u24be, u32be, u40, u40be, u48, u48be, unionLayoutDiscriminator, utf8 } from './buffer-layout.js'; declare class BNLayout

extends Layout { blob: Layout; signed: boolean; constructor(span: number, signed: boolean, property?: P); /** @override */ decode(b: Buffer, offset?: number): BN__default; /** @override */ encode(src: BN__default, b: Buffer, offset?: number): number; } 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; } declare function u8

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

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

(property?: P): BNLayout

; declare function u128

(property?: P): BNLayout

; declare function i8

(property?: P): BNLayout

; declare function i64

(property?: P): BNLayout

; declare function i128

(property?: P): BNLayout

; 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; } declare function publicKey

(property?: P): Layout; 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; } declare function option(layout: Layout, property?: P): Layout; declare function bool

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

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

(property?: P): Layout; interface EnumLayout extends Layout { registry: Record>; } declare function rustEnum(variants: Layout[], property?: P): EnumLayout; declare function array(elementLayout: Layout, length: number, property?: P): Layout; declare class Structure extends Structure$1 { /** @override */ decode(b: Buffer, offset?: number): D; } declare function struct(fields: T, property?: P, decodePrefixes?: boolean): T extends Layout[] ? Structure, "">]: Extract> extends Layout ? V : any; }> : any; declare type GetLayoutSchemaFromStructure> = T extends Structure ? S : any; declare type GetStructureFromLayoutSchema = Structure; declare class Union extends Union$1 { encodeInstruction(instruction: any): Buffer; decodeInstruction(instruction: any): Partial; } declare function union(discr: any, defaultLayout?: any, property?: string): Union; declare class Zeros extends Blob { decode(b: Buffer, offset: number): Buffer; } declare function zeros(length: number): Zeros; declare function seq(elementLayout: Layout, count: number | BN__default | Layout, property?: AnotherP): Layout; export { BNLayout, EnumLayout, GetLayoutSchemaFromStructure, GetStructureFromLayoutSchema, OptionLayout, Structure, Union, WideBits, WrappedLayout, array, bool, decodeBool, encodeBool, i128, i64, i8, option, publicKey, rustEnum, seq, str, struct, tagged, u128, u32, u64, u8, union, vec, vecU8, zeros };