///
import { PublicKey } from '@solana/web3.js';
import BN from 'bn.js';
export { u8, s8 as i8, u16, s16 as i16, u32, s32 as i32, f32, f64, struct, } from 'buffer-layout';
export interface Layout {
span: number;
property?: string;
decode(b: Buffer, offset?: number): T;
encode(src: T, b: Buffer, offset?: number): number;
getSpan(b: Buffer, offset?: number): number;
replicate(name: string): this;
}
export declare function u64(property?: string): Layout;
export declare function i64(property?: string): Layout;
export declare function u128(property?: string): Layout;
export declare function i128(property?: string): Layout;
export declare function publicKey(property?: string): Layout;
export declare function option(layout: Layout, property?: string): Layout;
export declare function bool(property?: string): Layout;
export declare function vec(elementLayout: Layout, property?: string): Layout;
export declare function tagged(tag: BN, layout: Layout, property?: string): Layout;
export declare function vecU8(property?: string): Layout;
export declare function str(property?: string): Layout;
export interface EnumLayout extends Layout {
registry: Record>;
}
export declare function rustEnum(variants: Layout[], property?: string, discriminant?: Layout): EnumLayout;
export declare function array(elementLayout: Layout, length: number, property?: string): Layout;
export declare function map(keyLayout: Layout, valueLayout: Layout, property?: string): Layout