import { Coin, CoinAmino, CoinSDKType } from "../../../cosmos/base/v1beta1/coin";
import { Params, ParamsAmino, ParamsSDKType } from "./genesis";
import { BinaryReader, BinaryWriter } from "../../../binary";
/** MsgStake is the request message type for staking coins. */
export interface MsgStake {
    /** staker_address is the address that will stake the coins. */
    stakerAddress: string;
    /** coins is the coins that will be staked. */
    coins: Coin[];
}
export interface MsgStakeProtoMsg {
    typeUrl: "/band.restake.v1beta1.MsgStake";
    value: Uint8Array;
}
/** MsgStake is the request message type for staking coins. */
export interface MsgStakeAmino {
    /** staker_address is the address that will stake the coins. */
    staker_address?: string;
    /** coins is the coins that will be staked. */
    coins: CoinAmino[];
}
export interface MsgStakeAminoMsg {
    type: "restake/MsgStake";
    value: MsgStakeAmino;
}
/** MsgStake is the request message type for staking coins. */
export interface MsgStakeSDKType {
    staker_address: string;
    coins: CoinSDKType[];
}
/** MsgStakeResponse is the response message type for staking coins. */
export interface MsgStakeResponse {
}
export interface MsgStakeResponseProtoMsg {
    typeUrl: "/band.restake.v1beta1.MsgStakeResponse";
    value: Uint8Array;
}
/** MsgStakeResponse is the response message type for staking coins. */
export interface MsgStakeResponseAmino {
}
export interface MsgStakeResponseAminoMsg {
    type: "/band.restake.v1beta1.MsgStakeResponse";
    value: MsgStakeResponseAmino;
}
/** MsgStakeResponse is the response message type for staking coins. */
export interface MsgStakeResponseSDKType {
}
/** MsgUnstake is the request message type for unstaking coins. */
export interface MsgUnstake {
    /** staker_address is the address that will unstake the coins. */
    stakerAddress: string;
    /** coins is the coins that will be unstaked. */
    coins: Coin[];
}
export interface MsgUnstakeProtoMsg {
    typeUrl: "/band.restake.v1beta1.MsgUnstake";
    value: Uint8Array;
}
/** MsgUnstake is the request message type for unstaking coins. */
export interface MsgUnstakeAmino {
    /** staker_address is the address that will unstake the coins. */
    staker_address?: string;
    /** coins is the coins that will be unstaked. */
    coins: CoinAmino[];
}
export interface MsgUnstakeAminoMsg {
    type: "restake/MsgUnstake";
    value: MsgUnstakeAmino;
}
/** MsgUnstake is the request message type for unstaking coins. */
export interface MsgUnstakeSDKType {
    staker_address: string;
    coins: CoinSDKType[];
}
/** MsgUnstakeResponse is the response message type for unstaking coins. */
export interface MsgUnstakeResponse {
}
export interface MsgUnstakeResponseProtoMsg {
    typeUrl: "/band.restake.v1beta1.MsgUnstakeResponse";
    value: Uint8Array;
}
/** MsgUnstakeResponse is the response message type for unstaking coins. */
export interface MsgUnstakeResponseAmino {
}
export interface MsgUnstakeResponseAminoMsg {
    type: "/band.restake.v1beta1.MsgUnstakeResponse";
    value: MsgUnstakeResponseAmino;
}
/** MsgUnstakeResponse is the response message type for unstaking coins. */
export interface MsgUnstakeResponseSDKType {
}
/** MsgUpdateParams is the transaction message to update parameters. */
export interface MsgUpdateParams {
    /** authority is the address of the governance account. */
    authority: string;
    /** params is parameters to update. */
    params: Params;
}
export interface MsgUpdateParamsProtoMsg {
    typeUrl: "/band.restake.v1beta1.MsgUpdateParams";
    value: Uint8Array;
}
/** MsgUpdateParams is the transaction message to update parameters. */
export interface MsgUpdateParamsAmino {
    /** authority is the address of the governance account. */
    authority?: string;
    /** params is parameters to update. */
    params?: ParamsAmino;
}
export interface MsgUpdateParamsAminoMsg {
    type: "restake/MsgUpdateParams";
    value: MsgUpdateParamsAmino;
}
/** MsgUpdateParams is the transaction message to update parameters. */
export interface MsgUpdateParamsSDKType {
    authority: string;
    params: ParamsSDKType;
}
/** MsgUpdateParamsResponse is the response type for the Msg/UpdateParams RPC method. */
export interface MsgUpdateParamsResponse {
}
export interface MsgUpdateParamsResponseProtoMsg {
    typeUrl: "/band.restake.v1beta1.MsgUpdateParamsResponse";
    value: Uint8Array;
}
/** MsgUpdateParamsResponse is the response type for the Msg/UpdateParams RPC method. */
export interface MsgUpdateParamsResponseAmino {
}
export interface MsgUpdateParamsResponseAminoMsg {
    type: "/band.restake.v1beta1.MsgUpdateParamsResponse";
    value: MsgUpdateParamsResponseAmino;
}
/** MsgUpdateParamsResponse is the response type for the Msg/UpdateParams RPC method. */
export interface MsgUpdateParamsResponseSDKType {
}
export declare const MsgStake: {
    typeUrl: string;
    encode(message: MsgStake, writer?: BinaryWriter): BinaryWriter;
    decode(input: BinaryReader | Uint8Array, length?: number): MsgStake;
    fromPartial(object: Partial<MsgStake>): MsgStake;
    fromAmino(object: MsgStakeAmino): MsgStake;
    toAmino(message: MsgStake): MsgStakeAmino;
    fromAminoMsg(object: MsgStakeAminoMsg): MsgStake;
    toAminoMsg(message: MsgStake): MsgStakeAminoMsg;
    fromProtoMsg(message: MsgStakeProtoMsg): MsgStake;
    toProto(message: MsgStake): Uint8Array;
    toProtoMsg(message: MsgStake): MsgStakeProtoMsg;
};
export declare const MsgStakeResponse: {
    typeUrl: string;
    encode(_: MsgStakeResponse, writer?: BinaryWriter): BinaryWriter;
    decode(input: BinaryReader | Uint8Array, length?: number): MsgStakeResponse;
    fromPartial(_: Partial<MsgStakeResponse>): MsgStakeResponse;
    fromAmino(_: MsgStakeResponseAmino): MsgStakeResponse;
    toAmino(_: MsgStakeResponse): MsgStakeResponseAmino;
    fromAminoMsg(object: MsgStakeResponseAminoMsg): MsgStakeResponse;
    fromProtoMsg(message: MsgStakeResponseProtoMsg): MsgStakeResponse;
    toProto(message: MsgStakeResponse): Uint8Array;
    toProtoMsg(message: MsgStakeResponse): MsgStakeResponseProtoMsg;
};
export declare const MsgUnstake: {
    typeUrl: string;
    encode(message: MsgUnstake, writer?: BinaryWriter): BinaryWriter;
    decode(input: BinaryReader | Uint8Array, length?: number): MsgUnstake;
    fromPartial(object: Partial<MsgUnstake>): MsgUnstake;
    fromAmino(object: MsgUnstakeAmino): MsgUnstake;
    toAmino(message: MsgUnstake): MsgUnstakeAmino;
    fromAminoMsg(object: MsgUnstakeAminoMsg): MsgUnstake;
    toAminoMsg(message: MsgUnstake): MsgUnstakeAminoMsg;
    fromProtoMsg(message: MsgUnstakeProtoMsg): MsgUnstake;
    toProto(message: MsgUnstake): Uint8Array;
    toProtoMsg(message: MsgUnstake): MsgUnstakeProtoMsg;
};
export declare const MsgUnstakeResponse: {
    typeUrl: string;
    encode(_: MsgUnstakeResponse, writer?: BinaryWriter): BinaryWriter;
    decode(input: BinaryReader | Uint8Array, length?: number): MsgUnstakeResponse;
    fromPartial(_: Partial<MsgUnstakeResponse>): MsgUnstakeResponse;
    fromAmino(_: MsgUnstakeResponseAmino): MsgUnstakeResponse;
    toAmino(_: MsgUnstakeResponse): MsgUnstakeResponseAmino;
    fromAminoMsg(object: MsgUnstakeResponseAminoMsg): MsgUnstakeResponse;
    fromProtoMsg(message: MsgUnstakeResponseProtoMsg): MsgUnstakeResponse;
    toProto(message: MsgUnstakeResponse): Uint8Array;
    toProtoMsg(message: MsgUnstakeResponse): MsgUnstakeResponseProtoMsg;
};
export declare const MsgUpdateParams: {
    typeUrl: string;
    encode(message: MsgUpdateParams, writer?: BinaryWriter): BinaryWriter;
    decode(input: BinaryReader | Uint8Array, length?: number): MsgUpdateParams;
    fromPartial(object: Partial<MsgUpdateParams>): MsgUpdateParams;
    fromAmino(object: MsgUpdateParamsAmino): MsgUpdateParams;
    toAmino(message: MsgUpdateParams): MsgUpdateParamsAmino;
    fromAminoMsg(object: MsgUpdateParamsAminoMsg): MsgUpdateParams;
    toAminoMsg(message: MsgUpdateParams): MsgUpdateParamsAminoMsg;
    fromProtoMsg(message: MsgUpdateParamsProtoMsg): MsgUpdateParams;
    toProto(message: MsgUpdateParams): Uint8Array;
    toProtoMsg(message: MsgUpdateParams): MsgUpdateParamsProtoMsg;
};
export declare const MsgUpdateParamsResponse: {
    typeUrl: string;
    encode(_: MsgUpdateParamsResponse, writer?: BinaryWriter): BinaryWriter;
    decode(input: BinaryReader | Uint8Array, length?: number): MsgUpdateParamsResponse;
    fromPartial(_: Partial<MsgUpdateParamsResponse>): MsgUpdateParamsResponse;
    fromAmino(_: MsgUpdateParamsResponseAmino): MsgUpdateParamsResponse;
    toAmino(_: MsgUpdateParamsResponse): MsgUpdateParamsResponseAmino;
    fromAminoMsg(object: MsgUpdateParamsResponseAminoMsg): MsgUpdateParamsResponse;
    fromProtoMsg(message: MsgUpdateParamsResponseProtoMsg): MsgUpdateParamsResponse;
    toProto(message: MsgUpdateParamsResponse): Uint8Array;
    toProtoMsg(message: MsgUpdateParamsResponse): MsgUpdateParamsResponseProtoMsg;
};
