mirror of
https://github.com/denoland/deno
synced 2024-11-05 18:45:24 +00:00
1349 lines
42 KiB
TypeScript
1349 lines
42 KiB
TypeScript
// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license.
|
||
|
||
// deno-lint-ignore-file no-explicit-any no-var
|
||
|
||
/// <reference no-default-lib="true" />
|
||
/// <reference lib="esnext" />
|
||
|
||
/** @category Platform */
|
||
declare interface DOMException extends Error {
|
||
readonly name: string;
|
||
readonly message: string;
|
||
readonly code: number;
|
||
readonly INDEX_SIZE_ERR: 1;
|
||
readonly DOMSTRING_SIZE_ERR: 2;
|
||
readonly HIERARCHY_REQUEST_ERR: 3;
|
||
readonly WRONG_DOCUMENT_ERR: 4;
|
||
readonly INVALID_CHARACTER_ERR: 5;
|
||
readonly NO_DATA_ALLOWED_ERR: 6;
|
||
readonly NO_MODIFICATION_ALLOWED_ERR: 7;
|
||
readonly NOT_FOUND_ERR: 8;
|
||
readonly NOT_SUPPORTED_ERR: 9;
|
||
readonly INUSE_ATTRIBUTE_ERR: 10;
|
||
readonly INVALID_STATE_ERR: 11;
|
||
readonly SYNTAX_ERR: 12;
|
||
readonly INVALID_MODIFICATION_ERR: 13;
|
||
readonly NAMESPACE_ERR: 14;
|
||
readonly INVALID_ACCESS_ERR: 15;
|
||
readonly VALIDATION_ERR: 16;
|
||
readonly TYPE_MISMATCH_ERR: 17;
|
||
readonly SECURITY_ERR: 18;
|
||
readonly NETWORK_ERR: 19;
|
||
readonly ABORT_ERR: 20;
|
||
readonly URL_MISMATCH_ERR: 21;
|
||
readonly QUOTA_EXCEEDED_ERR: 22;
|
||
readonly TIMEOUT_ERR: 23;
|
||
readonly INVALID_NODE_TYPE_ERR: 24;
|
||
readonly DATA_CLONE_ERR: 25;
|
||
}
|
||
|
||
/** @category Platform */
|
||
declare var DOMException: {
|
||
readonly prototype: DOMException;
|
||
new (message?: string, name?: string): DOMException;
|
||
readonly INDEX_SIZE_ERR: 1;
|
||
readonly DOMSTRING_SIZE_ERR: 2;
|
||
readonly HIERARCHY_REQUEST_ERR: 3;
|
||
readonly WRONG_DOCUMENT_ERR: 4;
|
||
readonly INVALID_CHARACTER_ERR: 5;
|
||
readonly NO_DATA_ALLOWED_ERR: 6;
|
||
readonly NO_MODIFICATION_ALLOWED_ERR: 7;
|
||
readonly NOT_FOUND_ERR: 8;
|
||
readonly NOT_SUPPORTED_ERR: 9;
|
||
readonly INUSE_ATTRIBUTE_ERR: 10;
|
||
readonly INVALID_STATE_ERR: 11;
|
||
readonly SYNTAX_ERR: 12;
|
||
readonly INVALID_MODIFICATION_ERR: 13;
|
||
readonly NAMESPACE_ERR: 14;
|
||
readonly INVALID_ACCESS_ERR: 15;
|
||
readonly VALIDATION_ERR: 16;
|
||
readonly TYPE_MISMATCH_ERR: 17;
|
||
readonly SECURITY_ERR: 18;
|
||
readonly NETWORK_ERR: 19;
|
||
readonly ABORT_ERR: 20;
|
||
readonly URL_MISMATCH_ERR: 21;
|
||
readonly QUOTA_EXCEEDED_ERR: 22;
|
||
readonly TIMEOUT_ERR: 23;
|
||
readonly INVALID_NODE_TYPE_ERR: 24;
|
||
readonly DATA_CLONE_ERR: 25;
|
||
};
|
||
|
||
/** Specifies the options that can be passed to the constructor of an `Event`
|
||
* object.
|
||
*
|
||
* @category Events */
|
||
declare interface EventInit {
|
||
bubbles?: boolean;
|
||
cancelable?: boolean;
|
||
composed?: boolean;
|
||
}
|
||
|
||
/** An event which takes place in the DOM.
|
||
*
|
||
* @category Events
|
||
*/
|
||
declare interface Event {
|
||
/** Returns true or false depending on how event was initialized. True if
|
||
* event goes through its target's ancestors in reverse tree order, and
|
||
* false otherwise. */
|
||
readonly bubbles: boolean;
|
||
cancelBubble: boolean;
|
||
/** Returns true or false depending on how event was initialized. Its return
|
||
* value does not always carry meaning, but true can indicate that part of the
|
||
* operation during which event was dispatched, can be canceled by invoking
|
||
* the preventDefault() method. */
|
||
readonly cancelable: boolean;
|
||
/** Returns true or false depending on how event was initialized. True if
|
||
* event invokes listeners past a ShadowRoot node that is the root of its
|
||
* target, and false otherwise. */
|
||
readonly composed: boolean;
|
||
/** Returns the object whose event listener's callback is currently being
|
||
* invoked. */
|
||
readonly currentTarget: EventTarget | null;
|
||
/** Returns true if preventDefault() was invoked successfully to indicate
|
||
* cancellation, and false otherwise. */
|
||
readonly defaultPrevented: boolean;
|
||
/** Returns the event's phase, which is one of NONE, CAPTURING_PHASE,
|
||
* AT_TARGET, and BUBBLING_PHASE. */
|
||
readonly eventPhase: number;
|
||
/** Returns true if event was dispatched by the user agent, and false
|
||
* otherwise. */
|
||
readonly isTrusted: boolean;
|
||
/** Returns the object to which event is dispatched (its target). */
|
||
readonly target: EventTarget | null;
|
||
/** Returns the event's timestamp as the number of milliseconds measured
|
||
* relative to the time origin. */
|
||
readonly timeStamp: number;
|
||
/** Returns the type of event, e.g. "click", "hashchange", or "submit". */
|
||
readonly type: string;
|
||
/** Returns the invocation target objects of event's path (objects on which
|
||
* listeners will be invoked), except for any nodes in shadow trees of which
|
||
* the shadow root's mode is "closed" that are not reachable from event's
|
||
* currentTarget. */
|
||
composedPath(): EventTarget[];
|
||
/** If invoked when the cancelable attribute value is true, and while
|
||
* executing a listener for the event with passive set to false, signals to
|
||
* the operation that caused event to be dispatched that it needs to be
|
||
* canceled. */
|
||
preventDefault(): void;
|
||
/** Invoking this method prevents event from reaching any registered event
|
||
* listeners after the current one finishes running and, when dispatched in a
|
||
* tree, also prevents event from reaching any other objects. */
|
||
stopImmediatePropagation(): void;
|
||
/** When dispatched in a tree, invoking this method prevents event from
|
||
* reaching any objects other than the current object. */
|
||
stopPropagation(): void;
|
||
readonly AT_TARGET: number;
|
||
readonly BUBBLING_PHASE: number;
|
||
readonly CAPTURING_PHASE: number;
|
||
readonly NONE: number;
|
||
}
|
||
|
||
/** An event which takes place in the DOM.
|
||
*
|
||
* @category Events
|
||
*/
|
||
declare var Event: {
|
||
readonly prototype: Event;
|
||
new (type: string, eventInitDict?: EventInit): Event;
|
||
readonly AT_TARGET: number;
|
||
readonly BUBBLING_PHASE: number;
|
||
readonly CAPTURING_PHASE: number;
|
||
readonly NONE: number;
|
||
};
|
||
|
||
/**
|
||
* EventTarget is a DOM interface implemented by objects that can receive events
|
||
* and may have listeners for them.
|
||
*
|
||
* @category Events
|
||
*/
|
||
declare interface EventTarget {
|
||
/** Appends an event listener for events whose type attribute value is type.
|
||
* The callback argument sets the callback that will be invoked when the event
|
||
* is dispatched.
|
||
*
|
||
* The options argument sets listener-specific options. For compatibility this
|
||
* can be a boolean, in which case the method behaves exactly as if the value
|
||
* was specified as options's capture.
|
||
*
|
||
* When set to true, options's capture prevents callback from being invoked
|
||
* when the event's eventPhase attribute value is BUBBLING_PHASE. When false
|
||
* (or not present), callback will not be invoked when event's eventPhase
|
||
* attribute value is CAPTURING_PHASE. Either way, callback will be invoked if
|
||
* event's eventPhase attribute value is AT_TARGET.
|
||
*
|
||
* When set to true, options's passive indicates that the callback will not
|
||
* cancel the event by invoking preventDefault(). This is used to enable
|
||
* performance optimizations described in § 2.8 Observing event listeners.
|
||
*
|
||
* When set to true, options's once indicates that the callback will only be
|
||
* invoked once after which the event listener will be removed.
|
||
*
|
||
* The event listener is appended to target's event listener list and is not
|
||
* appended if it has the same type, callback, and capture. */
|
||
addEventListener(
|
||
type: string,
|
||
listener: EventListenerOrEventListenerObject | null,
|
||
options?: boolean | AddEventListenerOptions,
|
||
): void;
|
||
/** Dispatches a synthetic event to event target and returns true if either
|
||
* event's cancelable attribute value is false or its preventDefault() method
|
||
* was not invoked, and false otherwise. */
|
||
dispatchEvent(event: Event): boolean;
|
||
/** Removes the event listener in target's event listener list with the same
|
||
* type, callback, and options. */
|
||
removeEventListener(
|
||
type: string,
|
||
callback: EventListenerOrEventListenerObject | null,
|
||
options?: EventListenerOptions | boolean,
|
||
): void;
|
||
}
|
||
|
||
/**
|
||
* EventTarget is a DOM interface implemented by objects that can receive events
|
||
* and may have listeners for them.
|
||
*
|
||
* @category Events
|
||
*/
|
||
declare var EventTarget: {
|
||
readonly prototype: EventTarget;
|
||
new (): EventTarget;
|
||
};
|
||
|
||
/** Represents a function type that can be used as an event listener in various
|
||
* contexts. Functions matching this type will receive an {@linkcode Event} as the first parameter.
|
||
*
|
||
* @category Events */
|
||
declare interface EventListener {
|
||
(evt: Event): void | Promise<void>;
|
||
}
|
||
|
||
/** EventListenerObject interface defines objects that can handle events
|
||
*
|
||
* @category Events */
|
||
declare interface EventListenerObject {
|
||
handleEvent(evt: Event): void | Promise<void>;
|
||
}
|
||
|
||
/** @category Events */
|
||
declare type EventListenerOrEventListenerObject =
|
||
| EventListener
|
||
| EventListenerObject;
|
||
|
||
/** @category Events */
|
||
declare interface AddEventListenerOptions extends EventListenerOptions {
|
||
/** When set to true, indicates that the event listener should be automatically removed after its first invocation. */
|
||
passive?: boolean;
|
||
/** When set to true, signals to the browser that the event listener will not call `preventDefault()`. */
|
||
signal?: AbortSignal;
|
||
/** Allows the event listener to be associated with an `AbortSignal` from an `AbortController`, to allow removal of the event listener by calling `abort()` on the associated `AbortController`. */
|
||
once?: boolean;
|
||
}
|
||
|
||
/** Specifies options that can be passed to event listeners
|
||
*
|
||
* @category Events */
|
||
declare interface EventListenerOptions {
|
||
/** If true, event listener will be triggered during the capturing phase.
|
||
* If false or not provided, the event listener will be triggered during the bubbling phase. */
|
||
capture?: boolean;
|
||
}
|
||
|
||
/** Defines three additional optional properties specific to tracking the
|
||
* progress of an operation: `lengthComputable`, `loaded`, and `total`.
|
||
*
|
||
* @category Events */
|
||
declare interface ProgressEventInit extends EventInit {
|
||
/** A boolean value indicating whether the total size of the operation is known. This allows consumers of the event to determine if they can calculate a percentage completion. */
|
||
lengthComputable?: boolean;
|
||
/** A number representing the amount of work that has been completed. Typically used in conjunction with total to calculate how far along the operation is. */
|
||
loaded?: number;
|
||
/** Total amount of work to be done. When used with loaded, it allows for the calculation of the operation's completion percentage. */
|
||
total?: number;
|
||
}
|
||
|
||
/** Events measuring progress of an underlying process, like an HTTP request
|
||
* (for an XMLHttpRequest, or the loading of the underlying resource of an
|
||
* <img>, <audio>, <video>, <style> or <link>).
|
||
*
|
||
* @category Events
|
||
*/
|
||
declare interface ProgressEvent<T extends EventTarget = EventTarget>
|
||
extends Event {
|
||
readonly lengthComputable: boolean;
|
||
readonly loaded: number;
|
||
readonly target: T | null;
|
||
readonly total: number;
|
||
}
|
||
|
||
/** Events measuring progress of an underlying process, like an HTTP request
|
||
* (for an XMLHttpRequest, or the loading of the underlying resource of an
|
||
* <img>, <audio>, <video>, <style> or <link>).
|
||
*
|
||
* @category Events
|
||
*/
|
||
declare var ProgressEvent: {
|
||
readonly prototype: ProgressEvent;
|
||
new (type: string, eventInitDict?: ProgressEventInit): ProgressEvent;
|
||
};
|
||
|
||
/** Decodes a string of data which has been encoded using base-64 encoding.
|
||
*
|
||
* ```
|
||
* console.log(atob("aGVsbG8gd29ybGQ=")); // outputs 'hello world'
|
||
* ```
|
||
*
|
||
* @category Encoding
|
||
*/
|
||
declare function atob(s: string): string;
|
||
|
||
/** Creates a base-64 ASCII encoded string from the input string.
|
||
*
|
||
* ```
|
||
* console.log(btoa("hello world")); // outputs "aGVsbG8gd29ybGQ="
|
||
* ```
|
||
*
|
||
* @category Encoding
|
||
*/
|
||
declare function btoa(s: string): string;
|
||
|
||
/** Specifies options that can be passed to a TextDecoder instance.
|
||
*
|
||
* @category Encoding */
|
||
declare interface TextDecoderOptions {
|
||
/** When `true`, indicates that the `TextDecoder` should throw an error if it encounters an invalid byte sequence for the chosen encoding. When `false` or not provided, the `TextDecoder` will replace invalid byte sequences with a replacement character, typically `<60>`, and continue decoding. */
|
||
fatal?: boolean;
|
||
/** If set to `true`, the `TextDecoder` will ignore any BOM. If `false` or not provided, and if the encoding allows for a BOM (such as UTF-8, UTF-16), the `TextDecoder` will use the BOM to determine the text's endianness and then remove it from the output. */
|
||
ignoreBOM?: boolean;
|
||
}
|
||
|
||
/** @category Encoding */
|
||
declare interface TextDecodeOptions {
|
||
stream?: boolean;
|
||
}
|
||
|
||
/** @category Encoding */
|
||
declare interface TextDecoder {
|
||
/** Returns encoding's name, lowercased. */
|
||
readonly encoding: string;
|
||
/** Returns `true` if error mode is "fatal", and `false` otherwise. */
|
||
readonly fatal: boolean;
|
||
/** Returns `true` if ignore BOM flag is set, and `false` otherwise. */
|
||
readonly ignoreBOM: boolean;
|
||
|
||
/** Returns the result of running encoding's decoder. */
|
||
decode(input?: BufferSource, options?: TextDecodeOptions): string;
|
||
}
|
||
|
||
/** TextDecoder's constructor function can take up to two optional parameters:
|
||
* `label`: A string parameter that specifies the encoding to use for decoding.
|
||
* (If not provided the default is UTF-8.)
|
||
* `options`: An object of type `TextDecoderOptions` which allows for further
|
||
* customization of the decoding process.
|
||
*
|
||
* @category Encoding */
|
||
declare var TextDecoder: {
|
||
readonly prototype: TextDecoder;
|
||
new (label?: string, options?: TextDecoderOptions): TextDecoder;
|
||
};
|
||
|
||
/** Represents the result of an encoding operation performed by a TextEncoder.
|
||
*
|
||
* @category Encoding */
|
||
declare interface TextEncoderEncodeIntoResult {
|
||
/** Indicates the number of characters (or code units) from the input that were read and processed during the encoding operation */
|
||
read: number;
|
||
/** Signifies the number of bytes that were written to the output buffer as a result of the encoding process */
|
||
written: number;
|
||
}
|
||
|
||
/** A utility for encoding strings into a binary format, specifically using
|
||
* UTF-8 encoding.
|
||
*
|
||
* @category Encoding */
|
||
declare interface TextEncoder {
|
||
/** Returns "utf-8". */
|
||
readonly encoding: "utf-8";
|
||
/** Returns the result of running UTF-8's encoder. */
|
||
encode(input?: string): Uint8Array;
|
||
encodeInto(input: string, dest: Uint8Array): TextEncoderEncodeIntoResult;
|
||
}
|
||
|
||
/** @category Encoding */
|
||
declare var TextEncoder: {
|
||
readonly prototype: TextEncoder;
|
||
new (): TextEncoder;
|
||
};
|
||
|
||
/** A stream-based text decoder for efficient processing of large or
|
||
* streaming text data.
|
||
*
|
||
* @category Encoding */
|
||
declare interface TextDecoderStream {
|
||
/** Returns encoding's name, lowercased. */
|
||
readonly encoding: string;
|
||
/** Returns `true` if error mode is "fatal", and `false` otherwise. */
|
||
readonly fatal: boolean;
|
||
/** Returns `true` if ignore BOM flag is set, and `false` otherwise. */
|
||
readonly ignoreBOM: boolean;
|
||
readonly readable: ReadableStream<string>;
|
||
readonly writable: WritableStream<BufferSource>;
|
||
readonly [Symbol.toStringTag]: string;
|
||
}
|
||
|
||
/** @category Encoding */
|
||
declare var TextDecoderStream: {
|
||
readonly prototype: TextDecoderStream;
|
||
new (label?: string, options?: TextDecoderOptions): TextDecoderStream;
|
||
};
|
||
|
||
/** Stream-based mechanism for encoding text into a stream of UTF-8 encoded data
|
||
*
|
||
* @category Encoding */
|
||
declare interface TextEncoderStream {
|
||
/** Returns "utf-8". */
|
||
readonly encoding: "utf-8";
|
||
readonly readable: ReadableStream<Uint8Array>;
|
||
readonly writable: WritableStream<string>;
|
||
readonly [Symbol.toStringTag]: string;
|
||
}
|
||
|
||
/** @category Encoding */
|
||
declare var TextEncoderStream: {
|
||
readonly prototype: TextEncoderStream;
|
||
new (): TextEncoderStream;
|
||
};
|
||
|
||
/** A controller object that allows you to abort one or more DOM requests as and
|
||
* when desired.
|
||
*
|
||
* @category Platform
|
||
*/
|
||
declare interface AbortController {
|
||
/** Returns the AbortSignal object associated with this object. */
|
||
readonly signal: AbortSignal;
|
||
/** Invoking this method will set this object's AbortSignal's aborted flag and
|
||
* signal to any observers that the associated activity is to be aborted. */
|
||
abort(reason?: any): void;
|
||
}
|
||
|
||
/** A controller object that allows you to abort one or more DOM requests as and
|
||
* when desired.
|
||
*
|
||
* @category Platform
|
||
*/
|
||
declare var AbortController: {
|
||
readonly prototype: AbortController;
|
||
new (): AbortController;
|
||
};
|
||
|
||
/** @category Platform */
|
||
declare interface AbortSignalEventMap {
|
||
abort: Event;
|
||
}
|
||
|
||
/** A signal object that allows you to communicate with a DOM request (such as a
|
||
* Fetch) and abort it if required via an AbortController object.
|
||
*
|
||
* @category Platform
|
||
*/
|
||
declare interface AbortSignal extends EventTarget {
|
||
/** Returns true if this AbortSignal's AbortController has signaled to abort,
|
||
* and false otherwise. */
|
||
readonly aborted: boolean;
|
||
readonly reason: any;
|
||
onabort: ((this: AbortSignal, ev: Event) => any) | null;
|
||
addEventListener<K extends keyof AbortSignalEventMap>(
|
||
type: K,
|
||
listener: (this: AbortSignal, ev: AbortSignalEventMap[K]) => any,
|
||
options?: boolean | AddEventListenerOptions,
|
||
): void;
|
||
addEventListener(
|
||
type: string,
|
||
listener: EventListenerOrEventListenerObject,
|
||
options?: boolean | AddEventListenerOptions,
|
||
): void;
|
||
removeEventListener<K extends keyof AbortSignalEventMap>(
|
||
type: K,
|
||
listener: (this: AbortSignal, ev: AbortSignalEventMap[K]) => any,
|
||
options?: boolean | EventListenerOptions,
|
||
): void;
|
||
removeEventListener(
|
||
type: string,
|
||
listener: EventListenerOrEventListenerObject,
|
||
options?: boolean | EventListenerOptions,
|
||
): void;
|
||
|
||
/** Throws this AbortSignal's abort reason, if its AbortController has
|
||
* signaled to abort; otherwise, does nothing. */
|
||
throwIfAborted(): void;
|
||
}
|
||
|
||
/** @category Platform */
|
||
declare var AbortSignal: {
|
||
readonly prototype: AbortSignal;
|
||
new (): never;
|
||
abort(reason?: any): AbortSignal;
|
||
any(signals: AbortSignal[]): AbortSignal;
|
||
timeout(milliseconds: number): AbortSignal;
|
||
};
|
||
|
||
/** @category File */
|
||
declare interface FileReaderEventMap {
|
||
"abort": ProgressEvent<FileReader>;
|
||
"error": ProgressEvent<FileReader>;
|
||
"load": ProgressEvent<FileReader>;
|
||
"loadend": ProgressEvent<FileReader>;
|
||
"loadstart": ProgressEvent<FileReader>;
|
||
"progress": ProgressEvent<FileReader>;
|
||
}
|
||
|
||
/** Lets web applications asynchronously read the contents of files (or raw data
|
||
* buffers) stored on the user's computer, using File or Blob objects to specify
|
||
* the file or data to read.
|
||
*
|
||
* @category File
|
||
*/
|
||
declare interface FileReader extends EventTarget {
|
||
readonly error: DOMException | null;
|
||
onabort: ((this: FileReader, ev: ProgressEvent<FileReader>) => any) | null;
|
||
onerror: ((this: FileReader, ev: ProgressEvent<FileReader>) => any) | null;
|
||
onload: ((this: FileReader, ev: ProgressEvent<FileReader>) => any) | null;
|
||
onloadend: ((this: FileReader, ev: ProgressEvent<FileReader>) => any) | null;
|
||
onloadstart:
|
||
| ((this: FileReader, ev: ProgressEvent<FileReader>) => any)
|
||
| null;
|
||
onprogress: ((this: FileReader, ev: ProgressEvent<FileReader>) => any) | null;
|
||
readonly readyState: number;
|
||
readonly result: string | ArrayBuffer | null;
|
||
abort(): void;
|
||
readAsArrayBuffer(blob: Blob): void;
|
||
readAsBinaryString(blob: Blob): void;
|
||
readAsDataURL(blob: Blob): void;
|
||
readAsText(blob: Blob, encoding?: string): void;
|
||
readonly DONE: number;
|
||
readonly EMPTY: number;
|
||
readonly LOADING: number;
|
||
addEventListener<K extends keyof FileReaderEventMap>(
|
||
type: K,
|
||
listener: (this: FileReader, ev: FileReaderEventMap[K]) => any,
|
||
options?: boolean | AddEventListenerOptions,
|
||
): void;
|
||
addEventListener(
|
||
type: string,
|
||
listener: EventListenerOrEventListenerObject,
|
||
options?: boolean | AddEventListenerOptions,
|
||
): void;
|
||
removeEventListener<K extends keyof FileReaderEventMap>(
|
||
type: K,
|
||
listener: (this: FileReader, ev: FileReaderEventMap[K]) => any,
|
||
options?: boolean | EventListenerOptions,
|
||
): void;
|
||
removeEventListener(
|
||
type: string,
|
||
listener: EventListenerOrEventListenerObject,
|
||
options?: boolean | EventListenerOptions,
|
||
): void;
|
||
}
|
||
|
||
/** @category File */
|
||
declare var FileReader: {
|
||
readonly prototype: FileReader;
|
||
new (): FileReader;
|
||
readonly DONE: number;
|
||
readonly EMPTY: number;
|
||
readonly LOADING: number;
|
||
};
|
||
|
||
/** @category File */
|
||
declare type BlobPart = BufferSource | Blob | string;
|
||
|
||
/** @category File */
|
||
declare interface BlobPropertyBag {
|
||
type?: string;
|
||
endings?: "transparent" | "native";
|
||
}
|
||
|
||
/** A file-like object of immutable, raw data. Blobs represent data that isn't
|
||
* necessarily in a JavaScript-native format. The File interface is based on
|
||
* Blob, inheriting blob functionality and expanding it to support files on the
|
||
* user's system.
|
||
*
|
||
* @category File
|
||
*/
|
||
declare interface Blob {
|
||
readonly size: number;
|
||
readonly type: string;
|
||
arrayBuffer(): Promise<ArrayBuffer>;
|
||
slice(start?: number, end?: number, contentType?: string): Blob;
|
||
stream(): ReadableStream<Uint8Array>;
|
||
text(): Promise<string>;
|
||
}
|
||
|
||
/** A file-like object of immutable, raw data. Blobs represent data that isn't
|
||
* necessarily in a JavaScript-native format. The File interface is based on
|
||
* Blob, inheriting blob functionality and expanding it to support files on the
|
||
* user's system.
|
||
*
|
||
* @category File
|
||
*/
|
||
declare var Blob: {
|
||
readonly prototype: Blob;
|
||
new (blobParts?: BlobPart[], options?: BlobPropertyBag): Blob;
|
||
};
|
||
|
||
/** @category File */
|
||
declare interface FilePropertyBag extends BlobPropertyBag {
|
||
lastModified?: number;
|
||
}
|
||
|
||
/** Provides information about files and allows JavaScript in a web page to
|
||
* access their content.
|
||
*
|
||
* @category File
|
||
*/
|
||
declare interface File extends Blob {
|
||
readonly lastModified: number;
|
||
readonly name: string;
|
||
}
|
||
|
||
/** Provides information about files and allows JavaScript in a web page to
|
||
* access their content.
|
||
*
|
||
* @category File
|
||
*/
|
||
declare var File: {
|
||
readonly prototype: File;
|
||
new (fileBits: BlobPart[], fileName: string, options?: FilePropertyBag): File;
|
||
};
|
||
|
||
/** The result object from reading a stream when the stream has been fully
|
||
* consumed or closed.
|
||
*
|
||
* @category Streams */
|
||
declare interface ReadableStreamDefaultReadDoneResult {
|
||
done: true;
|
||
value?: undefined;
|
||
}
|
||
|
||
/** The result object from reading a stream that is not yet finished
|
||
*
|
||
* @category Streams */
|
||
declare interface ReadableStreamDefaultReadValueResult<T> {
|
||
done: false;
|
||
value: T;
|
||
}
|
||
|
||
/** @category Streams */
|
||
declare type ReadableStreamDefaultReadResult<T> =
|
||
| ReadableStreamDefaultReadValueResult<T>
|
||
| ReadableStreamDefaultReadDoneResult;
|
||
|
||
/** An object that allows you to read from a readable stream
|
||
*
|
||
* @category Streams */
|
||
declare interface ReadableStreamDefaultReader<R = any> {
|
||
readonly closed: Promise<void>;
|
||
cancel(reason?: any): Promise<void>;
|
||
read(): Promise<ReadableStreamDefaultReadResult<R>>;
|
||
releaseLock(): void;
|
||
}
|
||
|
||
/** @category Streams */
|
||
declare var ReadableStreamDefaultReader: {
|
||
readonly prototype: ReadableStreamDefaultReader;
|
||
new <R>(stream: ReadableStream<R>): ReadableStreamDefaultReader<R>;
|
||
};
|
||
|
||
/** The result of an operation, specifically in the context of reading from a stream using a "bring your own buffer" (BYOB) strategy.
|
||
*
|
||
* @category Streams */
|
||
declare interface ReadableStreamBYOBReadDoneResult<V extends ArrayBufferView> {
|
||
done: true;
|
||
value?: V;
|
||
}
|
||
|
||
/** The result of a read operation from a stream using a "bring your own buffer" (BYOB) strategy.
|
||
*
|
||
* @category Streams */
|
||
declare interface ReadableStreamBYOBReadValueResult<V extends ArrayBufferView> {
|
||
done: false;
|
||
value: V;
|
||
}
|
||
|
||
/** @category Streams */
|
||
declare type ReadableStreamBYOBReadResult<V extends ArrayBufferView> =
|
||
| ReadableStreamBYOBReadDoneResult<V>
|
||
| ReadableStreamBYOBReadValueResult<V>;
|
||
|
||
/** @category Streams */
|
||
declare interface ReadableStreamBYOBReaderReadOptions {
|
||
min?: number;
|
||
}
|
||
|
||
/** Provides a set of methods for reading binary data from a stream using a buffer provided by the developer, with mechanisms for handling stream closure, cancellation, and locking
|
||
*
|
||
* @category Streams */
|
||
declare interface ReadableStreamBYOBReader {
|
||
readonly closed: Promise<void>;
|
||
cancel(reason?: any): Promise<void>;
|
||
read<V extends ArrayBufferView>(
|
||
view: V,
|
||
options?: ReadableStreamBYOBReaderReadOptions,
|
||
): Promise<ReadableStreamBYOBReadResult<V>>;
|
||
releaseLock(): void;
|
||
}
|
||
|
||
/** @category Streams */
|
||
declare var ReadableStreamBYOBReader: {
|
||
readonly prototype: ReadableStreamBYOBReader;
|
||
new (stream: ReadableStream<Uint8Array>): ReadableStreamBYOBReader;
|
||
};
|
||
|
||
/** Notify the stream about the amount of data processed and to supply new buffers as needed.
|
||
*
|
||
* @category Streams */
|
||
declare interface ReadableStreamBYOBRequest {
|
||
readonly view: ArrayBufferView | null;
|
||
respond(bytesWritten: number): void;
|
||
respondWithNewView(view: ArrayBufferView): void;
|
||
}
|
||
|
||
/** @category Streams */
|
||
declare var ReadableStreamBYOBRequest: {
|
||
readonly prototype: ReadableStreamBYOBRequest;
|
||
new (): never;
|
||
};
|
||
|
||
/** A callback function type for managing a readable byte stream.
|
||
*
|
||
* @category Streams */
|
||
declare interface ReadableByteStreamControllerCallback {
|
||
(controller: ReadableByteStreamController): void | PromiseLike<void>;
|
||
}
|
||
|
||
/** A structure for implementing sources of binary data.
|
||
*
|
||
* @category Streams */
|
||
declare interface UnderlyingByteSource {
|
||
autoAllocateChunkSize?: number;
|
||
cancel?: ReadableStreamErrorCallback;
|
||
pull?: ReadableByteStreamControllerCallback;
|
||
start?: ReadableByteStreamControllerCallback;
|
||
type: "bytes";
|
||
}
|
||
|
||
/** A contract for objects that can consume data chunks, providing hooks for
|
||
* initialization `start`, writing data `write`, handling errors `abort`, and
|
||
* closing the stream `close`.
|
||
*
|
||
* @category Streams */
|
||
declare interface UnderlyingSink<W = any> {
|
||
abort?: WritableStreamErrorCallback;
|
||
close?: WritableStreamDefaultControllerCloseCallback;
|
||
start?: WritableStreamDefaultControllerStartCallback;
|
||
type?: undefined;
|
||
write?: WritableStreamDefaultControllerWriteCallback<W>;
|
||
}
|
||
|
||
/** Outlines the structure for objects that can serve as the underlying source of data for a `ReadableStream`
|
||
*
|
||
* @category Streams */
|
||
declare interface UnderlyingSource<R = any> {
|
||
cancel?: ReadableStreamErrorCallback;
|
||
pull?: ReadableStreamDefaultControllerCallback<R>;
|
||
start?: ReadableStreamDefaultControllerCallback<R>;
|
||
type?: undefined;
|
||
}
|
||
|
||
/** Callback function to handle errors in the context of readable streams
|
||
*
|
||
* @category Streams */
|
||
declare interface ReadableStreamErrorCallback {
|
||
(reason: any): void | PromiseLike<void>;
|
||
}
|
||
|
||
/** @category Streams */
|
||
declare interface ReadableStreamDefaultControllerCallback<R> {
|
||
(controller: ReadableStreamDefaultController<R>): void | PromiseLike<void>;
|
||
}
|
||
|
||
/** Control the state and behavior of a readable stream
|
||
*
|
||
* @category Streams */
|
||
declare interface ReadableStreamDefaultController<R = any> {
|
||
readonly desiredSize: number | null;
|
||
close(): void;
|
||
enqueue(chunk: R): void;
|
||
error(error?: any): void;
|
||
}
|
||
|
||
/** @category Streams */
|
||
declare var ReadableStreamDefaultController: {
|
||
readonly prototype: ReadableStreamDefaultController;
|
||
new (): never;
|
||
};
|
||
|
||
/** Manage the flow of byte data in a stream, including buffering, closing the stream, and handling errors.
|
||
*
|
||
* @category Streams */
|
||
declare interface ReadableByteStreamController {
|
||
readonly byobRequest: ReadableStreamBYOBRequest | null;
|
||
readonly desiredSize: number | null;
|
||
close(): void;
|
||
enqueue(chunk: ArrayBufferView): void;
|
||
error(error?: any): void;
|
||
}
|
||
|
||
/** @category Streams */
|
||
declare var ReadableByteStreamController: {
|
||
readonly prototype: ReadableByteStreamController;
|
||
new (): never;
|
||
};
|
||
|
||
/** Fine grained control over {@linkcode ReadableStream.pipeTo} operations, allowing for the prevention of stream closing, cancellation, or aborting.
|
||
*
|
||
* @category Streams */
|
||
declare interface PipeOptions {
|
||
preventAbort?: boolean;
|
||
preventCancel?: boolean;
|
||
preventClose?: boolean;
|
||
signal?: AbortSignal;
|
||
}
|
||
|
||
/** @category Streams */
|
||
declare interface QueuingStrategySizeCallback<T = any> {
|
||
(chunk: T): number;
|
||
}
|
||
|
||
/** @category Streams */
|
||
declare interface QueuingStrategy<T = any> {
|
||
highWaterMark?: number;
|
||
size?: QueuingStrategySizeCallback<T>;
|
||
}
|
||
|
||
/** This Streams API interface provides a built-in byte length queuing strategy
|
||
* that can be used when constructing streams.
|
||
*
|
||
* @category Streams
|
||
*/
|
||
declare interface CountQueuingStrategy extends QueuingStrategy {
|
||
highWaterMark: number;
|
||
size(chunk: any): 1;
|
||
}
|
||
|
||
/** @category Streams */
|
||
declare var CountQueuingStrategy: {
|
||
readonly prototype: CountQueuingStrategy;
|
||
new (options: { highWaterMark: number }): CountQueuingStrategy;
|
||
};
|
||
|
||
/** @category Streams */
|
||
declare interface ByteLengthQueuingStrategy
|
||
extends QueuingStrategy<ArrayBufferView> {
|
||
highWaterMark: number;
|
||
size(chunk: ArrayBufferView): number;
|
||
}
|
||
|
||
/** @category Streams */
|
||
declare var ByteLengthQueuingStrategy: {
|
||
readonly prototype: ByteLengthQueuingStrategy;
|
||
new (options: { highWaterMark: number }): ByteLengthQueuingStrategy;
|
||
};
|
||
|
||
/** This Streams API interface represents a readable stream of byte data. The
|
||
* Fetch API offers a concrete instance of a ReadableStream through the body
|
||
* property of a Response object.
|
||
*
|
||
* @category Streams
|
||
*/
|
||
declare interface ReadableStream<R = any> {
|
||
readonly locked: boolean;
|
||
cancel(reason?: any): Promise<void>;
|
||
getReader(options: { mode: "byob" }): ReadableStreamBYOBReader;
|
||
getReader(options?: { mode?: undefined }): ReadableStreamDefaultReader<R>;
|
||
pipeThrough<T>(transform: {
|
||
writable: WritableStream<R>;
|
||
readable: ReadableStream<T>;
|
||
}, options?: PipeOptions): ReadableStream<T>;
|
||
pipeTo(dest: WritableStream<R>, options?: PipeOptions): Promise<void>;
|
||
tee(): [ReadableStream<R>, ReadableStream<R>];
|
||
values(options?: {
|
||
preventCancel?: boolean;
|
||
}): AsyncIterableIterator<R>;
|
||
[Symbol.asyncIterator](options?: {
|
||
preventCancel?: boolean;
|
||
}): AsyncIterableIterator<R>;
|
||
}
|
||
|
||
/** @category Streams */
|
||
declare var ReadableStream: {
|
||
readonly prototype: ReadableStream;
|
||
new (
|
||
underlyingSource: UnderlyingByteSource,
|
||
strategy?: { highWaterMark?: number; size?: undefined },
|
||
): ReadableStream<Uint8Array>;
|
||
new <R = any>(
|
||
underlyingSource?: UnderlyingSource<R>,
|
||
strategy?: QueuingStrategy<R>,
|
||
): ReadableStream<R>;
|
||
from<R>(
|
||
asyncIterable: AsyncIterable<R> | Iterable<R | PromiseLike<R>>,
|
||
): ReadableStream<R>;
|
||
};
|
||
|
||
/** @category Streams */
|
||
declare interface WritableStreamDefaultControllerCloseCallback {
|
||
(): void | PromiseLike<void>;
|
||
}
|
||
|
||
/** @category Streams */
|
||
declare interface WritableStreamDefaultControllerStartCallback {
|
||
(controller: WritableStreamDefaultController): void | PromiseLike<void>;
|
||
}
|
||
|
||
/** @category Streams */
|
||
declare interface WritableStreamDefaultControllerWriteCallback<W> {
|
||
(chunk: W, controller: WritableStreamDefaultController):
|
||
| void
|
||
| PromiseLike<
|
||
void
|
||
>;
|
||
}
|
||
|
||
/** @category Streams */
|
||
declare interface WritableStreamErrorCallback {
|
||
(reason: any): void | PromiseLike<void>;
|
||
}
|
||
|
||
/** This Streams API interface provides a standard abstraction for writing
|
||
* streaming data to a destination, known as a sink. This object comes with
|
||
* built-in backpressure and queuing.
|
||
*
|
||
* @category Streams
|
||
*/
|
||
declare interface WritableStream<W = any> {
|
||
readonly locked: boolean;
|
||
abort(reason?: any): Promise<void>;
|
||
close(): Promise<void>;
|
||
getWriter(): WritableStreamDefaultWriter<W>;
|
||
}
|
||
|
||
/** @category Streams */
|
||
declare var WritableStream: {
|
||
readonly prototype: WritableStream;
|
||
new <W = any>(
|
||
underlyingSink?: UnderlyingSink<W>,
|
||
strategy?: QueuingStrategy<W>,
|
||
): WritableStream<W>;
|
||
};
|
||
|
||
/** This Streams API interface represents a controller allowing control of a
|
||
* WritableStream's state. When constructing a WritableStream, the underlying
|
||
* sink is given a corresponding WritableStreamDefaultController instance to
|
||
* manipulate.
|
||
*
|
||
* @category Streams
|
||
*/
|
||
declare interface WritableStreamDefaultController {
|
||
signal: AbortSignal;
|
||
error(error?: any): void;
|
||
}
|
||
|
||
/** @category Streams */
|
||
declare var WritableStreamDefaultController: {
|
||
readonly prototype: WritableStreamDefaultController;
|
||
new (): never;
|
||
};
|
||
|
||
/** This Streams API interface is the object returned by
|
||
* WritableStream.getWriter() and once created locks the < writer to the
|
||
* WritableStream ensuring that no other streams can write to the underlying
|
||
* sink.
|
||
*
|
||
* @category Streams
|
||
*/
|
||
declare interface WritableStreamDefaultWriter<W = any> {
|
||
readonly closed: Promise<void>;
|
||
readonly desiredSize: number | null;
|
||
readonly ready: Promise<void>;
|
||
abort(reason?: any): Promise<void>;
|
||
close(): Promise<void>;
|
||
releaseLock(): void;
|
||
write(chunk: W): Promise<void>;
|
||
}
|
||
|
||
/** @category Streams */
|
||
declare var WritableStreamDefaultWriter: {
|
||
readonly prototype: WritableStreamDefaultWriter;
|
||
new <W>(stream: WritableStream<W>): WritableStreamDefaultWriter<W>;
|
||
};
|
||
|
||
/** @category Streams */
|
||
declare interface TransformStream<I = any, O = any> {
|
||
readonly readable: ReadableStream<O>;
|
||
readonly writable: WritableStream<I>;
|
||
}
|
||
|
||
/** @category Streams */
|
||
declare var TransformStream: {
|
||
readonly prototype: TransformStream;
|
||
new <I = any, O = any>(
|
||
transformer?: Transformer<I, O>,
|
||
writableStrategy?: QueuingStrategy<I>,
|
||
readableStrategy?: QueuingStrategy<O>,
|
||
): TransformStream<I, O>;
|
||
};
|
||
|
||
/** @category Streams */
|
||
declare interface TransformStreamDefaultController<O = any> {
|
||
readonly desiredSize: number | null;
|
||
enqueue(chunk: O): void;
|
||
error(reason?: any): void;
|
||
terminate(): void;
|
||
}
|
||
|
||
/** @category Streams */
|
||
declare var TransformStreamDefaultController: {
|
||
readonly prototype: TransformStreamDefaultController;
|
||
new (): never;
|
||
};
|
||
|
||
/** Define custom behavior for transforming data in streams
|
||
*
|
||
* @category Streams */
|
||
declare interface Transformer<I = any, O = any> {
|
||
flush?: TransformStreamDefaultControllerCallback<O>;
|
||
readableType?: undefined;
|
||
start?: TransformStreamDefaultControllerCallback<O>;
|
||
transform?: TransformStreamDefaultControllerTransformCallback<I, O>;
|
||
cancel?: (reason: any) => Promise<void>;
|
||
writableType?: undefined;
|
||
}
|
||
|
||
/** @category Streams */
|
||
declare interface TransformStreamDefaultControllerCallback<O> {
|
||
(controller: TransformStreamDefaultController<O>): void | PromiseLike<void>;
|
||
}
|
||
|
||
/** @category Streams */
|
||
declare interface TransformStreamDefaultControllerTransformCallback<I, O> {
|
||
(
|
||
chunk: I,
|
||
controller: TransformStreamDefaultController<O>,
|
||
): void | PromiseLike<void>;
|
||
}
|
||
|
||
/** @category Events */
|
||
declare interface MessageEventInit<T = any> extends EventInit {
|
||
data?: T;
|
||
origin?: string;
|
||
lastEventId?: string;
|
||
}
|
||
|
||
/** @category Events */
|
||
declare interface MessageEvent<T = any> extends Event {
|
||
/**
|
||
* Returns the data of the message.
|
||
*/
|
||
readonly data: T;
|
||
/**
|
||
* Returns the origin of the message, for server-sent events.
|
||
*/
|
||
readonly origin: string;
|
||
/**
|
||
* Returns the last event ID string, for server-sent events.
|
||
*/
|
||
readonly lastEventId: string;
|
||
readonly source: null;
|
||
/**
|
||
* Returns transferred ports.
|
||
*/
|
||
readonly ports: ReadonlyArray<MessagePort>;
|
||
}
|
||
|
||
/** @category Events */
|
||
declare var MessageEvent: {
|
||
readonly prototype: MessageEvent;
|
||
new <T>(type: string, eventInitDict?: MessageEventInit<T>): MessageEvent<T>;
|
||
};
|
||
|
||
/** @category Events */
|
||
declare type Transferable = ArrayBuffer | MessagePort;
|
||
|
||
/**
|
||
* This type has been renamed to StructuredSerializeOptions. Use that type for
|
||
* new code.
|
||
*
|
||
* @deprecated use `StructuredSerializeOptions` instead.
|
||
* @category Events
|
||
*/
|
||
declare type PostMessageOptions = StructuredSerializeOptions;
|
||
|
||
/** @category Platform */
|
||
declare interface StructuredSerializeOptions {
|
||
transfer?: Transferable[];
|
||
}
|
||
|
||
/** The MessageChannel interface of the Channel Messaging API allows us to
|
||
* create a new message channel and send data through it via its two MessagePort
|
||
* properties.
|
||
*
|
||
* @category Messaging
|
||
*/
|
||
declare interface MessageChannel {
|
||
readonly port1: MessagePort;
|
||
readonly port2: MessagePort;
|
||
}
|
||
|
||
/** The MessageChannel interface of the Channel Messaging API allows us to
|
||
* create a new message channel and send data through it via its two MessagePort
|
||
* properties.
|
||
*
|
||
* @category Messaging
|
||
*/
|
||
declare var MessageChannel: {
|
||
readonly prototype: MessageChannel;
|
||
new (): MessageChannel;
|
||
};
|
||
|
||
/** @category Messaging */
|
||
declare interface MessagePortEventMap {
|
||
"message": MessageEvent;
|
||
"messageerror": MessageEvent;
|
||
}
|
||
|
||
/** The MessagePort interface of the Channel Messaging API represents one of the
|
||
* two ports of a MessageChannel, allowing messages to be sent from one port and
|
||
* listening out for them arriving at the other.
|
||
*
|
||
* @category Messaging
|
||
*/
|
||
declare interface MessagePort extends EventTarget {
|
||
onmessage: ((this: MessagePort, ev: MessageEvent) => any) | null;
|
||
onmessageerror: ((this: MessagePort, ev: MessageEvent) => any) | null;
|
||
/**
|
||
* Disconnects the port, so that it is no longer active.
|
||
*/
|
||
close(): void;
|
||
/**
|
||
* Posts a message through the channel. Objects listed in transfer are
|
||
* transferred, not just cloned, meaning that they are no longer usable on the
|
||
* sending side.
|
||
*
|
||
* Throws a "DataCloneError" DOMException if transfer contains duplicate
|
||
* objects or port, or if message could not be cloned.
|
||
*/
|
||
postMessage(message: any, transfer: Transferable[]): void;
|
||
postMessage(message: any, options?: StructuredSerializeOptions): void;
|
||
/**
|
||
* Begins dispatching messages received on the port. This is implicitly called
|
||
* when assigning a value to `this.onmessage`.
|
||
*/
|
||
start(): void;
|
||
addEventListener<K extends keyof MessagePortEventMap>(
|
||
type: K,
|
||
listener: (this: MessagePort, ev: MessagePortEventMap[K]) => any,
|
||
options?: boolean | AddEventListenerOptions,
|
||
): void;
|
||
addEventListener(
|
||
type: string,
|
||
listener: EventListenerOrEventListenerObject,
|
||
options?: boolean | AddEventListenerOptions,
|
||
): void;
|
||
removeEventListener<K extends keyof MessagePortEventMap>(
|
||
type: K,
|
||
listener: (this: MessagePort, ev: MessagePortEventMap[K]) => any,
|
||
options?: boolean | EventListenerOptions,
|
||
): void;
|
||
removeEventListener(
|
||
type: string,
|
||
listener: EventListenerOrEventListenerObject,
|
||
options?: boolean | EventListenerOptions,
|
||
): void;
|
||
}
|
||
|
||
/** The MessagePort interface of the Channel Messaging API represents one of the
|
||
* two ports of a MessageChannel, allowing messages to be sent from one port and
|
||
* listening out for them arriving at the other.
|
||
*
|
||
* @category Messaging
|
||
*/
|
||
declare var MessagePort: {
|
||
readonly prototype: MessagePort;
|
||
new (): never;
|
||
};
|
||
|
||
/**
|
||
* Creates a deep copy of a given value using the structured clone algorithm.
|
||
*
|
||
* Unlike a shallow copy, a deep copy does not hold the same references as the
|
||
* source object, meaning its properties can be changed without affecting the
|
||
* source. For more details, see
|
||
* [MDN](https://developer.mozilla.org/en-US/docs/Glossary/Deep_copy).
|
||
*
|
||
* Throws a `DataCloneError` if any part of the input value is not
|
||
* serializable.
|
||
*
|
||
* @example
|
||
* ```ts
|
||
* const object = { x: 0, y: 1 };
|
||
*
|
||
* const deepCopy = structuredClone(object);
|
||
* deepCopy.x = 1;
|
||
* console.log(deepCopy.x, object.x); // 1 0
|
||
*
|
||
* const shallowCopy = object;
|
||
* shallowCopy.x = 1;
|
||
* // shallowCopy.x is pointing to the same location in memory as object.x
|
||
* console.log(shallowCopy.x, object.x); // 1 1
|
||
* ```
|
||
*
|
||
* @category Platform
|
||
*/
|
||
declare function structuredClone<T = any>(
|
||
value: T,
|
||
options?: StructuredSerializeOptions,
|
||
): T;
|
||
|
||
/**
|
||
* An API for compressing a stream of data.
|
||
*
|
||
* @example
|
||
* ```ts
|
||
* await Deno.stdin.readable
|
||
* .pipeThrough(new CompressionStream("gzip"))
|
||
* .pipeTo(Deno.stdout.writable);
|
||
* ```
|
||
*
|
||
* @category Streams
|
||
*/
|
||
declare interface CompressionStream {
|
||
readonly readable: ReadableStream<Uint8Array>;
|
||
readonly writable: WritableStream<Uint8Array>;
|
||
}
|
||
|
||
/**
|
||
* An API for compressing a stream of data.
|
||
*
|
||
* @example
|
||
* ```ts
|
||
* await Deno.stdin.readable
|
||
* .pipeThrough(new CompressionStream("gzip"))
|
||
* .pipeTo(Deno.stdout.writable);
|
||
* ```
|
||
*
|
||
* @category Streams
|
||
*/
|
||
declare var CompressionStream: {
|
||
readonly prototype: CompressionStream;
|
||
/**
|
||
* Creates a new `CompressionStream` object which compresses a stream of
|
||
* data.
|
||
*
|
||
* Throws a `TypeError` if the format passed to the constructor is not
|
||
* supported.
|
||
*/
|
||
new (format: string): CompressionStream;
|
||
};
|
||
|
||
/**
|
||
* An API for decompressing a stream of data.
|
||
*
|
||
* @example
|
||
* ```ts
|
||
* const input = await Deno.open("./file.txt.gz");
|
||
* const output = await Deno.create("./file.txt");
|
||
*
|
||
* await input.readable
|
||
* .pipeThrough(new DecompressionStream("gzip"))
|
||
* .pipeTo(output.writable);
|
||
* ```
|
||
*
|
||
* @category Streams
|
||
*/
|
||
declare interface DecompressionStream {
|
||
readonly readable: ReadableStream<Uint8Array>;
|
||
readonly writable: WritableStream<Uint8Array>;
|
||
}
|
||
|
||
/**
|
||
* An API for decompressing a stream of data.
|
||
*
|
||
* @example
|
||
* ```ts
|
||
* const input = await Deno.open("./file.txt.gz");
|
||
* const output = await Deno.create("./file.txt");
|
||
*
|
||
* await input.readable
|
||
* .pipeThrough(new DecompressionStream("gzip"))
|
||
* .pipeTo(output.writable);
|
||
* ```
|
||
*
|
||
* @category Streams
|
||
*/
|
||
declare var DecompressionStream: {
|
||
readonly prototype: DecompressionStream;
|
||
/**
|
||
* Creates a new `DecompressionStream` object which decompresses a stream of
|
||
* data.
|
||
*
|
||
* Throws a `TypeError` if the format passed to the constructor is not
|
||
* supported.
|
||
*/
|
||
new (format: string): DecompressionStream;
|
||
};
|
||
|
||
/** Dispatch an uncaught exception. Similar to a synchronous version of:
|
||
* ```ts
|
||
* setTimeout(() => { throw error; }, 0);
|
||
* ```
|
||
* The error can not be caught with a `try/catch` block. An error event will
|
||
* be dispatched to the global scope. You can prevent the error from being
|
||
* reported to the console with `Event.prototype.preventDefault()`:
|
||
* ```ts
|
||
* addEventListener("error", (event) => {
|
||
* event.preventDefault();
|
||
* });
|
||
* reportError(new Error("foo")); // Will not be reported.
|
||
* ```
|
||
* In Deno, this error will terminate the process if not intercepted like above.
|
||
*
|
||
* @category Platform
|
||
*/
|
||
declare function reportError(
|
||
error: any,
|
||
): void;
|
||
|
||
/** @category Platform */
|
||
declare type PredefinedColorSpace = "srgb" | "display-p3";
|
||
|
||
/** Color space settings for {@linkcode ImageData} objects.
|
||
*
|
||
* @category Platform */
|
||
declare interface ImageDataSettings {
|
||
readonly colorSpace?: PredefinedColorSpace;
|
||
}
|
||
|
||
/** An object representing the underlying data that backs an image.
|
||
*
|
||
* @category Platform */
|
||
declare interface ImageData {
|
||
readonly colorSpace: PredefinedColorSpace;
|
||
readonly data: Uint8ClampedArray;
|
||
readonly height: number;
|
||
readonly width: number;
|
||
}
|
||
|
||
/** @category Platform */
|
||
declare var ImageData: {
|
||
prototype: ImageData;
|
||
new (sw: number, sh: number, settings?: ImageDataSettings): ImageData;
|
||
new (
|
||
data: Uint8ClampedArray,
|
||
sw: number,
|
||
sh?: number,
|
||
settings?: ImageDataSettings,
|
||
): ImageData;
|
||
};
|