import { OutputStream } from "./OutputStream"; import { Status } from "./Status"; /** * A writer which automatically writes to the given output stream with the * contents of provided Blob objects. */ export class BlobWriter { /** * @param stream The stream that data will be written to. */ constructor(stream: OutputStream); /** * Sends the contents of the given blob over the underlying stream. * @param blob The blob to send. */ sendBlob(blob: Blob): void; /** * Signals that no further text will be sent, effectively closing the * stream. */ sendEnd(): void; /** * Fired for received data, if acknowledged by the server. * @event * @param status The status of the operation. */ onack: null | ((statue: Status) => void); /** * Fired when an error occurs reading a blob passed to sendBlob(). The transfer for the * the given blob will cease, but the stream will remain open. * @event * @param blob The blob that was being read when the error occurred. * @param offset The offset of the failed read attempt within the blob, in bytes. * @param error The error that occurred. */ onerror: null | ((blob: Blob, offset: number, error: Error) => void); /** * Fired for each successfully-read chunk of data as a blob is being sent via sendBlob(). * @event * @param blob The blob that is being read. * @param offset The offset of the read that just succeeded. */ onprogress: null | ((blob: Blob, offset: number) => void); /** * Fired when a blob passed to sendBlob() has finished being sent. * @event * @param blob The blob that was sent. */ oncomplete: null | ((blob: Blob) => void); }