import { Any, AnyProtoMsg, AnyAmino, AnySDKType } from "../../../google/protobuf/any";
import { Coin, CoinAmino, CoinSDKType } from "../../../cosmos/base/v1beta1/coin";
import { Params, ParamsAmino, ParamsSDKType } from "./genesis";
import { GroupTransitionSignatureOrder, GroupTransitionSignatureOrderProtoMsg, GroupTransitionSignatureOrderSDKType } from "./bandtss";
import { TextSignatureOrder, TextSignatureOrderProtoMsg, TextSignatureOrderSDKType } from "../../tss/v1beta1/tss";
import { BinaryReader, BinaryWriter } from "../../../binary";
/** MsgRequestSignature is a request message used for initiating the signing process. */
export interface MsgRequestSignature {
    /** content is the signature order of this request signature message. */
    content?: GroupTransitionSignatureOrder | TextSignatureOrder | Any | undefined;
    /** memo is the additional note of the message. */
    memo: string;
    /** fee_limit is the maximum tokens that will be paid for this request. */
    feeLimit: Coin[];
    /** sender is the requester of the signing process. */
    sender: string;
}
export interface MsgRequestSignatureProtoMsg {
    typeUrl: "/band.bandtss.v1beta1.MsgRequestSignature";
    value: Uint8Array;
}
export type MsgRequestSignatureEncoded = Omit<MsgRequestSignature, "content"> & {
    /** content is the signature order of this request signature message. */ content?: GroupTransitionSignatureOrderProtoMsg | TextSignatureOrderProtoMsg | AnyProtoMsg | undefined;
};
/** MsgRequestSignature is a request message used for initiating the signing process. */
export interface MsgRequestSignatureAmino {
    /** content is the signature order of this request signature message. */
    content?: AnyAmino;
    /** memo is the additional note of the message. */
    memo?: string;
    /** fee_limit is the maximum tokens that will be paid for this request. */
    fee_limit?: CoinAmino[];
    /** sender is the requester of the signing process. */
    sender?: string;
}
export interface MsgRequestSignatureAminoMsg {
    type: "bandtss/MsgRequestSignature";
    value: MsgRequestSignatureAmino;
}
/** MsgRequestSignature is a request message used for initiating the signing process. */
export interface MsgRequestSignatureSDKType {
    content?: GroupTransitionSignatureOrderSDKType | TextSignatureOrderSDKType | AnySDKType | undefined;
    memo: string;
    fee_limit: CoinSDKType[];
    sender: string;
}
/** MsgRequestSignatureResponse is response data for MsgRequestSignature message */
export interface MsgRequestSignatureResponse {
}
export interface MsgRequestSignatureResponseProtoMsg {
    typeUrl: "/band.bandtss.v1beta1.MsgRequestSignatureResponse";
    value: Uint8Array;
}
/** MsgRequestSignatureResponse is response data for MsgRequestSignature message */
export interface MsgRequestSignatureResponseAmino {
}
export interface MsgRequestSignatureResponseAminoMsg {
    type: "/band.bandtss.v1beta1.MsgRequestSignatureResponse";
    value: MsgRequestSignatureResponseAmino;
}
/** MsgRequestSignatureResponse is response data for MsgRequestSignature message */
export interface MsgRequestSignatureResponseSDKType {
}
/** MsgActivate is a message used to activate the status of the sender. */
export interface MsgActivate {
    /** address is the signer of this message, who must be a member of the group. */
    sender: string;
    /** group_id is the group id of the member. */
    groupId: bigint;
}
export interface MsgActivateProtoMsg {
    typeUrl: "/band.bandtss.v1beta1.MsgActivate";
    value: Uint8Array;
}
/** MsgActivate is a message used to activate the status of the sender. */
export interface MsgActivateAmino {
    /** address is the signer of this message, who must be a member of the group. */
    sender?: string;
    /** group_id is the group id of the member. */
    group_id?: string;
}
export interface MsgActivateAminoMsg {
    type: "bandtss/MsgActivate";
    value: MsgActivateAmino;
}
/** MsgActivate is a message used to activate the status of the sender. */
export interface MsgActivateSDKType {
    sender: string;
    group_id: bigint;
}
/** MsgActivateResponse is response data for MsgActivate message */
export interface MsgActivateResponse {
}
export interface MsgActivateResponseProtoMsg {
    typeUrl: "/band.bandtss.v1beta1.MsgActivateResponse";
    value: Uint8Array;
}
/** MsgActivateResponse is response data for MsgActivate message */
export interface MsgActivateResponseAmino {
}
export interface MsgActivateResponseAminoMsg {
    type: "/band.bandtss.v1beta1.MsgActivateResponse";
    value: MsgActivateResponseAmino;
}
/** MsgActivateResponse is response data for MsgActivate message */
export interface MsgActivateResponseSDKType {
}
/** MsgUpdateParams is the Msg/UpdateParams request type. */
export interface MsgUpdateParams {
    /** params defines the x/tss parameters to update. */
    params: Params;
    /** authority is the address that controls the module (defaults to x/gov unless overwritten). */
    authority: string;
}
export interface MsgUpdateParamsProtoMsg {
    typeUrl: "/band.bandtss.v1beta1.MsgUpdateParams";
    value: Uint8Array;
}
/** MsgUpdateParams is the Msg/UpdateParams request type. */
export interface MsgUpdateParamsAmino {
    /** params defines the x/tss parameters to update. */
    params?: ParamsAmino;
    /** authority is the address that controls the module (defaults to x/gov unless overwritten). */
    authority?: string;
}
export interface MsgUpdateParamsAminoMsg {
    type: "bandtss/MsgUpdateParams";
    value: MsgUpdateParamsAmino;
}
/** MsgUpdateParams is the Msg/UpdateParams request type. */
export interface MsgUpdateParamsSDKType {
    params: ParamsSDKType;
    authority: string;
}
/** MsgUpdateParamsResponse defines the response structure for executing a MsgUpdateParams message. */
export interface MsgUpdateParamsResponse {
}
export interface MsgUpdateParamsResponseProtoMsg {
    typeUrl: "/band.bandtss.v1beta1.MsgUpdateParamsResponse";
    value: Uint8Array;
}
/** MsgUpdateParamsResponse defines the response structure for executing a MsgUpdateParams message. */
export interface MsgUpdateParamsResponseAmino {
}
export interface MsgUpdateParamsResponseAminoMsg {
    type: "/band.bandtss.v1beta1.MsgUpdateParamsResponse";
    value: MsgUpdateParamsResponseAmino;
}
/** MsgUpdateParamsResponse defines the response structure for executing a MsgUpdateParams message. */
export interface MsgUpdateParamsResponseSDKType {
}
/** MsgTransitionGroup is the Msg/TransitionGroup request type. */
export interface MsgTransitionGroup {
    /** members is a list of members in this group. */
    members: string[];
    /** threshold is a minimum number of members required to produce a signature. */
    threshold: bigint;
    /** exec_time is the time that will be substituted in place of the group. */
    execTime: Date;
    /** authority is the address that controls the module (defaults to x/gov unless overwritten). */
    authority: string;
}
export interface MsgTransitionGroupProtoMsg {
    typeUrl: "/band.bandtss.v1beta1.MsgTransitionGroup";
    value: Uint8Array;
}
/** MsgTransitionGroup is the Msg/TransitionGroup request type. */
export interface MsgTransitionGroupAmino {
    /** members is a list of members in this group. */
    members?: string[];
    /** threshold is a minimum number of members required to produce a signature. */
    threshold?: string;
    /** exec_time is the time that will be substituted in place of the group. */
    exec_time?: string;
    /** authority is the address that controls the module (defaults to x/gov unless overwritten). */
    authority?: string;
}
export interface MsgTransitionGroupAminoMsg {
    type: "bandtss/MsgTransitionGroup";
    value: MsgTransitionGroupAmino;
}
/** MsgTransitionGroup is the Msg/TransitionGroup request type. */
export interface MsgTransitionGroupSDKType {
    members: string[];
    threshold: bigint;
    exec_time: Date;
    authority: string;
}
/** MsgTransitionGroupResponse is the Msg/TransitionGroup response type. */
export interface MsgTransitionGroupResponse {
}
export interface MsgTransitionGroupResponseProtoMsg {
    typeUrl: "/band.bandtss.v1beta1.MsgTransitionGroupResponse";
    value: Uint8Array;
}
/** MsgTransitionGroupResponse is the Msg/TransitionGroup response type. */
export interface MsgTransitionGroupResponseAmino {
}
export interface MsgTransitionGroupResponseAminoMsg {
    type: "/band.bandtss.v1beta1.MsgTransitionGroupResponse";
    value: MsgTransitionGroupResponseAmino;
}
/** MsgTransitionGroupResponse is the Msg/TransitionGroup response type. */
export interface MsgTransitionGroupResponseSDKType {
}
/** MsgForceTransitionGroup is the Msg/ForceTransitionGroup request type. */
export interface MsgForceTransitionGroup {
    /** incoming_group_id is the ID of the group that the module want to transition to. */
    incomingGroupId: bigint;
    /** exec_time is the time that will be substituted in place of the group. */
    execTime: Date;
    /** authority is the address that controls the module (defaults to x/gov unless overwritten). */
    authority: string;
}
export interface MsgForceTransitionGroupProtoMsg {
    typeUrl: "/band.bandtss.v1beta1.MsgForceTransitionGroup";
    value: Uint8Array;
}
/** MsgForceTransitionGroup is the Msg/ForceTransitionGroup request type. */
export interface MsgForceTransitionGroupAmino {
    /** incoming_group_id is the ID of the group that the module want to transition to. */
    incoming_group_id?: string;
    /** exec_time is the time that will be substituted in place of the group. */
    exec_time?: string;
    /** authority is the address that controls the module (defaults to x/gov unless overwritten). */
    authority?: string;
}
export interface MsgForceTransitionGroupAminoMsg {
    type: "bandtss/ForceTransitionGroup";
    value: MsgForceTransitionGroupAmino;
}
/** MsgForceTransitionGroup is the Msg/ForceTransitionGroup request type. */
export interface MsgForceTransitionGroupSDKType {
    incoming_group_id: bigint;
    exec_time: Date;
    authority: string;
}
/** MsgForceTransitionGroupResponse is the Msg/ForceTransitionGroup response type. */
export interface MsgForceTransitionGroupResponse {
}
export interface MsgForceTransitionGroupResponseProtoMsg {
    typeUrl: "/band.bandtss.v1beta1.MsgForceTransitionGroupResponse";
    value: Uint8Array;
}
/** MsgForceTransitionGroupResponse is the Msg/ForceTransitionGroup response type. */
export interface MsgForceTransitionGroupResponseAmino {
}
export interface MsgForceTransitionGroupResponseAminoMsg {
    type: "/band.bandtss.v1beta1.MsgForceTransitionGroupResponse";
    value: MsgForceTransitionGroupResponseAmino;
}
/** MsgForceTransitionGroupResponse is the Msg/ForceTransitionGroup response type. */
export interface MsgForceTransitionGroupResponseSDKType {
}
export declare const MsgRequestSignature: {
    typeUrl: string;
    encode(message: MsgRequestSignature, writer?: BinaryWriter): BinaryWriter;
    decode(input: BinaryReader | Uint8Array, length?: number): MsgRequestSignature;
    fromPartial(object: Partial<MsgRequestSignature>): MsgRequestSignature;
    fromAmino(object: MsgRequestSignatureAmino): MsgRequestSignature;
    toAmino(message: MsgRequestSignature): MsgRequestSignatureAmino;
    fromAminoMsg(object: MsgRequestSignatureAminoMsg): MsgRequestSignature;
    toAminoMsg(message: MsgRequestSignature): MsgRequestSignatureAminoMsg;
    fromProtoMsg(message: MsgRequestSignatureProtoMsg): MsgRequestSignature;
    toProto(message: MsgRequestSignature): Uint8Array;
    toProtoMsg(message: MsgRequestSignature): MsgRequestSignatureProtoMsg;
};
export declare const MsgRequestSignatureResponse: {
    typeUrl: string;
    encode(_: MsgRequestSignatureResponse, writer?: BinaryWriter): BinaryWriter;
    decode(input: BinaryReader | Uint8Array, length?: number): MsgRequestSignatureResponse;
    fromPartial(_: Partial<MsgRequestSignatureResponse>): MsgRequestSignatureResponse;
    fromAmino(_: MsgRequestSignatureResponseAmino): MsgRequestSignatureResponse;
    toAmino(_: MsgRequestSignatureResponse): MsgRequestSignatureResponseAmino;
    fromAminoMsg(object: MsgRequestSignatureResponseAminoMsg): MsgRequestSignatureResponse;
    fromProtoMsg(message: MsgRequestSignatureResponseProtoMsg): MsgRequestSignatureResponse;
    toProto(message: MsgRequestSignatureResponse): Uint8Array;
    toProtoMsg(message: MsgRequestSignatureResponse): MsgRequestSignatureResponseProtoMsg;
};
export declare const MsgActivate: {
    typeUrl: string;
    encode(message: MsgActivate, writer?: BinaryWriter): BinaryWriter;
    decode(input: BinaryReader | Uint8Array, length?: number): MsgActivate;
    fromPartial(object: Partial<MsgActivate>): MsgActivate;
    fromAmino(object: MsgActivateAmino): MsgActivate;
    toAmino(message: MsgActivate): MsgActivateAmino;
    fromAminoMsg(object: MsgActivateAminoMsg): MsgActivate;
    toAminoMsg(message: MsgActivate): MsgActivateAminoMsg;
    fromProtoMsg(message: MsgActivateProtoMsg): MsgActivate;
    toProto(message: MsgActivate): Uint8Array;
    toProtoMsg(message: MsgActivate): MsgActivateProtoMsg;
};
export declare const MsgActivateResponse: {
    typeUrl: string;
    encode(_: MsgActivateResponse, writer?: BinaryWriter): BinaryWriter;
    decode(input: BinaryReader | Uint8Array, length?: number): MsgActivateResponse;
    fromPartial(_: Partial<MsgActivateResponse>): MsgActivateResponse;
    fromAmino(_: MsgActivateResponseAmino): MsgActivateResponse;
    toAmino(_: MsgActivateResponse): MsgActivateResponseAmino;
    fromAminoMsg(object: MsgActivateResponseAminoMsg): MsgActivateResponse;
    fromProtoMsg(message: MsgActivateResponseProtoMsg): MsgActivateResponse;
    toProto(message: MsgActivateResponse): Uint8Array;
    toProtoMsg(message: MsgActivateResponse): MsgActivateResponseProtoMsg;
};
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;
};
export declare const MsgTransitionGroup: {
    typeUrl: string;
    encode(message: MsgTransitionGroup, writer?: BinaryWriter): BinaryWriter;
    decode(input: BinaryReader | Uint8Array, length?: number): MsgTransitionGroup;
    fromPartial(object: Partial<MsgTransitionGroup>): MsgTransitionGroup;
    fromAmino(object: MsgTransitionGroupAmino): MsgTransitionGroup;
    toAmino(message: MsgTransitionGroup): MsgTransitionGroupAmino;
    fromAminoMsg(object: MsgTransitionGroupAminoMsg): MsgTransitionGroup;
    toAminoMsg(message: MsgTransitionGroup): MsgTransitionGroupAminoMsg;
    fromProtoMsg(message: MsgTransitionGroupProtoMsg): MsgTransitionGroup;
    toProto(message: MsgTransitionGroup): Uint8Array;
    toProtoMsg(message: MsgTransitionGroup): MsgTransitionGroupProtoMsg;
};
export declare const MsgTransitionGroupResponse: {
    typeUrl: string;
    encode(_: MsgTransitionGroupResponse, writer?: BinaryWriter): BinaryWriter;
    decode(input: BinaryReader | Uint8Array, length?: number): MsgTransitionGroupResponse;
    fromPartial(_: Partial<MsgTransitionGroupResponse>): MsgTransitionGroupResponse;
    fromAmino(_: MsgTransitionGroupResponseAmino): MsgTransitionGroupResponse;
    toAmino(_: MsgTransitionGroupResponse): MsgTransitionGroupResponseAmino;
    fromAminoMsg(object: MsgTransitionGroupResponseAminoMsg): MsgTransitionGroupResponse;
    fromProtoMsg(message: MsgTransitionGroupResponseProtoMsg): MsgTransitionGroupResponse;
    toProto(message: MsgTransitionGroupResponse): Uint8Array;
    toProtoMsg(message: MsgTransitionGroupResponse): MsgTransitionGroupResponseProtoMsg;
};
export declare const MsgForceTransitionGroup: {
    typeUrl: string;
    encode(message: MsgForceTransitionGroup, writer?: BinaryWriter): BinaryWriter;
    decode(input: BinaryReader | Uint8Array, length?: number): MsgForceTransitionGroup;
    fromPartial(object: Partial<MsgForceTransitionGroup>): MsgForceTransitionGroup;
    fromAmino(object: MsgForceTransitionGroupAmino): MsgForceTransitionGroup;
    toAmino(message: MsgForceTransitionGroup): MsgForceTransitionGroupAmino;
    fromAminoMsg(object: MsgForceTransitionGroupAminoMsg): MsgForceTransitionGroup;
    toAminoMsg(message: MsgForceTransitionGroup): MsgForceTransitionGroupAminoMsg;
    fromProtoMsg(message: MsgForceTransitionGroupProtoMsg): MsgForceTransitionGroup;
    toProto(message: MsgForceTransitionGroup): Uint8Array;
    toProtoMsg(message: MsgForceTransitionGroup): MsgForceTransitionGroupProtoMsg;
};
export declare const MsgForceTransitionGroupResponse: {
    typeUrl: string;
    encode(_: MsgForceTransitionGroupResponse, writer?: BinaryWriter): BinaryWriter;
    decode(input: BinaryReader | Uint8Array, length?: number): MsgForceTransitionGroupResponse;
    fromPartial(_: Partial<MsgForceTransitionGroupResponse>): MsgForceTransitionGroupResponse;
    fromAmino(_: MsgForceTransitionGroupResponseAmino): MsgForceTransitionGroupResponse;
    toAmino(_: MsgForceTransitionGroupResponse): MsgForceTransitionGroupResponseAmino;
    fromAminoMsg(object: MsgForceTransitionGroupResponseAminoMsg): MsgForceTransitionGroupResponse;
    fromProtoMsg(message: MsgForceTransitionGroupResponseProtoMsg): MsgForceTransitionGroupResponse;
    toProto(message: MsgForceTransitionGroupResponse): Uint8Array;
    toProtoMsg(message: MsgForceTransitionGroupResponse): MsgForceTransitionGroupResponseProtoMsg;
};
export declare const Content_InterfaceDecoder: (input: BinaryReader | Uint8Array) => GroupTransitionSignatureOrder | TextSignatureOrder | Any;
export declare const Content_FromAmino: (content: AnyAmino) => Any;
export declare const Content_ToAmino: (content: Any) => AnyAmino;
