import * as BufferLayout from '@solana/buffer-layout';
import * as types from '../config/types';
interface InstructionInputData {
    readonly instruction: number;
}
declare type InstructionLayoutType<TInputData extends InstructionInputData> = {
    index: number;
    layout: BufferLayout.Layout<TInputData>;
};
declare type SystemInstructionInputData = {
    CreateWithSeed: InstructionInputData & {
        base: Uint8Array;
        lamports: number;
        programId: Uint8Array;
        seed: string;
        space: number;
    };
    Transfer: InstructionInputData & {
        lamports: number;
    };
};
declare const SystemProgramLayout: {
    Transfer: {
        index: number;
        layout: BufferLayout.Structure<InstructionInputData & {
            lamports: number;
        }>;
    };
    createWithSeed: {
        index: number;
        layout: BufferLayout.Structure<InstructionInputData & {
            base: Uint8Array;
            lamports: number;
            programId: Uint8Array;
            seed: string;
            space: number;
        }>;
    };
};
declare type StakeInstructionInputData = {
    Initialize: Readonly<{
        instruction: number;
        authorized: types.AuthorizedRaw;
        lockup: types.LockupRaw;
    }>;
    Deactivate: InstructionInputData;
    Delegate: InstructionInputData;
    Withdraw: Readonly<{
        instruction: number;
        lamports: number;
    }>;
};
declare const StakeProgramLayout: {
    Initialize: {
        index: number;
        layout: BufferLayout.Structure<Readonly<{
            instruction: number;
            authorized: types.AuthorizedRaw;
            lockup: types.LockupRaw;
        }>>;
    };
    Delegate: {
        index: number;
        layout: BufferLayout.Structure<InstructionInputData>;
    };
    Withdraw: {
        index: number;
        layout: BufferLayout.Structure<Readonly<{
            instruction: number;
            lamports: number;
        }>>;
    };
    Deactivate: {
        index: number;
        layout: BufferLayout.Structure<InstructionInputData>;
    };
};
export { InstructionInputData, InstructionLayoutType, SystemInstructionInputData, StakeInstructionInputData, SystemProgramLayout, StakeProgramLayout, };
