// Copyright 2015 The Vanadium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.

// This file was auto-generated by the vanadium vdl tool.
var vdl = require('vanadium').vdl;






module.exports = {};



// Types:




// Consts:



// Errors:



// Services:

  
    
function Chat(){}
module.exports.Chat = Chat;

    
      
Chat.prototype.sendMessage = function(ctx, serverCall, text) {
  throw new Error('Method SendMessage not implemented');
};
     

    
Chat.prototype._serviceDescription = {
  name: 'Chat',
  pkgPath: 'v.io/x/chat/vdl',
  doc: "",
  embeds: [],
  methods: [
    
      
    {
    name: 'SendMessage',
    doc: "// SendMessage sends a message to a user.",
    inArgs: [{
      name: 'text',
      doc: "",
      type: vdl.types.STRING
    },
    ],
    outArgs: [],
    inStream: null,
    outStream: null,
    tags: []
  },
     
  ]
};

   
 


