import { MsgExecuteCwContract as BaseMsgExecuteCwContract } from '@routerprotocol/chain-api/routerprotocol/routerchain/rwasm/tx_pb';
import { MsgBase } from '../../MsgBase';
export declare namespace MsgExecuteCwContract {
    interface Params {
        funds?: {
            denom: string;
            amount: string;
        } | {
            denom: string;
            amount: string;
        }[];
        sender: string;
        contractAddress: string;
        msg: Object;
    }
    interface DirectSign {
        type: '/routerprotocol.routerchain.rwasm.MsgExecuteCwContract';
        message: BaseMsgExecuteCwContract;
    }
    interface Data extends BaseMsgExecuteCwContract.AsObject {
        '@type': '/routerprotocol.routerchain.rwasm.MsgExecuteCwContract';
    }
    interface Amino extends BaseMsgExecuteCwContract.AsObject {
        type: 'rwasm/ExecuteCwContract';
    }
    interface Web3 extends BaseMsgExecuteCwContract.AsObject {
        '@type': '/routerprotocol.routerchain.rwasm.MsgExecuteCwContract';
    }
    type Proto = BaseMsgExecuteCwContract;
}
/**
 * @group Message
 */
export default class MsgExecuteCwContract extends MsgBase<MsgExecuteCwContract.Params, MsgExecuteCwContract.Data, MsgExecuteCwContract.Proto, MsgExecuteCwContract.Amino, MsgExecuteCwContract.DirectSign> {
    static fromJSON(params: MsgExecuteCwContract.Params): MsgExecuteCwContract;
    toProto(): MsgExecuteCwContract.Proto;
    toData(): MsgExecuteCwContract.Data;
    toAmino(): MsgExecuteCwContract.Amino;
    toWeb3(): MsgExecuteCwContract.Web3;
    toDirectSign(): MsgExecuteCwContract.DirectSign;
}
