import { ByteArray } from './ByteArray';
/**
* The IDataOutput interface provides a set of methods for writing binary data.
* This interface is the I/O counterpart to the IDataInput interface, which
* reads binary data. The IDataOutput interface is implemented by the FileStream, Socket
* and ByteArray classes.
*
All IDataInput and IDataOutput operations are "bigEndian" by default (the most significant
* byte in the sequence is stored at the lowest or first storage address),
* and are nonblocking.
Sign extension matters only when you read data,
* not when you write it. Therefore, you do not need separate
* write methods to work with IDataInput.readUnsignedByte() and
* IDataInput.readUnsignedShort().
* In other words:
- Use
* IDataOutput.writeByte() with
* IDataInput.readUnsignedByte() and
* IDataInput.readByte().
* - Use
* IDataOutput.writeShort() with
* IDataInput.readUnsignedShort() and
* IDataInput.readShort().
*/
export interface IDataOutput
{
/**
* The byte order for the data, either the BIG_ENDIAN or LITTLE_ENDIAN
* constant from the Endian class.
*/
endian: string;
/*function set endian (type:String)*/
/**
* Used to determine whether the AMF3 or AMF0 format is used when writing or reading binary data using the
* writeObject() method. The value is a constant from the ObjectEncoding class.
*/
objectEncoding: number;
/*function set objectEncoding (version:uint)*/
/**
* Writes a Boolean value. A single byte is written according to the value parameter,
* either 1 if true or 0 if false.
* @param value A Boolean value determining which byte is written. If the parameter is true,
* 1 is written; if false, 0 is written.
* @internal throws IOError An I/O error occurred?
*/
writeBoolean (value: boolean)
/**
* Writes a byte.
* The low 8 bits of the
* parameter are used; the high 24 bits are ignored.
* @param value A byte value as an integer.
* @internal throws IOError An I/O error occurred?
*/
writeByte (value: number)
/**
* Writes a sequence of bytes from the
* specified byte array, bytes,
* starting at the byte specified by offset
* (using a zero-based index)
* with a length specified by length,
* into the file stream, byte stream, or byte array.
*
* If the length parameter is omitted, the default
* length of 0 is used and the entire buffer starting at
* offset is written.
* If the offset parameter is also omitted, the entire buffer is
* written. If the offset or length parameter
* is out of range, they are clamped to the beginning and end
* of the bytes array.
* @internal throws IOError An I/O error occurred?
*/
writeBytes (bytes: ByteArray, offset: number, length: number)
/**
* Writes an IEEE 754 double-precision (64-bit) floating point number.
* @param value A double-precision (64-bit) floating point number.
* @internal throws IOError An I/O error occurred?
*/
writeDouble (value: number)
/**
* Writes an IEEE 754 single-precision (32-bit) floating point number.
* @param value A single-precision (32-bit) floating point number.
* @internal throws IOError An I/O error occurred?
*/
writeFloat (value: number)
/**
* Writes a 32-bit signed integer.
* @param value A byte value as a signed integer.
* @internal throws IOError An I/O error occurred?
*/
writeInt (value: number)
/**
* Writes a multibyte string to the file stream, byte stream, or byte array, using the specified character set.
* @param value The string value to be written.
* @param charSet The string denoting the character set to use. Possible character set strings
* include "shift-jis", "cn-gb", "iso-8859-1", and others.
* For a complete list, see Supported Character Sets.
*/
writeMultiByte (value: string, charSet: string)
/**
* Writes an object to the file stream, byte stream, or byte array, in AMF serialized
* format.
* @param object The object to be serialized.
* @internal throws IOError An I/O error occurred?
*/
writeObject (object: any)
/**
* Writes a 16-bit integer. The low 16 bits of the parameter are used;
* the high 16 bits are ignored.
* @param value A byte value as an integer.
* @internal throws IOError An I/O error occurred?
*/
writeShort (value: number)
/**
* Writes a 32-bit unsigned integer.
* @param value A byte value as an unsigned integer.
* @internal throws IOError An I/O error occurred?
*/
writeUnsignedInt (value: number)
/**
* Writes a UTF-8 string to the file stream, byte stream, or byte array. The length of the UTF-8 string in bytes
* is written first, as a 16-bit integer, followed by the bytes representing the
* characters of the string.
* @param value The string value to be written.
* @internal throws IOError An I/O error occurred?
* @throws RangeError If the length is larger than
* 65535.
*/
writeUTF (value: string)
/**
* Writes a UTF-8 string. Similar to writeUTF(),
* but does not prefix the string with a 16-bit length word.
* @param value The string value to be written.
* @internal throws IOError An I/O error occurred?
*/
writeUTFBytes (value: string)
}