import { MsgUndelegate as BaseMsgUndelegate } from '@routerprotocol/chain-api/cosmos/staking/v1beta1/tx_pb';
import { MsgBase } from '../../MsgBase';
export declare namespace MsgUndelegate {
    interface Params {
        amount: {
            denom: string;
            amount: string;
        };
        validatorAddress: string;
        routerAddress: string;
    }
    interface DirectSign {
        type: '/cosmos.staking.v1beta1.MsgUndelegate';
        message: BaseMsgUndelegate;
    }
    interface Data extends BaseMsgUndelegate.AsObject {
        '@type': '/cosmos.staking.v1beta1.MsgUndelegate';
    }
    interface Amino extends BaseMsgUndelegate.AsObject {
        type: 'cosmos-sdk/MsgUndelegate';
    }
    interface Web3 extends BaseMsgUndelegate.AsObject {
        '@type': '/cosmos.authz.v1beta1.MsgUndelegate';
    }
    type Proto = BaseMsgUndelegate;
}
/**
 * @group Message
 */
export default class MsgUndelegate extends MsgBase<MsgUndelegate.Params, MsgUndelegate.Data, MsgUndelegate.Proto, MsgUndelegate.Amino, MsgUndelegate.DirectSign> {
    static fromJSON(params: MsgUndelegate.Params): MsgUndelegate;
    toProto(): MsgUndelegate.Proto;
    toData(): MsgUndelegate.Data;
    toAmino(): MsgUndelegate.Amino;
    toWeb3(): MsgUndelegate.Web3;
    toDirectSign(): MsgUndelegate.DirectSign;
}
