goog.provide("node.tty_posix.WriteStream");

goog.require("node.buffer.Buffer");

/**
 * @constructor
 */
node.tty_posix.WriteStream = function() {};

/**
 * @type {node.buffer.Buffer|null}
 */
node.tty_posix.WriteStream.prototype.bufferSize = null;

/**
 * @type {string|null}
 */
node.tty_posix.WriteStream.prototype.fd = null;

/**
 * @type {string|null}
 */
node.tty_posix.WriteStream.prototype.type = null;

/**
 * @type {string|null}
 */
node.tty_posix.WriteStream.prototype.allowHalfOpen = null;

/**
 * @type {boolean|null}
 */
node.tty_posix.WriteStream.prototype.isTTY = null;

/**
 * @param {string} x
 * @param {string} y
 */
node.tty_posix.WriteStream.prototype.cursorTo = function(x, y) {
  return node.tty_posix.WriteStream.core_.cursorTo(x, y);
};

/**
 * @param {string} dx
 * @param {string} dy
 */
node.tty_posix.WriteStream.prototype.moveCursor = function(dx, dy) {
  return node.tty_posix.WriteStream.core_.moveCursor(dx, dy);
};

/**
 * @param {string} dir
 */
node.tty_posix.WriteStream.prototype.clearLine = function(dir) {
  return node.tty_posix.WriteStream.core_.clearLine(dir);
};

/**
 * @param {string} fd
 * @param {string} type
 */
node.tty_posix.WriteStream.prototype.open = function(fd, type) {
  return node.tty_posix.WriteStream.core_.open(fd, type);
};

/**
 * @param {string} data
 * @param {string} [fd]
 * @param {string} [cb]
 */
node.tty_posix.WriteStream.prototype.write = function(data, [fd], [cb]) {
  return node.tty_posix.WriteStream.core_.write(data, [fd], [cb]);
};

/**
 *
 */
node.tty_posix.WriteStream.prototype.flush = function() {
  return node.tty_posix.WriteStream.core_.flush();
};

/**
 * @param {string} encoding
 */
node.tty_posix.WriteStream.prototype.setEncoding = function(encoding) {
  return node.tty_posix.WriteStream.core_.setEncoding(encoding);
};

/**
 *
 */
node.tty_posix.WriteStream.prototype.connect = function() {
  return node.tty_posix.WriteStream.core_.connect();
};

/**
 *
 */
node.tty_posix.WriteStream.prototype.address = function() {
  return node.tty_posix.WriteStream.core_.address();
};

/**
 * @param {string} v
 */
node.tty_posix.WriteStream.prototype.setNoDelay = function(v) {
  return node.tty_posix.WriteStream.core_.setNoDelay(v);
};

/**
 * @param {string} enable
 * @param {string} time
 */
node.tty_posix.WriteStream.prototype.setKeepAlive = function(enable, time) {
  return node.tty_posix.WriteStream.core_.setKeepAlive(enable, time);
};

/**
 * @param {string} msecs
 * @param {function(Error?,...[*]):undefined} callback
 */
node.tty_posix.WriteStream.prototype.setTimeout = function(msecs, callback) {
  return node.tty_posix.WriteStream.core_.setTimeout(msecs, callback);
};

/**
 *
 */
node.tty_posix.WriteStream.prototype.pause = function() {
  return node.tty_posix.WriteStream.core_.pause();
};

/**
 *
 */
node.tty_posix.WriteStream.prototype.resume = function() {
  return node.tty_posix.WriteStream.core_.resume();
};

/**
 *
 */
node.tty_posix.WriteStream.prototype.destroySoon = function() {
  return node.tty_posix.WriteStream.core_.destroySoon();
};

/**
 * @param {string} exception
 */
node.tty_posix.WriteStream.prototype.destroy = function(exception) {
  return node.tty_posix.WriteStream.core_.destroy(exception);
};

/**
 * @param {string} data
 * @param {string} encoding
 */
node.tty_posix.WriteStream.prototype.end = function(data, encoding) {
  return node.tty_posix.WriteStream.core_.end(data, encoding);
};

/**
 * @param {string} dest
 * @param {Object} options
 */
node.tty_posix.WriteStream.prototype.pipe = function(dest, options) {
  return node.tty_posix.WriteStream.core_.pipe(dest, options);
};

/**
 * @param {string} n
 */
node.tty_posix.WriteStream.prototype.setMaxListeners = function(n) {
  return node.tty_posix.WriteStream.core_.setMaxListeners(n);
};

/**
 * @param {string} type
 */
node.tty_posix.WriteStream.prototype.emit = function(type) {
  return node.tty_posix.WriteStream.core_.emit(type);
};

/**
 * @param {string} type
 * @param {string} listener
 */
node.tty_posix.WriteStream.prototype.addListener = function(type, listener) {
  return node.tty_posix.WriteStream.core_.addListener(type, listener);
};

/**
 * @param {string} type
 * @param {string} listener
 */
node.tty_posix.WriteStream.prototype.on = function(type, listener) {
  return node.tty_posix.WriteStream.core_.on(type, listener);
};

/**
 * @param {string} type
 * @param {string} listener
 */
node.tty_posix.WriteStream.prototype.once = function(type, listener) {
  return node.tty_posix.WriteStream.core_.once(type, listener);
};

/**
 * @param {string} type
 * @param {string} listener
 */
node.tty_posix.WriteStream.prototype.removeListener = function(type, listener) {
  return node.tty_posix.WriteStream.core_.removeListener(type, listener);
};

/**
 * @param {string} type
 */
node.tty_posix.WriteStream.prototype.removeAllListeners = function(type) {
  return node.tty_posix.WriteStream.core_.removeAllListeners(type);
};

/**
 * @param {string} type
 */
node.tty_posix.WriteStream.prototype.listeners = function(type) {
  return node.tty_posix.WriteStream.core_.listeners(type);
};


/**
 * @private
 * @type {*}
 */
node.tty_posix.WriteStream.core_ = require("tty_posix").WriteStream;