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