import * as BufferLayout from '@exodus/solana-buffer-layout';
/**
 * Layout for a public key
 */
export declare const publicKey: (property?: string) => BufferLayout.Blob;
/**
 * Layout for a signature
 */
export declare const signature: (property?: string) => BufferLayout.Blob;
/**
 * Layout for a 64bit unsigned value
 */
export declare const uint64: (property?: string) => BufferLayout.Blob;
/**
 * Layout for a Rust String type
 */
export declare const rustString: (property?: string) => BufferLayout.Layout<string>;
/**
 * Layout for an Authorized object
 */
export declare const authorized: (property?: string) => BufferLayout.Structure<Readonly<{
    staker: Uint8Array;
    withdrawer: Uint8Array;
}>>;
/**
 * Layout for a Lockup object
 */
export declare const lockup: (property?: string) => BufferLayout.Structure<Readonly<{
    custodian: Uint8Array;
    epoch: number;
    unixTimestamp: number;
}>>;
/**
 *  Layout for a VoteInit object
 */
export declare const voteInit: (property?: string) => BufferLayout.Structure<Readonly<{
    authorizedVoter: Uint8Array;
    authorizedWithdrawer: Uint8Array;
    commission: number;
    nodePubkey: Uint8Array;
}>>;
/**
 *  Layout for a VoteAuthorizeWithSeedArgs object
 */
export declare const voteAuthorizeWithSeedArgs: (property?: string) => BufferLayout.Structure<Readonly<{
    currentAuthorityDerivedKeyOwnerPubkey: Uint8Array;
    currentAuthorityDerivedKeySeed: string;
    newAuthorized: Uint8Array;
    voteAuthorizationType: number;
}>>;
export declare function getAlloc(type: any, fields: any): number;
