///
import { PublicKey } from '@solana/web3.js';
import BN from 'bn.js';
import { blob, Layout, Structure as _Structure, UInt } 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 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 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 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;