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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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