/// <reference types="node" />
import { MsgCwStoreCode as BaseMsgCwStoreCode } from '@routerprotocol/chain-api/routerprotocol/routerchain/rwasm/tx_pb';
import { MsgBase } from '../../MsgBase';
export declare namespace MsgCwStoreCode {
    interface Params {
        sender: string;
        wasm: Buffer;
        amount?: {
            denom: string;
            amount: string;
        };
        instantiatePermission?: number;
    }
    interface DirectSign {
        type: '/routerprotocol.routerchain.rwasm.MsgCwStoreCode';
        message: BaseMsgCwStoreCode;
    }
    interface Data extends BaseMsgCwStoreCode.AsObject {
        '@type': '/routerprotocol.routerchain.rwasm.MsgCwStoreCode';
    }
    interface Amino extends BaseMsgCwStoreCode.AsObject {
        type: 'rwasm/CwStoreCode';
    }
    interface Web3 extends BaseMsgCwStoreCode.AsObject {
        '@type': '/routerprotocol.routerchain.rwasm.MsgCwStoreCode';
    }
    type Proto = BaseMsgCwStoreCode;
}
/**
 * @group Message
 */
export default class MsgCwStoreCode extends MsgBase<MsgCwStoreCode.Params, MsgCwStoreCode.Data, MsgCwStoreCode.Proto, MsgCwStoreCode.Amino, MsgCwStoreCode.DirectSign> {
    /**
     *
     * @param params
     * @returns
     */
    static fromJSON(params: MsgCwStoreCode.Params): MsgCwStoreCode;
    /**
     *
     * @returns
     */
    toProto(): MsgCwStoreCode.Proto;
    /**
     *
     * @returns
     */
    toData(): MsgCwStoreCode.Data;
    /**
     *
     * @returns
     */
    toAmino(): MsgCwStoreCode.Amino;
    /**
     *
     * @returns
     */
    toWeb3(): MsgCwStoreCode.Web3;
    /**
     *
     * @returns
     */
    toDirectSign(): MsgCwStoreCode.DirectSign;
}
