/*! *****************************************************************************
Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
this file except in compliance with the License. You may obtain a copy of the
License at http://www.apache.org/licenses/LICENSE-2.0
THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
MERCHANTABILITY OR NON-INFRINGEMENT.
See the Apache Version 2.0 License for specific language governing permissions
and limitations under the License.
***************************************************************************** */
///
///
/////////////////////////////
/// Worker APIs
/////////////////////////////
interface AacEncoderConfig {
format?: AacBitstreamFormat;
}
interface AddEventListenerOptions extends EventListenerOptions {
once?: boolean;
passive?: boolean;
signal?: AbortSignal;
}
interface AesCbcParams extends Algorithm {
iv: BufferSource;
}
interface AesCtrParams extends Algorithm {
counter: BufferSource;
length: number;
}
interface AesDerivedKeyParams extends Algorithm {
length: number;
}
interface AesGcmParams extends Algorithm {
additionalData?: BufferSource;
iv: BufferSource;
tagLength?: number;
}
interface AesKeyAlgorithm extends KeyAlgorithm {
length: number;
}
interface AesKeyGenParams extends Algorithm {
length: number;
}
interface Algorithm {
name: string;
}
interface AudioConfiguration {
bitrate?: number;
channels?: string;
contentType: string;
samplerate?: number;
spatialRendering?: boolean;
}
interface AudioDataCopyToOptions {
format?: AudioSampleFormat;
frameCount?: number;
frameOffset?: number;
planeIndex: number;
}
interface AudioDataInit {
data: BufferSource;
format: AudioSampleFormat;
numberOfChannels: number;
numberOfFrames: number;
sampleRate: number;
timestamp: number;
transfer?: ArrayBuffer[];
}
interface AudioDecoderConfig {
codec: string;
description?: AllowSharedBufferSource;
numberOfChannels: number;
sampleRate: number;
}
interface AudioDecoderInit {
error: WebCodecsErrorCallback;
output: AudioDataOutputCallback;
}
interface AudioDecoderSupport {
config?: AudioDecoderConfig;
supported?: boolean;
}
interface AudioEncoderConfig {
aac?: AacEncoderConfig;
bitrate?: number;
bitrateMode?: BitrateMode;
codec: string;
numberOfChannels: number;
opus?: OpusEncoderConfig;
sampleRate: number;
}
interface AudioEncoderInit {
error: WebCodecsErrorCallback;
output: EncodedAudioChunkOutputCallback;
}
interface AudioEncoderSupport {
config?: AudioEncoderConfig;
supported?: boolean;
}
interface AvcEncoderConfig {
format?: AvcBitstreamFormat;
}
interface BlobPropertyBag {
endings?: EndingType;
type?: string;
}
interface CSSMatrixComponentOptions {
is2D?: boolean;
}
interface CSSNumericType {
angle?: number;
flex?: number;
frequency?: number;
length?: number;
percent?: number;
percentHint?: CSSNumericBaseType;
resolution?: number;
time?: number;
}
interface CacheQueryOptions {
ignoreMethod?: boolean;
ignoreSearch?: boolean;
ignoreVary?: boolean;
}
interface ClientQueryOptions {
includeUncontrolled?: boolean;
type?: ClientTypes;
}
interface CloseEventInit extends EventInit {
code?: number;
reason?: string;
wasClean?: boolean;
}
interface CookieInit {
domain?: string | null;
expires?: DOMHighResTimeStamp | null;
name: string;
partitioned?: boolean;
path?: string;
sameSite?: CookieSameSite;
value: string;
}
interface CookieListItem {
name?: string;
value?: string;
}
interface CookieStoreDeleteOptions {
domain?: string | null;
name: string;
partitioned?: boolean;
path?: string;
}
interface CookieStoreGetOptions {
name?: string;
url?: string;
}
interface CryptoKeyPair {
privateKey: CryptoKey;
publicKey: CryptoKey;
}
interface CustomEventInit extends EventInit {
detail?: T;
}
interface DOMMatrix2DInit {
a?: number;
b?: number;
c?: number;
d?: number;
e?: number;
f?: number;
m11?: number;
m12?: number;
m21?: number;
m22?: number;
m41?: number;
m42?: number;
}
interface DOMMatrixInit extends DOMMatrix2DInit {
is2D?: boolean;
m13?: number;
m14?: number;
m23?: number;
m24?: number;
m31?: number;
m32?: number;
m33?: number;
m34?: number;
m43?: number;
m44?: number;
}
interface DOMPointInit {
w?: number;
x?: number;
y?: number;
z?: number;
}
interface DOMQuadInit {
p1?: DOMPointInit;
p2?: DOMPointInit;
p3?: DOMPointInit;
p4?: DOMPointInit;
}
interface DOMRectInit {
height?: number;
width?: number;
x?: number;
y?: number;
}
interface EcKeyGenParams extends Algorithm {
namedCurve: NamedCurve;
}
interface EcKeyImportParams extends Algorithm {
namedCurve: NamedCurve;
}
interface EcdhKeyDeriveParams extends Algorithm {
public: CryptoKey;
}
interface EcdsaParams extends Algorithm {
hash: HashAlgorithmIdentifier;
}
interface EncodedAudioChunkInit {
data: AllowSharedBufferSource;
duration?: number;
timestamp: number;
transfer?: ArrayBuffer[];
type: EncodedAudioChunkType;
}
interface EncodedAudioChunkMetadata {
decoderConfig?: AudioDecoderConfig;
}
interface EncodedVideoChunkInit {
data: AllowSharedBufferSource;
duration?: number;
timestamp: number;
type: EncodedVideoChunkType;
}
interface EncodedVideoChunkMetadata {
decoderConfig?: VideoDecoderConfig;
svc?: SvcOutputMetadata;
}
interface ErrorEventInit extends EventInit {
colno?: number;
error?: any;
filename?: string;
lineno?: number;
message?: string;
}
interface EventInit {
bubbles?: boolean;
cancelable?: boolean;
composed?: boolean;
}
interface EventListenerOptions {
capture?: boolean;
}
interface EventSourceInit {
withCredentials?: boolean;
}
interface ExtendableCookieChangeEventInit extends ExtendableEventInit {
changed?: CookieList;
deleted?: CookieList;
}
interface ExtendableEventInit extends EventInit {
}
interface ExtendableMessageEventInit extends ExtendableEventInit {
data?: any;
lastEventId?: string;
origin?: string;
ports?: MessagePort[];
source?: Client | ServiceWorker | MessagePort | null;
}
interface FetchEventInit extends ExtendableEventInit {
clientId?: string;
handled?: Promise;
preloadResponse?: Promise;
request: Request;
resultingClientId?: string;
}
interface FilePropertyBag extends BlobPropertyBag {
lastModified?: number;
}
interface FileSystemCreateWritableOptions {
keepExistingData?: boolean;
}
interface FileSystemGetDirectoryOptions {
create?: boolean;
}
interface FileSystemGetFileOptions {
create?: boolean;
}
interface FileSystemReadWriteOptions {
at?: number;
}
interface FileSystemRemoveOptions {
recursive?: boolean;
}
interface FontFaceDescriptors {
ascentOverride?: string;
descentOverride?: string;
display?: FontDisplay;
featureSettings?: string;
lineGapOverride?: string;
stretch?: string;
style?: string;
unicodeRange?: string;
variationSettings?: string;
weight?: string;
}
interface FontFaceSetLoadEventInit extends EventInit {
fontfaces?: FontFace[];
}
interface GPUBindGroupDescriptor extends GPUObjectDescriptorBase {
entries: GPUBindGroupEntry[];
layout: GPUBindGroupLayout;
}
interface GPUBindGroupEntry {
binding: GPUIndex32;
resource: GPUBindingResource;
}
interface GPUBindGroupLayoutDescriptor extends GPUObjectDescriptorBase {
entries: GPUBindGroupLayoutEntry[];
}
interface GPUBindGroupLayoutEntry {
binding: GPUIndex32;
buffer?: GPUBufferBindingLayout;
externalTexture?: GPUExternalTextureBindingLayout;
sampler?: GPUSamplerBindingLayout;
storageTexture?: GPUStorageTextureBindingLayout;
texture?: GPUTextureBindingLayout;
visibility: GPUShaderStageFlags;
}
interface GPUBlendComponent {
dstFactor?: GPUBlendFactor;
operation?: GPUBlendOperation;
srcFactor?: GPUBlendFactor;
}
interface GPUBlendState {
alpha: GPUBlendComponent;
color: GPUBlendComponent;
}
interface GPUBufferBinding {
buffer: GPUBuffer;
offset?: GPUSize64;
size?: GPUSize64;
}
interface GPUBufferBindingLayout {
hasDynamicOffset?: boolean;
minBindingSize?: GPUSize64;
type?: GPUBufferBindingType;
}
interface GPUBufferDescriptor extends GPUObjectDescriptorBase {
mappedAtCreation?: boolean;
size: GPUSize64;
usage: GPUBufferUsageFlags;
}
interface GPUCanvasConfiguration {
alphaMode?: GPUCanvasAlphaMode;
colorSpace?: PredefinedColorSpace;
device: GPUDevice;
format: GPUTextureFormat;
toneMapping?: GPUCanvasToneMapping;
usage?: GPUTextureUsageFlags;
viewFormats?: GPUTextureFormat[];
}
interface GPUCanvasToneMapping {
mode?: GPUCanvasToneMappingMode;
}
interface GPUColorDict {
a: number;
b: number;
g: number;
r: number;
}
interface GPUColorTargetState {
blend?: GPUBlendState;
format: GPUTextureFormat;
writeMask?: GPUColorWriteFlags;
}
interface GPUCommandBufferDescriptor extends GPUObjectDescriptorBase {
}
interface GPUCommandEncoderDescriptor extends GPUObjectDescriptorBase {
}
interface GPUComputePassDescriptor extends GPUObjectDescriptorBase {
timestampWrites?: GPUComputePassTimestampWrites;
}
interface GPUComputePassTimestampWrites {
beginningOfPassWriteIndex?: GPUSize32;
endOfPassWriteIndex?: GPUSize32;
querySet: GPUQuerySet;
}
interface GPUComputePipelineDescriptor extends GPUPipelineDescriptorBase {
compute: GPUProgrammableStage;
}
interface GPUCopyExternalImageDestInfo extends GPUTexelCopyTextureInfo {
colorSpace?: PredefinedColorSpace;
premultipliedAlpha?: boolean;
}
interface GPUCopyExternalImageSourceInfo {
flipY?: boolean;
origin?: GPUOrigin2D;
source: GPUCopyExternalImageSource;
}
interface GPUDepthStencilState {
depthBias?: GPUDepthBias;
depthBiasClamp?: number;
depthBiasSlopeScale?: number;
depthCompare?: GPUCompareFunction;
depthWriteEnabled?: boolean;
format: GPUTextureFormat;
stencilBack?: GPUStencilFaceState;
stencilFront?: GPUStencilFaceState;
stencilReadMask?: GPUStencilValue;
stencilWriteMask?: GPUStencilValue;
}
interface GPUDeviceDescriptor extends GPUObjectDescriptorBase {
defaultQueue?: GPUQueueDescriptor;
requiredFeatures?: GPUFeatureName[];
requiredLimits?: Record;
}
interface GPUExtent3DDict {
depthOrArrayLayers?: GPUIntegerCoordinate;
height?: GPUIntegerCoordinate;
width: GPUIntegerCoordinate;
}
interface GPUExternalTextureBindingLayout {
}
interface GPUExternalTextureDescriptor extends GPUObjectDescriptorBase {
colorSpace?: PredefinedColorSpace;
source: VideoFrame;
}
interface GPUFragmentState extends GPUProgrammableStage {
targets: (GPUColorTargetState | null)[];
}
interface GPUMultisampleState {
alphaToCoverageEnabled?: boolean;
count?: GPUSize32;
mask?: GPUSampleMask;
}
interface GPUObjectDescriptorBase {
label?: string;
}
interface GPUOrigin2DDict {
x?: GPUIntegerCoordinate;
y?: GPUIntegerCoordinate;
}
interface GPUOrigin3DDict {
x?: GPUIntegerCoordinate;
y?: GPUIntegerCoordinate;
z?: GPUIntegerCoordinate;
}
interface GPUPipelineDescriptorBase extends GPUObjectDescriptorBase {
layout: GPUPipelineLayout | GPUAutoLayoutMode;
}
interface GPUPipelineErrorInit {
reason: GPUPipelineErrorReason;
}
interface GPUPipelineLayoutDescriptor extends GPUObjectDescriptorBase {
bindGroupLayouts: (GPUBindGroupLayout | null)[];
}
interface GPUPrimitiveState {
cullMode?: GPUCullMode;
frontFace?: GPUFrontFace;
stripIndexFormat?: GPUIndexFormat;
topology?: GPUPrimitiveTopology;
unclippedDepth?: boolean;
}
interface GPUProgrammableStage {
constants?: Record;
entryPoint?: string;
module: GPUShaderModule;
}
interface GPUQuerySetDescriptor extends GPUObjectDescriptorBase {
count: GPUSize32;
type: GPUQueryType;
}
interface GPUQueueDescriptor extends GPUObjectDescriptorBase {
}
interface GPURenderBundleDescriptor extends GPUObjectDescriptorBase {
}
interface GPURenderBundleEncoderDescriptor extends GPURenderPassLayout {
depthReadOnly?: boolean;
stencilReadOnly?: boolean;
}
interface GPURenderPassColorAttachment {
clearValue?: GPUColor;
depthSlice?: GPUIntegerCoordinate;
loadOp: GPULoadOp;
resolveTarget?: GPUTexture | GPUTextureView;
storeOp: GPUStoreOp;
view: GPUTexture | GPUTextureView;
}
interface GPURenderPassDepthStencilAttachment {
depthClearValue?: number;
depthLoadOp?: GPULoadOp;
depthReadOnly?: boolean;
depthStoreOp?: GPUStoreOp;
stencilClearValue?: GPUStencilValue;
stencilLoadOp?: GPULoadOp;
stencilReadOnly?: boolean;
stencilStoreOp?: GPUStoreOp;
view: GPUTexture | GPUTextureView;
}
interface GPURenderPassDescriptor extends GPUObjectDescriptorBase {
colorAttachments: (GPURenderPassColorAttachment | null)[];
depthStencilAttachment?: GPURenderPassDepthStencilAttachment;
maxDrawCount?: GPUSize64;
occlusionQuerySet?: GPUQuerySet;
timestampWrites?: GPURenderPassTimestampWrites;
}
interface GPURenderPassLayout extends GPUObjectDescriptorBase {
colorFormats: (GPUTextureFormat | null)[];
depthStencilFormat?: GPUTextureFormat;
sampleCount?: GPUSize32;
}
interface GPURenderPassTimestampWrites {
beginningOfPassWriteIndex?: GPUSize32;
endOfPassWriteIndex?: GPUSize32;
querySet: GPUQuerySet;
}
interface GPURenderPipelineDescriptor extends GPUPipelineDescriptorBase {
depthStencil?: GPUDepthStencilState;
fragment?: GPUFragmentState;
multisample?: GPUMultisampleState;
primitive?: GPUPrimitiveState;
vertex: GPUVertexState;
}
interface GPURequestAdapterOptions {
forceFallbackAdapter?: boolean;
powerPreference?: GPUPowerPreference;
}
interface GPUSamplerBindingLayout {
type?: GPUSamplerBindingType;
}
interface GPUSamplerDescriptor extends GPUObjectDescriptorBase {
addressModeU?: GPUAddressMode;
addressModeV?: GPUAddressMode;
addressModeW?: GPUAddressMode;
compare?: GPUCompareFunction;
lodMaxClamp?: number;
lodMinClamp?: number;
magFilter?: GPUFilterMode;
maxAnisotropy?: number;
minFilter?: GPUFilterMode;
mipmapFilter?: GPUMipmapFilterMode;
}
interface GPUShaderModuleDescriptor extends GPUObjectDescriptorBase {
code: string;
}
interface GPUStencilFaceState {
compare?: GPUCompareFunction;
depthFailOp?: GPUStencilOperation;
failOp?: GPUStencilOperation;
passOp?: GPUStencilOperation;
}
interface GPUStorageTextureBindingLayout {
access?: GPUStorageTextureAccess;
format: GPUTextureFormat;
viewDimension?: GPUTextureViewDimension;
}
interface GPUTexelCopyBufferInfo extends GPUTexelCopyBufferLayout {
buffer: GPUBuffer;
}
interface GPUTexelCopyBufferLayout {
bytesPerRow?: GPUSize32;
offset?: GPUSize64;
rowsPerImage?: GPUSize32;
}
interface GPUTexelCopyTextureInfo {
aspect?: GPUTextureAspect;
mipLevel?: GPUIntegerCoordinate;
origin?: GPUOrigin3D;
texture: GPUTexture;
}
interface GPUTextureBindingLayout {
multisampled?: boolean;
sampleType?: GPUTextureSampleType;
viewDimension?: GPUTextureViewDimension;
}
interface GPUTextureDescriptor extends GPUObjectDescriptorBase {
dimension?: GPUTextureDimension;
format: GPUTextureFormat;
mipLevelCount?: GPUIntegerCoordinate;
sampleCount?: GPUSize32;
size: GPUExtent3D;
usage: GPUTextureUsageFlags;
viewFormats?: GPUTextureFormat[];
}
interface GPUTextureViewDescriptor extends GPUObjectDescriptorBase {
arrayLayerCount?: GPUIntegerCoordinate;
aspect?: GPUTextureAspect;
baseArrayLayer?: GPUIntegerCoordinate;
baseMipLevel?: GPUIntegerCoordinate;
dimension?: GPUTextureViewDimension;
format?: GPUTextureFormat;
mipLevelCount?: GPUIntegerCoordinate;
usage?: GPUTextureUsageFlags;
}
interface GPUUncapturedErrorEventInit extends EventInit {
error: GPUError;
}
interface GPUVertexAttribute {
format: GPUVertexFormat;
offset: GPUSize64;
shaderLocation: GPUIndex32;
}
interface GPUVertexBufferLayout {
arrayStride: GPUSize64;
attributes: GPUVertexAttribute[];
stepMode?: GPUVertexStepMode;
}
interface GPUVertexState extends GPUProgrammableStage {
buffers?: (GPUVertexBufferLayout | null)[];
}
interface GetNotificationOptions {
tag?: string;
}
interface HkdfParams extends Algorithm {
hash: HashAlgorithmIdentifier;
info: BufferSource;
salt: BufferSource;
}
interface HmacImportParams extends Algorithm {
hash: HashAlgorithmIdentifier;
length?: number;
}
interface HmacKeyGenParams extends Algorithm {
hash: HashAlgorithmIdentifier;
length?: number;
}
interface IDBDatabaseInfo {
name?: string;
version?: number;
}
interface IDBIndexParameters {
multiEntry?: boolean;
unique?: boolean;
}
interface IDBObjectStoreParameters {
autoIncrement?: boolean;
keyPath?: string | string[] | null;
}
interface IDBTransactionOptions {
durability?: IDBTransactionDurability;
}
interface IDBVersionChangeEventInit extends EventInit {
newVersion?: number | null;
oldVersion?: number;
}
interface ImageBitmapOptions {
colorSpaceConversion?: ColorSpaceConversion;
imageOrientation?: ImageOrientation;
premultiplyAlpha?: PremultiplyAlpha;
resizeHeight?: number;
resizeQuality?: ResizeQuality;
resizeWidth?: number;
}
interface ImageBitmapRenderingContextSettings {
alpha?: boolean;
}
interface ImageDataSettings {
colorSpace?: PredefinedColorSpace;
pixelFormat?: ImageDataPixelFormat;
}
interface ImageDecodeOptions {
completeFramesOnly?: boolean;
frameIndex?: number;
}
interface ImageDecodeResult {
complete: boolean;
image: VideoFrame;
}
interface ImageDecoderInit {
colorSpaceConversion?: ColorSpaceConversion;
data: ImageBufferSource;
desiredHeight?: number;
desiredWidth?: number;
preferAnimation?: boolean;
transfer?: ArrayBuffer[];
type: string;
}
interface ImageEncodeOptions {
quality?: number;
type?: string;
}
interface JsonWebKey {
alg?: string;
crv?: string;
d?: string;
dp?: string;
dq?: string;
e?: string;
ext?: boolean;
k?: string;
key_ops?: string[];
kty?: string;
n?: string;
oth?: RsaOtherPrimesInfo[];
p?: string;
q?: string;
qi?: string;
use?: string;
x?: string;
y?: string;
}
interface KeyAlgorithm {
name: string;
}
interface KeySystemTrackConfiguration {
robustness?: string;
}
interface LockInfo {
clientId?: string;
mode?: LockMode;
name?: string;
}
interface LockManagerSnapshot {
held?: LockInfo[];
pending?: LockInfo[];
}
interface LockOptions {
ifAvailable?: boolean;
mode?: LockMode;
signal?: AbortSignal;
steal?: boolean;
}
interface MediaCapabilitiesDecodingInfo extends MediaCapabilitiesInfo {
}
interface MediaCapabilitiesEncodingInfo extends MediaCapabilitiesInfo {
}
interface MediaCapabilitiesInfo {
powerEfficient: boolean;
smooth: boolean;
supported: boolean;
}
interface MediaCapabilitiesKeySystemConfiguration {
audio?: KeySystemTrackConfiguration;
distinctiveIdentifier?: MediaKeysRequirement;
initDataType?: string;
keySystem: string;
persistentState?: MediaKeysRequirement;
sessionTypes?: string[];
video?: KeySystemTrackConfiguration;
}
interface MediaConfiguration {
audio?: AudioConfiguration;
video?: VideoConfiguration;
}
interface MediaDecodingConfiguration extends MediaConfiguration {
keySystemConfiguration?: MediaCapabilitiesKeySystemConfiguration;
type: MediaDecodingType;
}
interface MediaEncodingConfiguration extends MediaConfiguration {
type: MediaEncodingType;
}
interface MediaStreamTrackProcessorInit {
maxBufferSize?: number;
}
interface MessageEventInit extends EventInit {
data?: T;
lastEventId?: string;
origin?: string;
ports?: MessagePort[];
source?: MessageEventSource | null;
}
interface MultiCacheQueryOptions extends CacheQueryOptions {
cacheName?: string;
}
interface NavigationPreloadState {
enabled?: boolean;
headerValue?: string;
}
interface NotificationEventInit extends ExtendableEventInit {
action?: string;
notification: Notification;
}
interface NotificationOptions {
badge?: string;
body?: string;
data?: any;
dir?: NotificationDirection;
icon?: string;
lang?: string;
requireInteraction?: boolean;
silent?: boolean | null;
tag?: string;
}
interface OpusEncoderConfig {
complexity?: number;
format?: OpusBitstreamFormat;
frameDuration?: number;
packetlossperc?: number;
usedtx?: boolean;
useinbandfec?: boolean;
}
interface Pbkdf2Params extends Algorithm {
hash: HashAlgorithmIdentifier;
iterations: number;
salt: BufferSource;
}
interface PerformanceMarkOptions {
detail?: any;
startTime?: DOMHighResTimeStamp;
}
interface PerformanceMeasureOptions {
detail?: any;
duration?: DOMHighResTimeStamp;
end?: string | DOMHighResTimeStamp;
start?: string | DOMHighResTimeStamp;
}
interface PerformanceObserverInit {
buffered?: boolean;
entryTypes?: string[];
type?: string;
}
interface PermissionDescriptor {
name: PermissionName;
}
interface PlaneLayout {
offset: number;
stride: number;
}
interface ProgressEventInit extends EventInit {
lengthComputable?: boolean;
loaded?: number;
total?: number;
}
interface PromiseRejectionEventInit extends EventInit {
promise: Promise;
reason?: any;
}
interface PushEventInit extends ExtendableEventInit {
data?: PushMessageDataInit | null;
}
interface PushSubscriptionChangeEventInit extends ExtendableEventInit {
newSubscription?: PushSubscription;
oldSubscription?: PushSubscription;
}
interface PushSubscriptionJSON {
endpoint?: string;
expirationTime?: EpochTimeStamp | null;
keys?: Record;
}
interface PushSubscriptionOptionsInit {
applicationServerKey?: BufferSource | string | null;
userVisibleOnly?: boolean;
}
interface QueuingStrategy {
highWaterMark?: number;
size?: QueuingStrategySize;
}
interface QueuingStrategyInit {
/**
* Creates a new ByteLengthQueuingStrategy with the provided high water mark.
*
* Note that the provided high water mark will not be validated ahead of time. Instead, if it is negative, NaN, or not a number, the resulting ByteLengthQueuingStrategy will cause the corresponding stream constructor to throw.
*/
highWaterMark: number;
}
interface RTCEncodedAudioFrameMetadata extends RTCEncodedFrameMetadata {
sequenceNumber?: number;
}
interface RTCEncodedFrameMetadata {
contributingSources?: number[];
mimeType?: string;
payloadType?: number;
rtpTimestamp?: number;
synchronizationSource?: number;
}
interface RTCEncodedVideoFrameMetadata extends RTCEncodedFrameMetadata {
dependencies?: number[];
frameId?: number;
height?: number;
spatialIndex?: number;
temporalIndex?: number;
timestamp?: number;
width?: number;
}
interface ReadableStreamBYOBReaderReadOptions {
min?: number;
}
interface ReadableStreamGetReaderOptions {
/**
* Creates a ReadableStreamBYOBReader and locks the stream to the new reader.
*
* This call behaves the same way as the no-argument variant, except that it only works on readable byte streams, i.e. streams which were constructed specifically with the ability to handle "bring your own buffer" reading. The returned BYOB reader provides the ability to directly read individual chunks from the stream via its read() method, into developer-supplied buffers, allowing more precise control over allocation.
*/
mode?: ReadableStreamReaderMode;
}
interface ReadableStreamIteratorOptions {
/**
* Asynchronously iterates over the chunks in the stream's internal queue.
*
* Asynchronously iterating over the stream will lock it, preventing any other consumer from acquiring a reader. The lock will be released if the async iterator's return() method is called, e.g. by breaking out of the loop.
*
* By default, calling the async iterator's return() method will also cancel the stream. To prevent this, use the stream's values() method, passing true for the preventCancel option.
*/
preventCancel?: boolean;
}
interface ReadableStreamReadDoneResult {
done: true;
value: T | undefined;
}
interface ReadableStreamReadValueResult {
done: false;
value: T;
}
interface ReadableWritablePair {
readable: ReadableStream;
/**
* Provides a convenient, chainable way of piping this readable stream through a transform stream (or any other { writable, readable } pair). It simply pipes the stream into the writable side of the supplied pair, and returns the readable side for further use.
*
* Piping a stream will lock it for the duration of the pipe, preventing any other consumer from acquiring a reader.
*/
writable: WritableStream;
}
interface RegistrationOptions {
scope?: string;
type?: WorkerType;
updateViaCache?: ServiceWorkerUpdateViaCache;
}
interface Report {
body?: ReportBody | null;
type?: string;
url?: string;
}
interface ReportBody {
}
interface ReportingObserverOptions {
buffered?: boolean;
types?: string[];
}
interface RequestInit {
/** A BodyInit object or null to set request's body. */
body?: BodyInit | null;
/** A string indicating how the request will interact with the browser's cache to set request's cache. */
cache?: RequestCache;
/** A string indicating whether credentials will be sent with the request always, never, or only when sent to a same-origin URL. Sets request's credentials. */
credentials?: RequestCredentials;
/** A Headers object, an object literal, or an array of two-item arrays to set request's headers. */
headers?: HeadersInit;
/** A cryptographic hash of the resource to be fetched by request. Sets request's integrity. */
integrity?: string;
/** A boolean to set request's keepalive. */
keepalive?: boolean;
/** A string to set request's method. */
method?: string;
/** A string to indicate whether the request will use CORS, or will be restricted to same-origin URLs. Sets request's mode. */
mode?: RequestMode;
priority?: RequestPriority;
/** A string indicating whether request follows redirects, results in an error upon encountering a redirect, or returns the redirect (in an opaque fashion). Sets request's redirect. */
redirect?: RequestRedirect;
/** A string whose value is a same-origin URL, "about:client", or the empty string, to set request's referrer. */
referrer?: string;
/** A referrer policy to set request's referrerPolicy. */
referrerPolicy?: ReferrerPolicy;
/** An AbortSignal to set request's signal. */
signal?: AbortSignal | null;
/** Can only be null. Used to disassociate request from any Window. */
window?: null;
}
interface ResponseInit {
headers?: HeadersInit;
status?: number;
statusText?: string;
}
interface RsaHashedImportParams extends Algorithm {
hash: HashAlgorithmIdentifier;
}
interface RsaHashedKeyGenParams extends RsaKeyGenParams {
hash: HashAlgorithmIdentifier;
}
interface RsaKeyGenParams extends Algorithm {
modulusLength: number;
publicExponent: BigInteger;
}
interface RsaOaepParams extends Algorithm {
label?: BufferSource;
}
interface RsaOtherPrimesInfo {
d?: string;
r?: string;
t?: string;
}
interface RsaPssParams extends Algorithm {
saltLength: number;
}
interface SchedulerPostTaskOptions {
delay?: number;
priority?: TaskPriority;
signal?: AbortSignal;
}
interface SecurityPolicyViolationEventInit extends EventInit {
blockedURI?: string;
columnNumber?: number;
disposition?: SecurityPolicyViolationEventDisposition;
documentURI?: string;
effectiveDirective?: string;
lineNumber?: number;
originalPolicy?: string;
referrer?: string;
sample?: string;
sourceFile?: string;
statusCode?: number;
violatedDirective?: string;
}
interface StorageEstimate {
quota?: number;
usage?: number;
}
interface StreamPipeOptions {
preventAbort?: boolean;
preventCancel?: boolean;
/**
* Pipes this readable stream to a given writable stream destination. The way in which the piping process behaves under various error conditions can be customized with a number of passed options. It returns a promise that fulfills when the piping process completes successfully, or rejects if any errors were encountered.
*
* Piping a stream will lock it for the duration of the pipe, preventing any other consumer from acquiring a reader.
*
* Errors and closures of the source and destination streams propagate as follows:
*
* An error in this source readable stream will abort destination, unless preventAbort is truthy. The returned promise will be rejected with the source's error, or with any error that occurs during aborting the destination.
*
* An error in destination will cancel this source readable stream, unless preventCancel is truthy. The returned promise will be rejected with the destination's error, or with any error that occurs during canceling the source.
*
* When this source readable stream closes, destination will be closed, unless preventClose is truthy. The returned promise will be fulfilled once this process completes, unless an error is encountered while closing the destination, in which case it will be rejected with that error.
*
* If destination starts out closed or closing, this source readable stream will be canceled, unless preventCancel is true. The returned promise will be rejected with an error indicating piping to a closed stream failed, or with any error that occurs during canceling the source.
*
* The signal option can be set to an AbortSignal to allow aborting an ongoing pipe operation via the corresponding AbortController. In this case, this source readable stream will be canceled, and destination aborted, unless the respective options preventCancel or preventAbort are set.
*/
preventClose?: boolean;
signal?: AbortSignal;
}
interface StructuredSerializeOptions {
transfer?: Transferable[];
}
interface SvcOutputMetadata {
temporalLayerId?: number;
}
interface TaskControllerInit {
priority?: TaskPriority;
}
interface TaskPriorityChangeEventInit extends EventInit {
previousPriority: TaskPriority;
}
interface TaskSignalAnyInit {
priority?: TaskPriority | TaskSignal;
}
interface TextDecodeOptions {
stream?: boolean;
}
interface TextDecoderOptions {
fatal?: boolean;
ignoreBOM?: boolean;
}
interface TextEncoderEncodeIntoResult {
read: number;
written: number;
}
interface Transformer {
flush?: TransformerFlushCallback;
readableType?: undefined;
start?: TransformerStartCallback;
transform?: TransformerTransformCallback;
writableType?: undefined;
}
interface URLPatternComponentResult {
groups: Record;
input: string;
}
interface URLPatternInit {
baseURL?: string;
hash?: string;
hostname?: string;
password?: string;
pathname?: string;
port?: string;
protocol?: string;
search?: string;
username?: string;
}
interface URLPatternOptions {
ignoreCase?: boolean;
}
interface URLPatternResult {
hash: URLPatternComponentResult;
hostname: URLPatternComponentResult;
inputs: URLPatternInput[];
password: URLPatternComponentResult;
pathname: URLPatternComponentResult;
port: URLPatternComponentResult;
protocol: URLPatternComponentResult;
search: URLPatternComponentResult;
username: URLPatternComponentResult;
}
interface UnderlyingByteSource {
autoAllocateChunkSize?: number;
cancel?: UnderlyingSourceCancelCallback;
pull?: (controller: ReadableByteStreamController) => void | PromiseLike;
start?: (controller: ReadableByteStreamController) => any;
type: "bytes";
}
interface UnderlyingDefaultSource {
cancel?: UnderlyingSourceCancelCallback;
pull?: (controller: ReadableStreamDefaultController) => void | PromiseLike;
start?: (controller: ReadableStreamDefaultController) => any;
type?: undefined;
}
interface UnderlyingSink {
abort?: UnderlyingSinkAbortCallback;
close?: UnderlyingSinkCloseCallback;
start?: UnderlyingSinkStartCallback;
type?: undefined;
write?: UnderlyingSinkWriteCallback;
}
interface UnderlyingSource {
autoAllocateChunkSize?: number;
cancel?: UnderlyingSourceCancelCallback;
pull?: UnderlyingSourcePullCallback;
start?: UnderlyingSourceStartCallback;
type?: ReadableStreamType;
}
interface VideoColorSpaceInit {
fullRange?: boolean | null;
matrix?: VideoMatrixCoefficients | null;
primaries?: VideoColorPrimaries | null;
transfer?: VideoTransferCharacteristics | null;
}
interface VideoConfiguration {
bitrate: number;
colorGamut?: ColorGamut;
contentType: string;
framerate: number;
hasAlphaChannel?: boolean;
hdrMetadataType?: HdrMetadataType;
height: number;
scalabilityMode?: string;
transferFunction?: TransferFunction;
width: number;
}
interface VideoDecoderConfig {
codec: string;
codedHeight?: number;
codedWidth?: number;
colorSpace?: VideoColorSpaceInit;
description?: AllowSharedBufferSource;
displayAspectHeight?: number;
displayAspectWidth?: number;
hardwareAcceleration?: HardwareAcceleration;
optimizeForLatency?: boolean;
}
interface VideoDecoderInit {
error: WebCodecsErrorCallback;
output: VideoFrameOutputCallback;
}
interface VideoDecoderSupport {
config?: VideoDecoderConfig;
supported?: boolean;
}
interface VideoEncoderConfig {
alpha?: AlphaOption;
avc?: AvcEncoderConfig;
bitrate?: number;
bitrateMode?: VideoEncoderBitrateMode;
codec: string;
contentHint?: string;
displayHeight?: number;
displayWidth?: number;
framerate?: number;
hardwareAcceleration?: HardwareAcceleration;
height: number;
latencyMode?: LatencyMode;
scalabilityMode?: string;
width: number;
}
interface VideoEncoderEncodeOptions {
avc?: VideoEncoderEncodeOptionsForAvc;
keyFrame?: boolean;
}
interface VideoEncoderEncodeOptionsForAvc {
quantizer?: number | null;
}
interface VideoEncoderInit {
error: WebCodecsErrorCallback;
output: EncodedVideoChunkOutputCallback;
}
interface VideoEncoderSupport {
config?: VideoEncoderConfig;
supported?: boolean;
}
interface VideoFrameBufferInit {
codedHeight: number;
codedWidth: number;
colorSpace?: VideoColorSpaceInit;
displayHeight?: number;
displayWidth?: number;
duration?: number;
format: VideoPixelFormat;
layout?: PlaneLayout[];
timestamp: number;
visibleRect?: DOMRectInit;
}
interface VideoFrameCopyToOptions {
colorSpace?: PredefinedColorSpace;
format?: VideoPixelFormat;
layout?: PlaneLayout[];
rect?: DOMRectInit;
}
interface VideoFrameInit {
alpha?: AlphaOption;
displayHeight?: number;
displayWidth?: number;
duration?: number;
timestamp?: number;
visibleRect?: DOMRectInit;
}
interface WebGLContextAttributes {
alpha?: boolean;
antialias?: boolean;
depth?: boolean;
desynchronized?: boolean;
failIfMajorPerformanceCaveat?: boolean;
powerPreference?: WebGLPowerPreference;
premultipliedAlpha?: boolean;
preserveDrawingBuffer?: boolean;
stencil?: boolean;
xrCompatible?: boolean;
}
interface WebGLContextEventInit extends EventInit {
statusMessage?: string;
}
interface WebTransportCloseInfo {
closeCode?: number;
reason?: string;
}
interface WebTransportErrorOptions {
source?: WebTransportErrorSource;
streamErrorCode?: number | null;
}
interface WebTransportHash {
algorithm: string;
value: BufferSource;
}
interface WebTransportOptions {
allowPooling?: boolean;
congestionControl?: WebTransportCongestionControl;
protocols?: string[];
requireUnreliable?: boolean;
serverCertificateHashes?: WebTransportHash[];
}
interface WebTransportSendOptions {
sendOrder?: number;
}
interface WebTransportSendStreamOptions extends WebTransportSendOptions {
}
interface WorkerOptions {
credentials?: RequestCredentials;
name?: string;
type?: WorkerType;
}
interface WriteParams {
data?: BufferSource | Blob | string | null;
position?: number | null;
size?: number | null;
type: WriteCommandType;
}
/**
* The **`ANGLE_instanced_arrays`** extension is part of the WebGL API and allows to draw the same object, or groups of similar objects multiple times, if they share the same vertex data, primitive count and type.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/ANGLE_instanced_arrays)
*/
interface ANGLE_instanced_arrays {
/**
* The **`ANGLE_instanced_arrays.drawArraysInstancedANGLE()`** method of the WebGL API renders primitives from array data like the gl.drawArrays() method. In addition, it can execute multiple instances of the range of elements.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/ANGLE_instanced_arrays/drawArraysInstancedANGLE)
*/
drawArraysInstancedANGLE(mode: GLenum, first: GLint, count: GLsizei, primcount: GLsizei): void;
/**
* The **`ANGLE_instanced_arrays.drawElementsInstancedANGLE()`** method of the WebGL API renders primitives from array data like the gl.drawElements() method. In addition, it can execute multiple instances of a set of elements.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/ANGLE_instanced_arrays/drawElementsInstancedANGLE)
*/
drawElementsInstancedANGLE(mode: GLenum, count: GLsizei, type: GLenum, offset: GLintptr, primcount: GLsizei): void;
/**
* The **`ANGLE_instanced_arrays.vertexAttribDivisorANGLE()`** method of the WebGL API modifies the rate at which generic vertex attributes advance when rendering multiple instances of primitives with ext.drawArraysInstancedANGLE() and ext.drawElementsInstancedANGLE().
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/ANGLE_instanced_arrays/vertexAttribDivisorANGLE)
*/
vertexAttribDivisorANGLE(index: GLuint, divisor: GLuint): void;
readonly VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE: 0x88FE;
}
/**
* The **`AbortController`** interface represents a controller object that allows you to abort one or more Web requests as and when desired.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbortController)
*/
interface AbortController {
/**
* The **`signal`** read-only property of the AbortController interface returns an AbortSignal object instance, which can be used to communicate with/abort an asynchronous operation as desired.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbortController/signal)
*/
readonly signal: AbortSignal;
/**
* The **`abort()`** method of the AbortController interface aborts an asynchronous operation before it has completed. This is able to abort fetch requests, the consumption of any response bodies, or streams.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbortController/abort)
*/
abort(reason?: any): void;
}
declare var AbortController: {
prototype: AbortController;
new(): AbortController;
};
interface AbortSignalEventMap {
"abort": Event;
}
/**
* The **`AbortSignal`** interface represents a signal object that allows you to communicate with an asynchronous operation (such as a fetch request) and abort it if required via an AbortController object.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbortSignal)
*/
interface AbortSignal extends EventTarget {
/**
* The **`aborted`** read-only property returns a value that indicates whether the asynchronous operations the signal is communicating with are aborted (true) or not (false).
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbortSignal/aborted)
*/
readonly aborted: boolean;
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbortSignal/abort_event) */
onabort: ((this: AbortSignal, ev: Event) => any) | null;
/**
* The **`reason`** read-only property returns a JavaScript value that indicates the abort reason.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbortSignal/reason)
*/
readonly reason: any;
/**
* The **`throwIfAborted()`** method throws the signal's abort reason if the signal has been aborted; otherwise it does nothing.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbortSignal/throwIfAborted)
*/
throwIfAborted(): void;
addEventListener(type: K, listener: (this: AbortSignal, ev: AbortSignalEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
removeEventListener(type: K, listener: (this: AbortSignal, ev: AbortSignalEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}
declare var AbortSignal: {
prototype: AbortSignal;
new(): AbortSignal;
/**
* The **`AbortSignal.abort()`** static method returns an AbortSignal that is already set as aborted (and which does not trigger an abort event).
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbortSignal/abort_static)
*/
abort(reason?: any): AbortSignal;
/**
* The **`AbortSignal.any()`** static method takes an iterable of abort signals and returns an AbortSignal. The returned abort signal is aborted when any of the input iterable abort signals are aborted. The abort reason will be set to the reason of the first signal that is aborted. If any of the given abort signals are already aborted then so will be the returned AbortSignal.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbortSignal/any_static)
*/
any(signals: AbortSignal[]): AbortSignal;
/**
* The **`AbortSignal.timeout()`** static method returns an AbortSignal that will automatically abort after a specified time.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbortSignal/timeout_static)
*/
timeout(milliseconds: number): AbortSignal;
};
interface AbstractWorkerEventMap {
"error": ErrorEvent;
}
interface AbstractWorker {
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorker/error_event) */
onerror: ((this: AbstractWorker, ev: ErrorEvent) => any) | null;
addEventListener(type: K, listener: (this: AbstractWorker, ev: AbstractWorkerEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
removeEventListener(type: K, listener: (this: AbstractWorker, ev: AbstractWorkerEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}
interface AnimationFrameProvider {
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DedicatedWorkerGlobalScope/cancelAnimationFrame) */
cancelAnimationFrame(handle: number): void;
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DedicatedWorkerGlobalScope/requestAnimationFrame) */
requestAnimationFrame(callback: FrameRequestCallback): number;
}
/**
* The **`AudioData`** interface of the WebCodecs API represents an audio sample.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioData)
*/
interface AudioData {
/**
* The **`duration`** read-only property of the AudioData interface returns the duration in microseconds of this AudioData object.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioData/duration)
*/
readonly duration: number;
/**
* The **`format`** read-only property of the AudioData interface returns the sample format of the AudioData object.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioData/format)
*/
readonly format: AudioSampleFormat | null;
/**
* The **`numberOfChannels`** read-only property of the AudioData interface returns the number of channels in the AudioData object.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioData/numberOfChannels)
*/
readonly numberOfChannels: number;
/**
* The **`numberOfFrames`** read-only property of the AudioData interface returns the number of frames in the AudioData object.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioData/numberOfFrames)
*/
readonly numberOfFrames: number;
/**
* The **`sampleRate`** read-only property of the AudioData interface returns the sample rate in Hz.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioData/sampleRate)
*/
readonly sampleRate: number;
/**
* The **`timestamp`** read-only property of the AudioData interface returns the timestamp of this AudioData object.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioData/timestamp)
*/
readonly timestamp: number;
/**
* The **`allocationSize()`** method of the AudioData interface returns the size in bytes required to hold the current sample as filtered by options passed into the method.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioData/allocationSize)
*/
allocationSize(options: AudioDataCopyToOptions): number;
/**
* The **`clone()`** method of the AudioData interface creates a new AudioData object with reference to the same media resource as the original.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioData/clone)
*/
clone(): AudioData;
/**
* The **`close()`** method of the AudioData interface clears all states and releases the reference to the media resource.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioData/close)
*/
close(): void;
/**
* The **`copyTo()`** method of the AudioData interface copies a plane of an AudioData object to a destination buffer.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioData/copyTo)
*/
copyTo(destination: AllowSharedBufferSource, options: AudioDataCopyToOptions): void;
}
declare var AudioData: {
prototype: AudioData;
new(init: AudioDataInit): AudioData;
};
interface AudioDecoderEventMap {
"dequeue": Event;
}
/**
* The **`AudioDecoder`** interface of the WebCodecs API decodes chunks of audio.
* Available only in secure contexts.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioDecoder)
*/
interface AudioDecoder extends EventTarget {
/**
* The **`decodeQueueSize`** read-only property of the AudioDecoder interface returns the number of pending decode requests in the queue.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioDecoder/decodeQueueSize)
*/
readonly decodeQueueSize: number;
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioDecoder/dequeue_event) */
ondequeue: ((this: AudioDecoder, ev: Event) => any) | null;
/**
* The **`state`** read-only property of the AudioDecoder interface returns the current state of the underlying codec.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioDecoder/state)
*/
readonly state: CodecState;
/**
* The **`close()`** method of the AudioDecoder interface ends all pending work and releases system resources.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioDecoder/close)
*/
close(): void;
/**
* The **`configure()`** method of the AudioDecoder interface enqueues a control message to configure the audio decoder for decoding chunks.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioDecoder/configure)
*/
configure(config: AudioDecoderConfig): void;
/**
* The **`decode()`** method of the AudioDecoder interface enqueues a control message to decode a given chunk of audio.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioDecoder/decode)
*/
decode(chunk: EncodedAudioChunk): void;
/**
* The **`flush()`** method of the AudioDecoder interface returns a Promise that resolves once all pending messages in the queue have been completed.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioDecoder/flush)
*/
flush(): Promise;
/**
* The **`reset()`** method of the AudioDecoder interface resets all states including configuration, control messages in the control message queue, and all pending callbacks.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioDecoder/reset)
*/
reset(): void;
addEventListener(type: K, listener: (this: AudioDecoder, ev: AudioDecoderEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
removeEventListener(type: K, listener: (this: AudioDecoder, ev: AudioDecoderEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}
declare var AudioDecoder: {
prototype: AudioDecoder;
new(init: AudioDecoderInit): AudioDecoder;
/**
* The **`isConfigSupported()`** static method of the AudioDecoder interface checks if the given config is supported (that is, if AudioDecoder objects can be successfully configured with the given config).
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioDecoder/isConfigSupported_static)
*/
isConfigSupported(config: AudioDecoderConfig): Promise;
};
interface AudioEncoderEventMap {
"dequeue": Event;
}
/**
* The **`AudioEncoder`** interface of the WebCodecs API encodes AudioData objects.
* Available only in secure contexts.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioEncoder)
*/
interface AudioEncoder extends EventTarget {
/**
* The **`encodeQueueSize`** read-only property of the AudioEncoder interface returns the number of pending encode requests in the queue.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioEncoder/encodeQueueSize)
*/
readonly encodeQueueSize: number;
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioEncoder/dequeue_event) */
ondequeue: ((this: AudioEncoder, ev: Event) => any) | null;
/**
* The **`state`** read-only property of the AudioEncoder interface returns the current state of the underlying codec.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioEncoder/state)
*/
readonly state: CodecState;
/**
* The **`close()`** method of the AudioEncoder interface ends all pending work and releases system resources.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioEncoder/close)
*/
close(): void;
/**
* The **`configure()`** method of the AudioEncoder interface enqueues a control message to configure the audio encoder for encoding chunks.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioEncoder/configure)
*/
configure(config: AudioEncoderConfig): void;
/**
* The **`encode()`** method of the AudioEncoder interface enqueues a control message to encode a given AudioData object.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioEncoder/encode)
*/
encode(data: AudioData): void;
/**
* The **`flush()`** method of the AudioEncoder interface returns a Promise that resolves once all pending messages in the queue have been completed.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioEncoder/flush)
*/
flush(): Promise;
/**
* The **`reset()`** method of the AudioEncoder interface resets all states including configuration, control messages in the control message queue, and all pending callbacks.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioEncoder/reset)
*/
reset(): void;
addEventListener(type: K, listener: (this: AudioEncoder, ev: AudioEncoderEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
removeEventListener(type: K, listener: (this: AudioEncoder, ev: AudioEncoderEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}
declare var AudioEncoder: {
prototype: AudioEncoder;
new(init: AudioEncoderInit): AudioEncoder;
/**
* The **`isConfigSupported()`** static method of the AudioEncoder interface checks if the given config is supported (that is, if AudioEncoder objects can be successfully configured with the given config).
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioEncoder/isConfigSupported_static)
*/
isConfigSupported(config: AudioEncoderConfig): Promise;
};
/**
* The **`Blob`** interface represents a blob, which is a file-like object of immutable, raw data; they can be read as text or binary data, or converted into a ReadableStream so its methods can be used for processing the data.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Blob)
*/
interface Blob {
/**
* The **`size`** read-only property of the Blob interface returns the size of the Blob or File in bytes.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Blob/size)
*/
readonly size: number;
/**
* The **`type`** read-only property of the Blob interface returns the MIME type of the file.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Blob/type)
*/
readonly type: string;
/**
* The **`arrayBuffer()`** method of the Blob interface returns a Promise that resolves with the contents of the blob as binary data contained in an ArrayBuffer.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Blob/arrayBuffer)
*/
arrayBuffer(): Promise;
/**
* The **`bytes()`** method of the Blob interface returns a Promise that resolves with a Uint8Array containing the contents of the blob as an array of bytes.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Blob/bytes)
*/
bytes(): Promise>;
/**
* The **`slice()`** method of the Blob interface creates and returns a new Blob object which contains data from a subset of the blob on which it's called.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Blob/slice)
*/
slice(start?: number, end?: number, contentType?: string): Blob;
/**
* The **`stream()`** method of the Blob interface returns a ReadableStream which upon reading returns the data contained within the Blob.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Blob/stream)
*/
stream(): ReadableStream>;
/**
* The **`text()`** method of the Blob interface returns a Promise that resolves with a string containing the contents of the blob, interpreted as UTF-8.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Blob/text)
*/
text(): Promise;
}
declare var Blob: {
prototype: Blob;
new(blobParts?: BlobPart[], options?: BlobPropertyBag): Blob;
};
interface Body {
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/body) */
readonly body: ReadableStream> | null;
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/bodyUsed) */
readonly bodyUsed: boolean;
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/arrayBuffer) */
arrayBuffer(): Promise;
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/blob) */
blob(): Promise;
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/bytes) */
bytes(): Promise>;
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/formData) */
formData(): Promise;
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/json) */
json(): Promise;
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/text) */
text(): Promise;
}
interface BroadcastChannelEventMap {
"message": MessageEvent;
"messageerror": MessageEvent;
}
/**
* The **`BroadcastChannel`** interface represents a named channel that any browsing context of a given origin can subscribe to. It allows communication between different documents (in different windows, tabs, frames or iframes) of the same origin. Messages are broadcasted via a message event fired at all BroadcastChannel objects listening to the channel, except the object that sent the message.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/BroadcastChannel)
*/
interface BroadcastChannel extends EventTarget {
/**
* The **`name`** read-only property of the BroadcastChannel interface returns a string, which uniquely identifies the given channel with its name. This name is passed to the BroadcastChannel() constructor at creation time and is therefore read-only.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/BroadcastChannel/name)
*/
readonly name: string;
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BroadcastChannel/message_event) */
onmessage: ((this: BroadcastChannel, ev: MessageEvent) => any) | null;
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BroadcastChannel/messageerror_event) */
onmessageerror: ((this: BroadcastChannel, ev: MessageEvent) => any) | null;
/**
* The **`close()`** method of the BroadcastChannel interface terminates the connection to the underlying channel, allowing the object to be garbage collected. This is a necessary step to perform as there is no other way for a browser to know that this channel is not needed anymore.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/BroadcastChannel/close)
*/
close(): void;
/**
* The **`postMessage()`** method of the BroadcastChannel interface sends a message, which can be of any kind of Object, to each listener in any browsing context with the same origin. The message is transmitted as a message event targeted at each BroadcastChannel bound to the channel.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/BroadcastChannel/postMessage)
*/
postMessage(message: any): void;
addEventListener(type: K, listener: (this: BroadcastChannel, ev: BroadcastChannelEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
removeEventListener(type: K, listener: (this: BroadcastChannel, ev: BroadcastChannelEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}
declare var BroadcastChannel: {
prototype: BroadcastChannel;
new(name: string): BroadcastChannel;
};
/**
* The **`ByteLengthQueuingStrategy`** interface of the Streams API provides a built-in byte length queuing strategy that can be used when constructing streams.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/ByteLengthQueuingStrategy)
*/
interface ByteLengthQueuingStrategy extends QueuingStrategy {
/**
* The read-only **`ByteLengthQueuingStrategy.highWaterMark`** property returns the total number of bytes that can be contained in the internal queue before backpressure is applied.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/ByteLengthQueuingStrategy/highWaterMark)
*/
readonly highWaterMark: number;
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ByteLengthQueuingStrategy/size) */
readonly size: QueuingStrategySize;
}
declare var ByteLengthQueuingStrategy: {
prototype: ByteLengthQueuingStrategy;
new(init: QueuingStrategyInit): ByteLengthQueuingStrategy;
};
/**
* The **`CSSImageValue`** interface of the CSS Typed Object Model API represents values for properties that take an image, for example background-image, list-style-image, or border-image-source.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSImageValue)
*/
interface CSSImageValue extends CSSStyleValue {
}
declare var CSSImageValue: {
prototype: CSSImageValue;
new(): CSSImageValue;
};
/**
* The **`CSSKeywordValue`** interface of the CSS Typed Object Model API creates an object to represent CSS keywords and other identifiers.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSKeywordValue)
*/
interface CSSKeywordValue extends CSSStyleValue {
/**
* The **`value`** property of the CSSKeywordValue interface returns or sets the value of the CSSKeywordValue.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSKeywordValue/value)
*/
value: string;
}
declare var CSSKeywordValue: {
prototype: CSSKeywordValue;
new(value: string): CSSKeywordValue;
};
interface CSSMathClamp extends CSSMathValue {
readonly lower: CSSNumericValue;
readonly upper: CSSNumericValue;
readonly value: CSSNumericValue;
}
declare var CSSMathClamp: {
prototype: CSSMathClamp;
new(lower: CSSNumberish, value: CSSNumberish, upper: CSSNumberish): CSSMathClamp;
};
/**
* The **`CSSMathInvert`** interface of the CSS Typed Object Model API represents a CSS calc() used as calc(1 / ). It inherits properties and methods from its parent CSSNumericValue.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSMathInvert)
*/
interface CSSMathInvert extends CSSMathValue {
/**
* The **`CSSMathInvert.value`** read-only property of the CSSMathInvert interface returns a CSSNumericValue object.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSMathInvert/value)
*/
readonly value: CSSNumericValue;
}
declare var CSSMathInvert: {
prototype: CSSMathInvert;
new(arg: CSSNumberish): CSSMathInvert;
};
/**
* The **`CSSMathMax`** interface of the CSS Typed Object Model API represents the CSS max() function. It inherits properties and methods from its parent CSSNumericValue.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSMathMax)
*/
interface CSSMathMax extends CSSMathValue {
/**
* The **`CSSMathMax.values`** read-only property of the CSSMathMax interface returns a CSSNumericArray object which contains one or more CSSNumericValue objects.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSMathMax/values)
*/
readonly values: CSSNumericArray;
}
declare var CSSMathMax: {
prototype: CSSMathMax;
new(...args: CSSNumberish[]): CSSMathMax;
};
/**
* The **`CSSMathMin`** interface of the CSS Typed Object Model API represents the CSS min() function. It inherits properties and methods from its parent CSSNumericValue.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSMathMin)
*/
interface CSSMathMin extends CSSMathValue {
/**
* The **`CSSMathMin.values`** read-only property of the CSSMathMin interface returns a CSSNumericArray object which contains one or more CSSNumericValue objects.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSMathMin/values)
*/
readonly values: CSSNumericArray;
}
declare var CSSMathMin: {
prototype: CSSMathMin;
new(...args: CSSNumberish[]): CSSMathMin;
};
/**
* The **`CSSMathNegate`** interface of the CSS Typed Object Model API negates the value passed into it. It inherits properties and methods from its parent CSSNumericValue.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSMathNegate)
*/
interface CSSMathNegate extends CSSMathValue {
/**
* The **`CSSMathNegate.value`** read-only property of the CSSMathNegate interface returns a CSSNumericValue object.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSMathNegate/value)
*/
readonly value: CSSNumericValue;
}
declare var CSSMathNegate: {
prototype: CSSMathNegate;
new(arg: CSSNumberish): CSSMathNegate;
};
/**
* The **`CSSMathProduct`** interface of the CSS Typed Object Model API represents the result obtained by calling add(), sub(), or toSum() on CSSNumericValue. It inherits properties and methods from its parent CSSNumericValue.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSMathProduct)
*/
interface CSSMathProduct extends CSSMathValue {
/**
* The **`CSSMathProduct.values`** read-only property of the CSSMathProduct interface returns a CSSNumericArray object which contains one or more CSSNumericValue objects.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSMathProduct/values)
*/
readonly values: CSSNumericArray;
}
declare var CSSMathProduct: {
prototype: CSSMathProduct;
new(...args: CSSNumberish[]): CSSMathProduct;
};
/**
* The **`CSSMathSum`** interface of the CSS Typed Object Model API represents the result obtained by calling add(), sub(), or toSum() on CSSNumericValue.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSMathSum)
*/
interface CSSMathSum extends CSSMathValue {
/**
* The **`CSSMathSum.values`** read-only property of the CSSMathSum interface returns a CSSNumericArray object which contains one or more CSSNumericValue objects.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSMathSum/values)
*/
readonly values: CSSNumericArray;
}
declare var CSSMathSum: {
prototype: CSSMathSum;
new(...args: CSSNumberish[]): CSSMathSum;
};
/**
* The **`CSSMathValue`** interface of the CSS Typed Object Model API a base class for classes representing complex numeric values.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSMathValue)
*/
interface CSSMathValue extends CSSNumericValue {
/**
* The **`CSSMathValue.operator`** read-only property of the CSSMathValue interface indicates the operator that the current subtype represents. For example, if the current CSSMathValue subtype is CSSMathSum, this property will return the string "sum".
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSMathValue/operator)
*/
readonly operator: CSSMathOperator;
}
declare var CSSMathValue: {
prototype: CSSMathValue;
new(): CSSMathValue;
};
/**
* The **`CSSMatrixComponent`** interface of the CSS Typed Object Model API represents the matrix() and matrix3d() values of the individual transform property in CSS. It inherits properties and methods from its parent CSSTransformValue.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSMatrixComponent)
*/
interface CSSMatrixComponent extends CSSTransformComponent {
/**
* The **`matrix`** property of the CSSMatrixComponent interface gets and sets a 2d or 3d matrix.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSMatrixComponent/matrix)
*/
matrix: DOMMatrix;
}
declare var CSSMatrixComponent: {
prototype: CSSMatrixComponent;
new(matrix: DOMMatrixReadOnly, options?: CSSMatrixComponentOptions): CSSMatrixComponent;
};
/**
* The **`CSSNumericArray`** interface of the CSS Typed Object Model API contains a list of CSSNumericValue objects.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSNumericArray)
*/
interface CSSNumericArray {
/**
* The read-only **`length`** property of the CSSNumericArray interface returns the number of CSSNumericValue objects in the list.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSNumericArray/length)
*/
readonly length: number;
forEach(callbackfn: (value: CSSNumericValue, key: number, parent: CSSNumericArray) => void, thisArg?: any): void;
[index: number]: CSSNumericValue;
}
declare var CSSNumericArray: {
prototype: CSSNumericArray;
new(): CSSNumericArray;
};
/**
* The **`CSSNumericValue`** interface of the CSS Typed Object Model API represents operations that all numeric values can perform.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSNumericValue)
*/
interface CSSNumericValue extends CSSStyleValue {
/**
* The **`add()`** method of the CSSNumericValue interface adds a supplied number to the CSSNumericValue.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSNumericValue/add)
*/
add(...values: CSSNumberish[]): CSSNumericValue;
/**
* The **`div()`** method of the CSSNumericValue interface divides the CSSNumericValue by the supplied value.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSNumericValue/div)
*/
div(...values: CSSNumberish[]): CSSNumericValue;
/**
* The **`equals()`** method of the CSSNumericValue interface returns a boolean indicating whether the passed value are strictly equal. To return a value of true, all passed values must be of the same type and value and must be in the same order. This allows structural equality to be tested quickly.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSNumericValue/equals)
*/
equals(...value: CSSNumberish[]): boolean;
/**
* The **`max()`** method of the CSSNumericValue interface returns the highest value from among the values passed. The passed values must be of the same type.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSNumericValue/max)
*/
max(...values: CSSNumberish[]): CSSNumericValue;
/**
* The **`min()`** method of the CSSNumericValue interface returns the lowest value from among those values passed. The passed values must be of the same type.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSNumericValue/min)
*/
min(...values: CSSNumberish[]): CSSNumericValue;
/**
* The **`mul()`** method of the CSSNumericValue interface multiplies the CSSNumericValue by the supplied value.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSNumericValue/mul)
*/
mul(...values: CSSNumberish[]): CSSNumericValue;
/**
* The **`sub()`** method of the CSSNumericValue interface subtracts a supplied number from the CSSNumericValue.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSNumericValue/sub)
*/
sub(...values: CSSNumberish[]): CSSNumericValue;
/**
* The **`to()`** method of the CSSNumericValue interface converts a numeric value from one unit to another.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSNumericValue/to)
*/
to(unit: string): CSSUnitValue;
/**
* The **`toSum()`** method of the CSSNumericValue interface converts the object's value to a CSSMathSum object to values of the specified unit.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSNumericValue/toSum)
*/
toSum(...units: string[]): CSSMathSum;
/**
* The **`type()`** method of the CSSNumericValue interface returns the type of CSSNumericValue, one of angle, flex, frequency, length, resolution, percent, percentHint, or time.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSNumericValue/type)
*/
type(): CSSNumericType;
}
declare var CSSNumericValue: {
prototype: CSSNumericValue;
new(): CSSNumericValue;
};
/**
* The **`CSSPerspective`** interface of the CSS Typed Object Model API represents the perspective() value of the individual transform property in CSS. It inherits properties and methods from its parent CSSTransformValue.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSPerspective)
*/
interface CSSPerspective extends CSSTransformComponent {
/**
* The **`length`** property of the CSSPerspective interface sets the distance from z=0.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSPerspective/length)
*/
length: CSSPerspectiveValue;
}
declare var CSSPerspective: {
prototype: CSSPerspective;
new(length: CSSPerspectiveValue): CSSPerspective;
};
/**
* The **`CSSRotate`** interface of the CSS Typed Object Model API represents the rotate value of the individual transform property in CSS. It inherits properties and methods from its parent CSSTransformValue.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSRotate)
*/
interface CSSRotate extends CSSTransformComponent {
/**
* The **`angle`** property of the CSSRotate interface gets and sets the angle of rotation. A positive angle denotes a clockwise rotation, a negative angle a counter-clockwise one.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSRotate/angle)
*/
angle: CSSNumericValue;
/**
* The **`x`** property of the CSSRotate interface gets and sets the abscissa or x-axis of the translating vector.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSRotate/x)
*/
x: CSSNumberish;
/**
* The **`y`** property of the CSSRotate interface gets and sets the ordinate or y-axis of the translating vector.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSRotate/y)
*/
y: CSSNumberish;
/**
* The **`z`** property of the CSSRotate interface representing the z-component of the translating vector. A positive value moves the element towards the viewer, and a negative value farther away.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSRotate/z)
*/
z: CSSNumberish;
}
declare var CSSRotate: {
prototype: CSSRotate;
new(angle: CSSNumericValue): CSSRotate;
new(x: CSSNumberish, y: CSSNumberish, z: CSSNumberish, angle: CSSNumericValue): CSSRotate;
};
/**
* The **`CSSScale`** interface of the CSS Typed Object Model API represents the scale() and scale3d() values of the individual transform property in CSS. It inherits properties and methods from its parent CSSTransformValue.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSScale)
*/
interface CSSScale extends CSSTransformComponent {
/**
* The **`x`** property of the CSSScale interface gets and sets the abscissa or x-axis of the translating vector.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSScale/x)
*/
x: CSSNumberish;
/**
* The **`y`** property of the CSSScale interface gets and sets the ordinate or y-axis of the translating vector.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSScale/y)
*/
y: CSSNumberish;
/**
* The **`z`** property of the CSSScale interface representing the z-component of the translating vector. A positive value moves the element towards the viewer, and a negative value farther away.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSScale/z)
*/
z: CSSNumberish;
}
declare var CSSScale: {
prototype: CSSScale;
new(x: CSSNumberish, y: CSSNumberish, z?: CSSNumberish): CSSScale;
};
/**
* The **`CSSSkew`** interface of the CSS Typed Object Model API is part of the CSSTransformValue interface. It represents the skew() value of the individual transform property in CSS.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSSkew)
*/
interface CSSSkew extends CSSTransformComponent {
/**
* The **`ax`** property of the CSSSkew interface gets and sets the angle used to distort the element along the x-axis (or abscissa).
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSSkew/ax)
*/
ax: CSSNumericValue;
/**
* The **`ay`** property of the CSSSkew interface gets and sets the angle used to distort the element along the y-axis (or ordinate).
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSSkew/ay)
*/
ay: CSSNumericValue;
}
declare var CSSSkew: {
prototype: CSSSkew;
new(ax: CSSNumericValue, ay: CSSNumericValue): CSSSkew;
};
/**
* The **`CSSSkewX`** interface of the CSS Typed Object Model API represents the skewX() value of the individual transform property in CSS. It inherits properties and methods from its parent CSSTransformValue.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSSkewX)
*/
interface CSSSkewX extends CSSTransformComponent {
/**
* The **`ax`** property of the CSSSkewX interface gets and sets the angle used to distort the element along the x-axis (or abscissa).
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSSkewX/ax)
*/
ax: CSSNumericValue;
}
declare var CSSSkewX: {
prototype: CSSSkewX;
new(ax: CSSNumericValue): CSSSkewX;
};
/**
* The **`CSSSkewY`** interface of the CSS Typed Object Model API represents the skewY() value of the individual transform property in CSS. It inherits properties and methods from its parent CSSTransformValue.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSSkewY)
*/
interface CSSSkewY extends CSSTransformComponent {
/**
* The **`ay`** property of the CSSSkewY interface gets and sets the angle used to distort the element along the y-axis (or ordinate).
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSSkewY/ay)
*/
ay: CSSNumericValue;
}
declare var CSSSkewY: {
prototype: CSSSkewY;
new(ay: CSSNumericValue): CSSSkewY;
};
/**
* The **`CSSStyleValue`** interface of the CSS Typed Object Model API is the base class of all CSS values accessible through the Typed OM API. An instance of this class may be used anywhere a string is expected.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleValue)
*/
interface CSSStyleValue {
toString(): string;
}
declare var CSSStyleValue: {
prototype: CSSStyleValue;
new(): CSSStyleValue;
};
/**
* The **`CSSTransformComponent`** interface of the CSS Typed Object Model API is part of the CSSTransformValue interface.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSTransformComponent)
*/
interface CSSTransformComponent {
/**
* The **`is2D`** read-only property of the CSSTransformComponent interface indicates where the transform is 2D or 3D.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSTransformComponent/is2D)
*/
is2D: boolean;
/**
* The **`toMatrix()`** method of the CSSTransformComponent interface returns a DOMMatrix object.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSTransformComponent/toMatrix)
*/
toMatrix(): DOMMatrix;
toString(): string;
}
declare var CSSTransformComponent: {
prototype: CSSTransformComponent;
new(): CSSTransformComponent;
};
/**
* The **`CSSTransformValue`** interface of the CSS Typed Object Model API represents transform-list values as used by the CSS transform property.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSTransformValue)
*/
interface CSSTransformValue extends CSSStyleValue {
/**
* The read-only **`is2D`** property of the CSSTransformValue interface returns whether the transform is 2D or 3D.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSTransformValue/is2D)
*/
readonly is2D: boolean;
/**
* The read-only **`length`** property of the CSSTransformValue interface returns the number of transform components in the list.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSTransformValue/length)
*/
readonly length: number;
/**
* The **`toMatrix()`** method of the CSSTransformValue interface returns a DOMMatrix object.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSTransformValue/toMatrix)
*/
toMatrix(): DOMMatrix;
forEach(callbackfn: (value: CSSTransformComponent, key: number, parent: CSSTransformValue) => void, thisArg?: any): void;
[index: number]: CSSTransformComponent;
}
declare var CSSTransformValue: {
prototype: CSSTransformValue;
new(transforms: CSSTransformComponent[]): CSSTransformValue;
};
/**
* The **`CSSTranslate`** interface of the CSS Typed Object Model API represents the translate() value of the individual transform property in CSS. It inherits properties and methods from its parent CSSTransformValue.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSTranslate)
*/
interface CSSTranslate extends CSSTransformComponent {
/**
* The **`x`** property of the CSSTranslate interface gets and sets the abscissa or x-axis of the translating vector.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSTranslate/x)
*/
x: CSSNumericValue;
/**
* The **`y`** property of the CSSTranslate interface gets and sets the ordinate or y-axis of the translating vector.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSTranslate/y)
*/
y: CSSNumericValue;
/**
* The **`z`** property of the CSSTranslate interface representing the z-component of the translating vector. A positive value moves the element towards the viewer, and a negative value farther away.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSTranslate/z)
*/
z: CSSNumericValue;
}
declare var CSSTranslate: {
prototype: CSSTranslate;
new(x: CSSNumericValue, y: CSSNumericValue, z?: CSSNumericValue): CSSTranslate;
};
/**
* The **`CSSUnitValue`** interface of the CSS Typed Object Model API represents values that contain a single unit type. For example, "42px" would be represented by a CSSNumericValue.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSUnitValue)
*/
interface CSSUnitValue extends CSSNumericValue {
/**
* The **`CSSUnitValue.unit`** read-only property of the CSSUnitValue interface returns a string indicating the type of unit.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSUnitValue/unit)
*/
readonly unit: string;
/**
* The **`CSSUnitValue.value`** property of the CSSUnitValue interface returns a double indicating the number of units.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSUnitValue/value)
*/
value: number;
}
declare var CSSUnitValue: {
prototype: CSSUnitValue;
new(value: number, unit: string): CSSUnitValue;
};
/**
* The **`CSSUnparsedValue`** interface of the CSS Typed Object Model API represents property values that reference custom properties. It consists of a list of string fragments and variable references.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSUnparsedValue)
*/
interface CSSUnparsedValue extends CSSStyleValue {
/**
* The **`length`** read-only property of the CSSUnparsedValue interface returns the number of items in the object.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSUnparsedValue/length)
*/
readonly length: number;
forEach(callbackfn: (value: CSSUnparsedSegment, key: number, parent: CSSUnparsedValue) => void, thisArg?: any): void;
[index: number]: CSSUnparsedSegment;
}
declare var CSSUnparsedValue: {
prototype: CSSUnparsedValue;
new(members: CSSUnparsedSegment[]): CSSUnparsedValue;
};
/**
* The **`CSSVariableReferenceValue`** interface of the CSS Typed Object Model API allows you to create a custom name for a built-in CSS value. This object functionality is sometimes called a "CSS variable" and serves the same purpose as the var() function. The custom name must begin with two dashes.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSVariableReferenceValue)
*/
interface CSSVariableReferenceValue {
/**
* The **`fallback`** read-only property of the CSSVariableReferenceValue interface returns the custom property fallback value of the CSSVariableReferenceValue.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSVariableReferenceValue/fallback)
*/
readonly fallback: CSSUnparsedValue | null;
/**
* The **`variable`** property of the CSSVariableReferenceValue interface returns the custom property name of the CSSVariableReferenceValue.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSVariableReferenceValue/variable)
*/
variable: string;
}
declare var CSSVariableReferenceValue: {
prototype: CSSVariableReferenceValue;
new(variable: string, fallback?: CSSUnparsedValue | null): CSSVariableReferenceValue;
};
/**
* The **`Cache`** interface provides a persistent storage mechanism for Request / Response object pairs that are cached in long lived memory. How long a Cache object lives is browser dependent, but a single origin's scripts can typically rely on the presence of a previously populated Cache object. Note that the Cache interface is exposed to windowed scopes as well as workers. You don't have to use it in conjunction with service workers, even though it is defined in the service worker spec.
* Available only in secure contexts.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Cache)
*/
interface Cache {
/**
* The **`add()`** method of the Cache interface takes a URL, retrieves it, and adds the resulting response object to the given cache.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Cache/add)
*/
add(request: RequestInfo | URL): Promise;
/**
* The **`addAll()`** method of the Cache interface takes an array of URLs, retrieves them, and adds the resulting response objects to the given cache. The request objects created during retrieval become keys to the stored response operations.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Cache/addAll)
*/
addAll(requests: RequestInfo[]): Promise;
/**
* The **`delete()`** method of the Cache interface finds the Cache entry whose key is the request, and if found, deletes the Cache entry and returns a Promise that resolves to true. If no Cache entry is found, it resolves to false.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Cache/delete)
*/
delete(request: RequestInfo | URL, options?: CacheQueryOptions): Promise;
/**
* The **`keys()`** method of the Cache interface returns a Promise that resolves to an array of Request objects representing the keys of the Cache.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Cache/keys)
*/
keys(request?: RequestInfo | URL, options?: CacheQueryOptions): Promise>;
/**
* The **`match()`** method of the Cache interface returns a Promise that resolves to the Response associated with the first matching request in the Cache object. If no match is found, the Promise resolves to undefined.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Cache/match)
*/
match(request: RequestInfo | URL, options?: CacheQueryOptions): Promise;
/**
* The **`matchAll()`** method of the Cache interface returns a Promise that resolves to an array of all matching responses in the Cache object.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Cache/matchAll)
*/
matchAll(request?: RequestInfo | URL, options?: CacheQueryOptions): Promise>;
/**
* The **`put()`** method of the Cache interface allows key/value pairs to be added to the current Cache object.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Cache/put)
*/
put(request: RequestInfo | URL, response: Response): Promise;
}
declare var Cache: {
prototype: Cache;
new(): Cache;
};
/**
* The **`CacheStorage`** interface represents the storage for Cache objects.
* Available only in secure contexts.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/CacheStorage)
*/
interface CacheStorage {
/**
* The **`delete()`** method of the CacheStorage interface finds the Cache object matching the cacheName, and if found, deletes the Cache object and returns a Promise that resolves to true. If no Cache object is found, it resolves to false.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/CacheStorage/delete)
*/
delete(cacheName: string): Promise;
/**
* The **`has()`** method of the CacheStorage interface returns a Promise that resolves to true if a Cache object matches the cacheName.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/CacheStorage/has)
*/
has(cacheName: string): Promise;
/**
* The **`keys()`** method of the CacheStorage interface returns a Promise that will resolve with an array containing strings corresponding to all of the named Cache objects tracked by the CacheStorage object in the order they were created. Use this method to iterate over a list of all Cache objects.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/CacheStorage/keys)
*/
keys(): Promise;
/**
* The **`match()`** method of the CacheStorage interface checks if a given Request or URL string is a key for a stored Response. This method returns a Promise for a Response, or a Promise which resolves to undefined if no match is found.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/CacheStorage/match)
*/
match(request: RequestInfo | URL, options?: MultiCacheQueryOptions): Promise;
/**
* The **`open()`** method of the CacheStorage interface returns a Promise that resolves to the Cache object matching the cacheName.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/CacheStorage/open)
*/
open(cacheName: string): Promise;
}
declare var CacheStorage: {
prototype: CacheStorage;
new(): CacheStorage;
};
interface CanvasCompositing {
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/globalAlpha) */
globalAlpha: number;
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/globalCompositeOperation) */
globalCompositeOperation: GlobalCompositeOperation;
}
interface CanvasDrawImage {
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/drawImage) */
drawImage(image: CanvasImageSource, dx: number, dy: number): void;
drawImage(image: CanvasImageSource, dx: number, dy: number, dw: number, dh: number): void;
drawImage(image: CanvasImageSource, sx: number, sy: number, sw: number, sh: number, dx: number, dy: number, dw: number, dh: number): void;
}
interface CanvasDrawPath {
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/beginPath) */
beginPath(): void;
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/clip) */
clip(fillRule?: CanvasFillRule): void;
clip(path: Path2D, fillRule?: CanvasFillRule): void;
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/fill) */
fill(fillRule?: CanvasFillRule): void;
fill(path: Path2D, fillRule?: CanvasFillRule): void;
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/isPointInPath) */
isPointInPath(x: number, y: number, fillRule?: CanvasFillRule): boolean;
isPointInPath(path: Path2D, x: number, y: number, fillRule?: CanvasFillRule): boolean;
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/isPointInStroke) */
isPointInStroke(x: number, y: number): boolean;
isPointInStroke(path: Path2D, x: number, y: number): boolean;
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/stroke) */
stroke(): void;
stroke(path: Path2D): void;
}
interface CanvasFillStrokeStyles {
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/fillStyle) */
fillStyle: string | CanvasGradient | CanvasPattern;
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/strokeStyle) */
strokeStyle: string | CanvasGradient | CanvasPattern;
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/createConicGradient) */
createConicGradient(startAngle: number, x: number, y: number): CanvasGradient;
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/createLinearGradient) */
createLinearGradient(x0: number, y0: number, x1: number, y1: number): CanvasGradient;
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/createPattern) */
createPattern(image: CanvasImageSource, repetition: string | null): CanvasPattern | null;
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/createRadialGradient) */
createRadialGradient(x0: number, y0: number, r0: number, x1: number, y1: number, r1: number): CanvasGradient;
}
interface CanvasFilters {
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/filter) */
filter: string;
}
/**
* The **`CanvasGradient`** interface represents an opaque object describing a gradient. It is returned by the methods CanvasRenderingContext2D.createLinearGradient(), CanvasRenderingContext2D.createConicGradient() or CanvasRenderingContext2D.createRadialGradient().
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasGradient)
*/
interface CanvasGradient {
/**
* The **`CanvasGradient.addColorStop()`** method adds a new color stop, defined by an offset and a color, to a given canvas gradient.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasGradient/addColorStop)
*/
addColorStop(offset: number, color: string): void;
}
declare var CanvasGradient: {
prototype: CanvasGradient;
new(): CanvasGradient;
};
interface CanvasImageData {
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/createImageData) */
createImageData(sw: number, sh: number, settings?: ImageDataSettings): ImageData;
createImageData(imageData: ImageData): ImageData;
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/getImageData) */
getImageData(sx: number, sy: number, sw: number, sh: number, settings?: ImageDataSettings): ImageData;
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/putImageData) */
putImageData(imageData: ImageData, dx: number, dy: number): void;
putImageData(imageData: ImageData, dx: number, dy: number, dirtyX: number, dirtyY: number, dirtyWidth: number, dirtyHeight: number): void;
}
interface CanvasImageSmoothing {
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/imageSmoothingEnabled) */
imageSmoothingEnabled: boolean;
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/imageSmoothingQuality) */
imageSmoothingQuality: ImageSmoothingQuality;
}
interface CanvasPath {
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/arc) */
arc(x: number, y: number, radius: number, startAngle: number, endAngle: number, counterclockwise?: boolean): void;
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/arcTo) */
arcTo(x1: number, y1: number, x2: number, y2: number, radius: number): void;
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/bezierCurveTo) */
bezierCurveTo(cp1x: number, cp1y: number, cp2x: number, cp2y: number, x: number, y: number): void;
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/closePath) */
closePath(): void;
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/ellipse) */
ellipse(x: number, y: number, radiusX: number, radiusY: number, rotation: number, startAngle: number, endAngle: number, counterclockwise?: boolean): void;
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/lineTo) */
lineTo(x: number, y: number): void;
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/moveTo) */
moveTo(x: number, y: number): void;
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/quadraticCurveTo) */
quadraticCurveTo(cpx: number, cpy: number, x: number, y: number): void;
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/rect) */
rect(x: number, y: number, w: number, h: number): void;
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/roundRect) */
roundRect(x: number, y: number, w: number, h: number, radii?: number | DOMPointInit | (number | DOMPointInit)[]): void;
}
interface CanvasPathDrawingStyles {
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/lineCap) */
lineCap: CanvasLineCap;
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/lineDashOffset) */
lineDashOffset: number;
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/lineJoin) */
lineJoin: CanvasLineJoin;
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/lineWidth) */
lineWidth: number;
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/miterLimit) */
miterLimit: number;
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/getLineDash) */
getLineDash(): number[];
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/setLineDash) */
setLineDash(segments: number[]): void;
}
/**
* The **`CanvasPattern`** interface represents an opaque object describing a pattern, based on an image, a canvas, or a video, created by the CanvasRenderingContext2D.createPattern() method.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasPattern)
*/
interface CanvasPattern {
/**
* The **`CanvasPattern.setTransform()`** method uses a DOMMatrix object as the pattern's transformation matrix and invokes it on the pattern.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasPattern/setTransform)
*/
setTransform(transform?: DOMMatrix2DInit): void;
}
declare var CanvasPattern: {
prototype: CanvasPattern;
new(): CanvasPattern;
};
interface CanvasRect {
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/clearRect) */
clearRect(x: number, y: number, w: number, h: number): void;
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/fillRect) */
fillRect(x: number, y: number, w: number, h: number): void;
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/strokeRect) */
strokeRect(x: number, y: number, w: number, h: number): void;
}
interface CanvasShadowStyles {
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/shadowBlur) */
shadowBlur: number;
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/shadowColor) */
shadowColor: string;
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/shadowOffsetX) */
shadowOffsetX: number;
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/shadowOffsetY) */
shadowOffsetY: number;
}
interface CanvasState {
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/isContextLost) */
isContextLost(): boolean;
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/reset) */
reset(): void;
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/restore) */
restore(): void;
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/save) */
save(): void;
}
interface CanvasText {
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/fillText) */
fillText(text: string, x: number, y: number, maxWidth?: number): void;
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/measureText) */
measureText(text: string): TextMetrics;
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/strokeText) */
strokeText(text: string, x: number, y: number, maxWidth?: number): void;
}
interface CanvasTextDrawingStyles {
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/direction) */
direction: CanvasDirection;
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/font) */
font: string;
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/fontKerning) */
fontKerning: CanvasFontKerning;
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/fontStretch) */
fontStretch: CanvasFontStretch;
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/fontVariantCaps) */
fontVariantCaps: CanvasFontVariantCaps;
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/letterSpacing) */
letterSpacing: string;
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/textAlign) */
textAlign: CanvasTextAlign;
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/textBaseline) */
textBaseline: CanvasTextBaseline;
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/textRendering) */
textRendering: CanvasTextRendering;
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/wordSpacing) */
wordSpacing: string;
}
interface CanvasTransform {
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/getTransform) */
getTransform(): DOMMatrix;
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/resetTransform) */
resetTransform(): void;
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/rotate) */
rotate(angle: number): void;
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/scale) */
scale(x: number, y: number): void;
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/setTransform) */
setTransform(a: number, b: number, c: number, d: number, e: number, f: number): void;
setTransform(transform?: DOMMatrix2DInit): void;
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/transform) */
transform(a: number, b: number, c: number, d: number, e: number, f: number): void;
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/translate) */
translate(x: number, y: number): void;
}
/**
* The **`Client`** interface represents an executable context such as a Worker, or a SharedWorker. Window clients are represented by the more-specific WindowClient. You can get Client/WindowClient objects from methods such as Clients.matchAll() and Clients.get().
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Client)
*/
interface Client {
/**
* The **`frameType`** read-only property of the Client interface indicates the type of browsing context of the current Client. This value can be one of "auxiliary", "top-level", "nested", or "none".
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Client/frameType)
*/
readonly frameType: FrameType;
/**
* The **`id`** read-only property of the Client interface returns the universally unique identifier of the Client object.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Client/id)
*/
readonly id: string;
/**
* The **`type`** read-only property of the Client interface indicates the type of client the service worker is controlling.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Client/type)
*/
readonly type: ClientTypes;
/**
* The **`url`** read-only property of the Client interface returns the URL of the current service worker client.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Client/url)
*/
readonly url: string;
/**
* The **`postMessage()`** method of the Client interface allows a service worker to send a message to a client (a Window, Worker, or SharedWorker). The message is received in the message event on navigator.serviceWorker.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Client/postMessage)
*/
postMessage(message: any, transfer: Transferable[]): void;
postMessage(message: any, options?: StructuredSerializeOptions): void;
}
declare var Client: {
prototype: Client;
new(): Client;
};
/**
* The **`Clients`** interface provides access to Client objects. Access it via self.clients within a service worker.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Clients)
*/
interface Clients {
/**
* The **`claim()`** method of the Clients interface allows an active service worker to set itself as the controller for all clients within its scope. This triggers a controllerchange event on navigator.serviceWorker in any clients that become controlled by this service worker.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Clients/claim)
*/
claim(): Promise;
/**
* The **`get()`** method of the Clients interface gets a service worker client matching a given id and returns it in a Promise.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Clients/get)
*/
get(id: string): Promise;
/**
* The **`matchAll()`** method of the Clients interface returns a Promise for a list of service worker Client objects. Include the options parameter to return all service worker clients whose origin is the same as the associated service worker's origin. If options are not included, the method returns only the service worker clients controlled by the service worker.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Clients/matchAll)
*/
matchAll(options?: T): Promise>;
/**
* The **`openWindow()`** method of the Clients interface creates a new top level browsing context and loads a given URL. If the calling script doesn't have permission to show popups, openWindow() will throw an InvalidAccessError.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Clients/openWindow)
*/
openWindow(url: string | URL): Promise;
}
declare var Clients: {
prototype: Clients;
new(): Clients;
};
/**
* A **`CloseEvent`** is sent to clients using WebSockets when the connection is closed. This is delivered to the listener indicated by the WebSocket object's onclose attribute.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/CloseEvent)
*/
interface CloseEvent extends Event {
/**
* The **`code`** read-only property of the CloseEvent interface returns a WebSocket connection close code indicating the reason the connection was closed.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/CloseEvent/code)
*/
readonly code: number;
/**
* The **`reason`** read-only property of the CloseEvent interface returns the WebSocket connection close reason the server gave for closing the connection; that is, a concise human-readable prose explanation for the closure.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/CloseEvent/reason)
*/
readonly reason: string;
/**
* The **`wasClean`** read-only property of the CloseEvent interface returns true if the connection closed cleanly.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/CloseEvent/wasClean)
*/
readonly wasClean: boolean;
}
declare var CloseEvent: {
prototype: CloseEvent;
new(type: string, eventInitDict?: CloseEventInit): CloseEvent;
};
/**
* The **`CompressionStream`** interface of the Compression Streams API compresses a stream of data. It implements the same shape as a TransformStream, allowing it to be used in ReadableStream.pipeThrough() and similar methods.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/CompressionStream)
*/
interface CompressionStream extends GenericTransformStream {
/** The **`readable`** read-only property of the CompressionStream interface returns a ReadableStream that emits compressed data as Uint8Array chunks. */
readonly readable: ReadableStream>;
/** The **`writable`** read-only property of the CompressionStream interface returns a WritableStream that accepts uncompressed data to be compressed, in the form of ArrayBuffer, TypedArray, or DataView chunks. */
readonly writable: WritableStream;
}
declare var CompressionStream: {
prototype: CompressionStream;
new(format: CompressionFormat): CompressionStream;
};
/**
* The **`CookieStore`** interface of the Cookie Store API provides methods for getting and setting cookies asynchronously from either a page or a service worker.
* Available only in secure contexts.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/CookieStore)
*/
interface CookieStore extends EventTarget {
/**
* The **`delete()`** method of the CookieStore interface deletes a cookie that matches the given name or options object. The method expires the cookie by changing its date to one in the past.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/CookieStore/delete)
*/
delete(name: string): Promise;
delete(options: CookieStoreDeleteOptions): Promise;
/**
* The **`get()`** method of the CookieStore interface returns a Promise that resolves to a single cookie matching the given name or options object. The method will return the first cookie that matches.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/CookieStore/get)
*/
get(name: string): Promise;
get(options?: CookieStoreGetOptions): Promise;
/**
* The **`getAll()`** method of the CookieStore interface returns a Promise that resolves as an array of cookies that match the name or options passed to it. Passing no parameters will return all cookies for the current context.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/CookieStore/getAll)
*/
getAll(name: string): Promise;
getAll(options?: CookieStoreGetOptions): Promise;
/**
* The **`set()`** method of the CookieStore interface sets a cookie with the given name and value or options object.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/CookieStore/set)
*/
set(name: string, value: string): Promise;
set(options: CookieInit): Promise;
}
declare var CookieStore: {
prototype: CookieStore;
new(): CookieStore;
};
/**
* The **`CookieStoreManager`** interface of the Cookie Store API allows service workers to subscribe to cookie change events. Call subscribe() on a particular service worker registration to receive change events.
* Available only in secure contexts.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/CookieStoreManager)
*/
interface CookieStoreManager {
/**
* The **`getSubscriptions()`** method of the CookieStoreManager interface returns a list of all the cookie change subscriptions for this ServiceWorkerRegistration.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/CookieStoreManager/getSubscriptions)
*/
getSubscriptions(): Promise;
/**
* The **`subscribe()`** method of the CookieStoreManager interface subscribes a ServiceWorkerRegistration to cookie change events.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/CookieStoreManager/subscribe)
*/
subscribe(subscriptions: CookieStoreGetOptions[]): Promise;
/**
* The **`unsubscribe()`** method of the CookieStoreManager interface stops the ServiceWorkerRegistration from receiving previously subscribed events.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/CookieStoreManager/unsubscribe)
*/
unsubscribe(subscriptions: CookieStoreGetOptions[]): Promise;
}
declare var CookieStoreManager: {
prototype: CookieStoreManager;
new(): CookieStoreManager;
};
/**
* The **`CountQueuingStrategy`** interface of the Streams API provides a built-in chunk counting queuing strategy that can be used when constructing streams.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/CountQueuingStrategy)
*/
interface CountQueuingStrategy extends QueuingStrategy {
/**
* The read-only **`CountQueuingStrategy.highWaterMark`** property returns the total number of chunks that can be contained in the internal queue before backpressure is applied.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/CountQueuingStrategy/highWaterMark)
*/
readonly highWaterMark: number;
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CountQueuingStrategy/size) */
readonly size: QueuingStrategySize;
}
declare var CountQueuingStrategy: {
prototype: CountQueuingStrategy;
new(init: QueuingStrategyInit): CountQueuingStrategy;
};
/**
* The **`Crypto`** interface represents basic cryptography features available in the current context. It allows access to a cryptographically strong random number generator and to cryptographic primitives.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Crypto)
*/
interface Crypto {
/**
* The **`Crypto.subtle`** read-only property returns a SubtleCrypto which can then be used to perform low-level cryptographic operations.
* Available only in secure contexts.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Crypto/subtle)
*/
readonly subtle: SubtleCrypto;
/**
* The **`Crypto.getRandomValues()`** method lets you get cryptographically strong random values. The array given as the parameter is filled with random numbers (random in its cryptographic meaning).
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Crypto/getRandomValues)
*/
getRandomValues>(array: T): T;
/**
* The **`randomUUID()`** method of the Crypto interface is used to generate a v4 UUID using a cryptographically secure random number generator.
* Available only in secure contexts.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Crypto/randomUUID)
*/
randomUUID(): `${string}-${string}-${string}-${string}-${string}`;
}
declare var Crypto: {
prototype: Crypto;
new(): Crypto;
};
/**
* The **`CryptoKey`** interface of the Web Crypto API represents a cryptographic key obtained from one of the SubtleCrypto methods generateKey(), deriveKey(), importKey(), or unwrapKey().
* Available only in secure contexts.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/CryptoKey)
*/
interface CryptoKey {
/**
* The read-only **`algorithm`** property of the CryptoKey interface returns an object describing the algorithm for which this key can be used, and any associated extra parameters.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/CryptoKey/algorithm)
*/
readonly algorithm: KeyAlgorithm;
/**
* The read-only **`extractable`** property of the CryptoKey interface indicates whether or not the key may be extracted using SubtleCrypto.exportKey() or SubtleCrypto.wrapKey().
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/CryptoKey/extractable)
*/
readonly extractable: boolean;
/**
* The read-only **`type`** property of the CryptoKey interface indicates which kind of key is represented by the object. It can have the following values:
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/CryptoKey/type)
*/
readonly type: KeyType;
/**
* The read-only **`usages`** property of the CryptoKey interface indicates what can be done with the key.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/CryptoKey/usages)
*/
readonly usages: KeyUsage[];
}
declare var CryptoKey: {
prototype: CryptoKey;
new(): CryptoKey;
};
/**
* The **`CustomEvent`** interface can be used to attach custom data to an event generated by an application.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/CustomEvent)
*/
interface CustomEvent extends Event {
/**
* The read-only **`detail`** property of the CustomEvent interface returns any data passed when initializing the event.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/CustomEvent/detail)
*/
readonly detail: T;
/**
* The **`CustomEvent.initCustomEvent()`** method initializes a CustomEvent object. If the event has already been dispatched, this method does nothing.
* @deprecated
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/CustomEvent/initCustomEvent)
*/
initCustomEvent(type: string, bubbles?: boolean, cancelable?: boolean, detail?: T): void;
}
declare var CustomEvent: {
prototype: CustomEvent;
new(type: string, eventInitDict?: CustomEventInit): CustomEvent;
};
/**
* The **`DOMException`** interface represents an abnormal event (called an exception) that occurs as a result of calling a method or accessing a property of a web API. This is how error conditions are described in web APIs.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMException)
*/
interface DOMException extends Error {
/**
* The **`code`** read-only property of the DOMException interface returns one of the legacy error code constants, or 0 if none match.
* @deprecated
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMException/code)
*/
readonly code: number;
/**
* The **`message`** read-only property of the DOMException interface returns a string representing a message or description associated with the given error name.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMException/message)
*/
readonly message: string;
/**
* The **`name`** read-only property of the DOMException interface returns a string that contains one of the strings associated with an error name.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMException/name)
*/
readonly name: string;
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;
}
declare var DOMException: {
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;
};
/**
* The **`DOMMatrix`** interface represents 4×4 matrices, suitable for 2D and 3D operations including rotation and translation. It is a mutable version of the DOMMatrixReadOnly interface. The interface is available inside web workers.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix)
*/
interface DOMMatrix extends DOMMatrixReadOnly {
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix#instance_properties) */
a: number;
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix#instance_properties) */
b: number;
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix#instance_properties) */
c: number;
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix#instance_properties) */
d: number;
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix#instance_properties) */
e: number;
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix#instance_properties) */
f: number;
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix#instance_properties) */
m11: number;
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix#instance_properties) */
m12: number;
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix#instance_properties) */
m13: number;
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix#instance_properties) */
m14: number;
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix#instance_properties) */
m21: number;
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix#instance_properties) */
m22: number;
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix#instance_properties) */
m23: number;
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix#instance_properties) */
m24: number;
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix#instance_properties) */
m31: number;
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix#instance_properties) */
m32: number;
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix#instance_properties) */
m33: number;
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix#instance_properties) */
m34: number;
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix#instance_properties) */
m41: number;
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix#instance_properties) */
m42: number;
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix#instance_properties) */
m43: number;
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix#instance_properties) */
m44: number;
/**
* The **`invertSelf()`** method of the DOMMatrix interface inverts the original matrix. If the matrix cannot be inverted, the new matrix's components are all set to NaN and its is2D property is set to false.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix/invertSelf)
*/
invertSelf(): DOMMatrix;
/**
* The **`multiplySelf()`** method of the DOMMatrix interface multiplies a matrix by the otherMatrix parameter, computing the dot product of the original matrix and the specified matrix: Aâ‹…B. If no matrix is specified as the multiplier, the matrix is multiplied by a matrix in which every element is 0 except the bottom-right corner and the element immediately above and to its left: m33 and m34. These have the default value of 1.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix/multiplySelf)
*/
multiplySelf(other?: DOMMatrixInit): DOMMatrix;
/**
* The **`preMultiplySelf()`** method of the DOMMatrix interface modifies the matrix by pre-multiplying it with the specified DOMMatrix. This is equivalent to the dot product Bâ‹…A, where matrix A is the source matrix and B is the matrix given as an input to the method. If no matrix is specified as the multiplier, the matrix is multiplied by a matrix in which every element is 0 except the bottom-right corner and the element immediately above and to its left: m33 and m34. These have the default value of 1.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix/preMultiplySelf)
*/
preMultiplySelf(other?: DOMMatrixInit): DOMMatrix;
/**
* The **`rotateAxisAngleSelf()`** method of the DOMMatrix interface is a transformation method that rotates the source matrix by the given vector and angle, returning the altered matrix.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix/rotateAxisAngleSelf)
*/
rotateAxisAngleSelf(x?: number, y?: number, z?: number, angle?: number): DOMMatrix;
/**
* The **`rotateFromVectorSelf()`** method of the DOMMatrix interface is a mutable transformation method that modifies a matrix by rotating the matrix by the angle between the specified vector and (1, 0). The rotation angle is determined by the angle between the vector (1,0)T and (x,y)T in the clockwise direction, or (+/-)arctan(y/x). If x and y are both 0, the angle is specified as 0, and the matrix is not altered.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix/rotateFromVectorSelf)
*/
rotateFromVectorSelf(x?: number, y?: number): DOMMatrix;
/**
* The **`rotateSelf()`** method of the DOMMatrix interface is a mutable transformation method that modifies a matrix. It rotates the source matrix around each of its axes by the specified number of degrees and returns the rotated matrix.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix/rotateSelf)
*/
rotateSelf(rotX?: number, rotY?: number, rotZ?: number): DOMMatrix;
/**
* The **`scale3dSelf()`** method of the DOMMatrix interface is a mutable transformation method that modifies a matrix by applying a specified scaling factor to all three axes, centered on the given origin, with a default origin of (0, 0, 0), returning the 3D-scaled matrix.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix/scale3dSelf)
*/
scale3dSelf(scale?: number, originX?: number, originY?: number, originZ?: number): DOMMatrix;
/**
* The **`scaleSelf()`** method of the DOMMatrix interface is a mutable transformation method that modifies a matrix by applying a specified scaling factor, centered on the given origin, with a default origin of (0, 0), returning the scaled matrix.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix/scaleSelf)
*/
scaleSelf(scaleX?: number, scaleY?: number, scaleZ?: number, originX?: number, originY?: number, originZ?: number): DOMMatrix;
/**
* The **`skewXSelf()`** method of the DOMMatrix interface is a mutable transformation method that modifies a matrix. It skews the source matrix by applying the specified skew transformation along the X-axis and returns the skewed matrix.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix/skewXSelf)
*/
skewXSelf(sx?: number): DOMMatrix;
/**
* The **`skewYSelf()`** method of the DOMMatrix interface is a mutable transformation method that modifies a matrix. It skews the source matrix by applying the specified skew transformation along the Y-axis and returns the skewed matrix.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix/skewYSelf)
*/
skewYSelf(sy?: number): DOMMatrix;
/**
* The **`translateSelf()`** method of the DOMMatrix interface is a mutable transformation method that modifies a matrix. It applies the specified vectors and returns the updated matrix. The default vector is [0, 0, 0].
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix/translateSelf)
*/
translateSelf(tx?: number, ty?: number, tz?: number): DOMMatrix;
}
declare var DOMMatrix: {
prototype: DOMMatrix;
new(init?: string | number[]): DOMMatrix;
/**
* The **`fromFloat32Array()`** static method of the DOMMatrix interface creates a new DOMMatrix object given an array of single-precision (32-bit) floating-point values.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix/fromFloat32Array_static)
*/
fromFloat32Array(array32: Float32Array): DOMMatrix;
/**
* The **`fromFloat64Array()`** static method of the DOMMatrix interface creates a new DOMMatrix object given an array of double-precision (64-bit) floating-point values.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix/fromFloat64Array_static)
*/
fromFloat64Array(array64: Float64Array): DOMMatrix;
/**
* The **`fromMatrix()`** static method of the DOMMatrix interface creates a new DOMMatrix object given an existing matrix or an object which provides the values for its properties.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix/fromMatrix_static)
*/
fromMatrix(other?: DOMMatrixInit): DOMMatrix;
};
/**
* The **`DOMMatrixReadOnly`** interface represents a read-only 4×4 matrix, suitable for 2D and 3D operations. The DOMMatrix interface — which is based upon DOMMatrixReadOnly—adds mutability, allowing you to alter the matrix after creating it.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly)
*/
interface DOMMatrixReadOnly {
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly#instance_properties) */
readonly a: number;
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly#instance_properties) */
readonly b: number;
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly#instance_properties) */
readonly c: number;
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly#instance_properties) */
readonly d: number;
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly#instance_properties) */
readonly e: number;
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly#instance_properties) */
readonly f: number;
/**
* The readonly **`is2D`** property of the DOMMatrixReadOnly interface is a Boolean flag that is true when the matrix is 2D. The value is true if the matrix was initialized as a 2D matrix and only 2D transformation operations were applied. Otherwise, the matrix is defined in 3D, and is2D is false.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/is2D)
*/
readonly is2D: boolean;
/**
* The readonly **`isIdentity`** property of the DOMMatrixReadOnly interface is a Boolean whose value is true if the matrix is the identity matrix.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/isIdentity)
*/
readonly isIdentity: boolean;
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly#instance_properties) */
readonly m11: number;
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly#instance_properties) */
readonly m12: number;
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly#instance_properties) */
readonly m13: number;
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly#instance_properties) */
readonly m14: number;
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly#instance_properties) */
readonly m21: number;
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly#instance_properties) */
readonly m22: number;
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly#instance_properties) */
readonly m23: number;
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly#instance_properties) */
readonly m24: number;
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly#instance_properties) */
readonly m31: number;
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly#instance_properties) */
readonly m32: number;
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly#instance_properties) */
readonly m33: number;
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly#instance_properties) */
readonly m34: number;
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly#instance_properties) */
readonly m41: number;
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly#instance_properties) */
readonly m42: number;
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly#instance_properties) */
readonly m43: number;
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly#instance_properties) */
readonly m44: number;
/**
* The **`flipX()`** method of the DOMMatrixReadOnly interface creates a new matrix being the result of the original matrix flipped about the x-axis. This is equivalent to multiplying the matrix by DOMMatrix(-1, 0, 0, 1, 0, 0). The original matrix is not modified.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/flipX)
*/
flipX(): DOMMatrix;
/**
* The **`flipY()`** method of the DOMMatrixReadOnly interface creates a new matrix being the result of the original matrix flipped about the y-axis. This is equivalent to multiplying the matrix by DOMMatrix(1, 0, 0, -1, 0, 0). The original matrix is not modified.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/flipY)
*/
flipY(): DOMMatrix;
/**
* The **`inverse()`** method of the DOMMatrixReadOnly interface creates a new matrix which is the inverse of the original matrix. If the matrix cannot be inverted, the new matrix's components are all set to NaN and its is2D property is set to false. The original matrix is not changed.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/inverse)
*/
inverse(): DOMMatrix;
/**
* The **`multiply()`** method of the DOMMatrixReadOnly interface creates and returns a new matrix which is the dot product of the matrix and the otherMatrix parameter. If otherMatrix is omitted, the matrix is multiplied by a matrix in which every element is 0 except the bottom-right corner and the element immediately above and to its left: m33 and m34. These have the default value of 1. The original matrix is not modified.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/multiply)
*/
multiply(other?: DOMMatrixInit): DOMMatrix;
/**
* The **`rotate()`** method of the DOMMatrixReadOnly interface returns a new DOMMatrix created by rotating the source matrix around each of its axes by the specified number of degrees. The original matrix is not altered.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/rotate)
*/
rotate(rotX?: number, rotY?: number, rotZ?: number): DOMMatrix;
/**
* The **`rotateAxisAngle()`** method of the DOMMatrixReadOnly interface returns a new DOMMatrix created by rotating the source matrix by the given vector and angle. The original matrix is not altered.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/rotateAxisAngle)
*/
rotateAxisAngle(x?: number, y?: number, z?: number, angle?: number): DOMMatrix;
/**
* The **`rotateFromVector()`** method of the DOMMatrixReadOnly interface is returns a new DOMMatrix created by rotating the source matrix by the angle between the specified vector and (1, 0). The rotation angle is determined by the angle between the vector (1,0)T and (x,y)T in the clockwise direction, or (+/-)arctan(y/x). If x and y are both 0, the angle is specified as 0. The original matrix is not altered.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/rotateFromVector)
*/
rotateFromVector(x?: number, y?: number): DOMMatrix;
/**
* The **`scale()`** method of the DOMMatrixReadOnly interface creates a new matrix being the result of the original matrix with a scale transform applied.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/scale)
*/
scale(scaleX?: number, scaleY?: number, scaleZ?: number, originX?: number, originY?: number, originZ?: number): DOMMatrix;
/**
* The **`scale3d()`** method of the DOMMatrixReadOnly interface creates a new matrix which is the result of a 3D scale transform being applied to the matrix. It returns a new DOMMatrix created by scaling the source 3d matrix by the given scale factor centered on the origin point specified by the origin parameters, with a default origin of (0, 0, 0). The original matrix is not modified.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/scale3d)
*/
scale3d(scale?: number, originX?: number, originY?: number, originZ?: number): DOMMatrix;
/** @deprecated */
scaleNonUniform(scaleX?: number, scaleY?: number): DOMMatrix;
/**
* The **`skewX()`** method of the DOMMatrixReadOnly interface returns a new DOMMatrix created by applying the specified skew transformation to the source matrix along its x-axis. The original matrix is not modified.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/skewX)
*/
skewX(sx?: number): DOMMatrix;
/**
* The **`skewY()`** method of the DOMMatrixReadOnly interface returns a new DOMMatrix created by applying the specified skew transformation to the source matrix along its y-axis. The original matrix is not modified.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/skewY)
*/
skewY(sy?: number): DOMMatrix;
/**
* The **`toFloat32Array()`** method of the DOMMatrixReadOnly interface returns a new Float32Array containing all 16 elements (m11, m12, m13, m14, m21, m22, m23, m24, m31, m32, m33, m34, m41, m42, m43, m44) which comprise the matrix. The elements are stored into the array as single-precision floating-point numbers in column-major (colexographical access, or "colex") order. (In other words, down the first column from top to bottom, then the second column, and so forth.)
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/toFloat32Array)
*/
toFloat32Array(): Float32Array;
/**
* The **`toFloat64Array()`** method of the DOMMatrixReadOnly interface returns a new Float64Array containing all 16 elements (m11, m12, m13, m14, m21, m22, m23, m24, m31, m32, m33, m34, m41, m42, m43, m44) which comprise the matrix. The elements are stored into the array as double-precision floating-point numbers in column-major (colexographical access, or "colex") order. (In other words, down the first column from top to bottom, then the second column, and so forth.)
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/toFloat64Array)
*/
toFloat64Array(): Float64Array;
/**
* The **`toJSON()`** method of the DOMMatrixReadOnly interface creates and returns a JSON object. The JSON object includes the 2D matrix elements a through f, the 16 elements of the 4X4 3D matrix, m[1-4][1-4], the boolean is2D property, and the boolean isIdentity property.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/toJSON)
*/
toJSON(): any;
/**
* The **`transformPoint`** method of the DOMMatrixReadOnly interface creates a new DOMPoint object, transforming a specified point by the matrix. Neither the matrix nor the original point are altered.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/transformPoint)
*/
transformPoint(point?: DOMPointInit): DOMPoint;
/**
* The **`translate()`** method of the DOMMatrixReadOnly interface creates a new matrix being the result of the original matrix with a translation applied.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/translate)
*/
translate(tx?: number, ty?: number, tz?: number): DOMMatrix;
}
declare var DOMMatrixReadOnly: {
prototype: DOMMatrixReadOnly;
new(init?: string | number[]): DOMMatrixReadOnly;
/**
* The **`fromFloat32Array()`** static method of the DOMMatrixReadOnly interface creates a new DOMMatrixReadOnly object given an array of single-precision (32-bit) floating-point values.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/fromFloat32Array_static)
*/
fromFloat32Array(array32: Float32Array): DOMMatrixReadOnly;
/**
* The **`fromFloat64Array()`** static method of the DOMMatrixReadOnly interface creates a new DOMMatrixReadOnly object given an array of double-precision (64-bit) floating-point values.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/fromFloat64Array_static)
*/
fromFloat64Array(array64: Float64Array): DOMMatrixReadOnly;
/**
* The **`fromMatrix()`** static method of the DOMMatrixReadOnly interface creates a new DOMMatrixReadOnly object given an existing matrix or an object which provides the values for its properties.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/fromMatrix_static)
*/
fromMatrix(other?: DOMMatrixInit): DOMMatrixReadOnly;
};
/**
* A **`DOMPoint`** object represents a 2D or 3D point in a coordinate system; it includes values for the coordinates in up to three dimensions, as well as an optional perspective value. DOMPoint is based on DOMPointReadOnly but allows its properties' values to be changed.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMPoint)
*/
interface DOMPoint extends DOMPointReadOnly {
/**
* The DOMPoint interface's **`w`** property holds the point's perspective value, w, for a point in space.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMPoint/w)
*/
w: number;
/**
* The DOMPoint interface's **`x`** property holds the horizontal coordinate, x, for a point in space.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMPoint/x)
*/
x: number;
/**
* The DOMPoint interface's **`y`** property holds the vertical coordinate, y, for a point in space.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMPoint/y)
*/
y: number;
/**
* The DOMPoint interface's **`z`** property specifies the depth coordinate of a point in space.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMPoint/z)
*/
z: number;
}
declare var DOMPoint: {
prototype: DOMPoint;
new(x?: number, y?: number, z?: number, w?: number): DOMPoint;
/**
* The **`fromPoint()`** static method of the DOMPoint interface creates and returns a new mutable DOMPoint object given a source point.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMPoint/fromPoint_static)
*/
fromPoint(other?: DOMPointInit): DOMPoint;
};
/**
* The **`DOMPointReadOnly`** interface specifies the coordinate and perspective fields used by DOMPoint to define a 2D or 3D point in a coordinate system.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMPointReadOnly)
*/
interface DOMPointReadOnly {
/**
* The DOMPointReadOnly interface's **`w`** property holds the point's perspective value, w, for a read-only point in space.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMPointReadOnly/w)
*/
readonly w: number;
/**
* The DOMPointReadOnly interface's **`x`** property holds the horizontal coordinate, x, for a read-only point in space. This property cannot be changed by JavaScript code in this read-only version of the DOMPoint object.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMPointReadOnly/x)
*/
readonly x: number;
/**
* The DOMPointReadOnl**`y`** interface's y property holds the vertical coordinate, y, for a read-only point in space.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMPointReadOnly/y)
*/
readonly y: number;
/**
* The DOMPointReadOnly interface's **`z`** property holds the depth coordinate, z, for a read-only point in space.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMPointReadOnly/z)
*/
readonly z: number;
/**
* The **`matrixTransform()`** method of the DOMPointReadOnly interface applies a matrix transform specified as an object to the DOMPointReadOnly object, creating and returning a new DOMPointReadOnly object. Neither the matrix nor the point are altered.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMPointReadOnly/matrixTransform)
*/
matrixTransform(matrix?: DOMMatrixInit): DOMPoint;
/**
* The DOMPointReadOnly method **`toJSON()`** returns an object giving the JSON form of the point object.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMPointReadOnly/toJSON)
*/
toJSON(): any;
}
declare var DOMPointReadOnly: {
prototype: DOMPointReadOnly;
new(x?: number, y?: number, z?: number, w?: number): DOMPointReadOnly;
/**
* The static DOMPointReadOnly method **`fromPoint()`** creates and returns a new DOMPointReadOnly object given a source point.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMPointReadOnly/fromPoint_static)
*/
fromPoint(other?: DOMPointInit): DOMPointReadOnly;
};
/**
* A **`DOMQuad`** is a collection of four DOMPoints defining the corners of an arbitrary quadrilateral. Returning DOMQuads lets getBoxQuads() return accurate information even when arbitrary 2D or 3D transforms are present. It has a handy bounds attribute returning a DOMRectReadOnly for those cases where you just want an axis-aligned bounding rectangle.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMQuad)
*/
interface DOMQuad {
/**
* The DOMQuad interface's **`p1`** property holds the DOMPoint object that represents one of the four corners of the DOMQuad. When created from DOMQuad.fromRect(), it is the point (x, y).
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMQuad/p1)
*/
readonly p1: DOMPoint;
/**
* The DOMQuad interface's **`p2`** property holds the DOMPoint object that represents one of the four corners of the DOMQuad. When created from DOMQuad.fromRect(), it is the point (x + width, y).
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMQuad/p2)
*/
readonly p2: DOMPoint;
/**
* The DOMQuad interface's **`p3`** property holds the DOMPoint object that represents one of the four corners of the DOMQuad. When created from DOMQuad.fromRect(), it is the point (x + width, y + height).
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMQuad/p3)
*/
readonly p3: DOMPoint;
/**
* The DOMQuad interface's **`p4`** property holds the DOMPoint object that represents one of the four corners of the DOMQuad. When created from DOMQuad.fromRect(), it is the point (x, y + height).
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMQuad/p4)
*/
readonly p4: DOMPoint;
/**
* The DOMQuad method **`getBounds()`** returns a DOMRect object representing the smallest rectangle that fully contains the DOMQuad object.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMQuad/getBounds)
*/
getBounds(): DOMRect;
/**
* The DOMQuad method **`toJSON()`** returns a JSON representation of the DOMQuad object.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMQuad/toJSON)
*/
toJSON(): any;
}
declare var DOMQuad: {
prototype: DOMQuad;
new(p1?: DOMPointInit, p2?: DOMPointInit, p3?: DOMPointInit, p4?: DOMPointInit): DOMQuad;
/**
* The **`fromQuad()`** static method of the DOMQuad interface returns a new DOMQuad object based on the provided set of coordinates in the shape of another DOMQuad object.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMQuad/fromQuad_static)
*/
fromQuad(other?: DOMQuadInit): DOMQuad;
/**
* The **`fromRect()`** static method of the DOMQuad interface returns a new DOMQuad object based on the provided set of coordinates in the shape of a DOMRect object.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMQuad/fromRect_static)
*/
fromRect(other?: DOMRectInit): DOMQuad;
};
/**
* A **`DOMRect`** describes the size and position of a rectangle.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMRect)
*/
interface DOMRect extends DOMRectReadOnly {
/**
* The **`height`** property of the DOMRect interface represents the height of the rectangle. The value can be negative.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMRect/height)
*/
height: number;
/**
* The **`width`** property of the DOMRect interface represents the width of the rectangle. The value can be negative.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMRect/width)
*/
width: number;
/**
* The **`x`** property of the DOMRect interface represents the x-coordinate of the rectangle, which is the horizontal distance between the viewport's left edge and the rectangle's origin.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMRect/x)
*/
x: number;
/**
* The **`y`** property of the DOMRect interface represents the y-coordinate of the rectangle, which is the vertical distance between the viewport's top edge and the rectangle's origin.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMRect/y)
*/
y: number;
}
declare var DOMRect: {
prototype: DOMRect;
new(x?: number, y?: number, width?: number, height?: number): DOMRect;
/**
* The **`fromRect()`** static method of the DOMRect object creates a new DOMRect object with a given location and dimensions.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMRect/fromRect_static)
*/
fromRect(other?: DOMRectInit): DOMRect;
};
/**
* The **`DOMRectReadOnly`** interface specifies the standard properties (also used by DOMRect) to define a rectangle whose properties are immutable.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMRectReadOnly)
*/
interface DOMRectReadOnly {
/**
* The **`bottom`** read-only property of the DOMRectReadOnly interface returns the bottom coordinate value of the DOMRect. (Has the same value as y + height, or y if height is negative.)
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMRectReadOnly/bottom)
*/
readonly bottom: number;
/**
* The **`height`** read-only property of the DOMRectReadOnly interface represents the height of the DOMRect.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMRectReadOnly/height)
*/
readonly height: number;
/**
* The **`left`** read-only property of the DOMRectReadOnly interface returns the left coordinate value of the DOMRect. (Has the same value as x, or x + width if width is negative.)
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMRectReadOnly/left)
*/
readonly left: number;
/**
* The **`right`** read-only property of the DOMRectReadOnly interface returns the right coordinate value of the DOMRect. (Has the same value as x + width, or x if width is negative.)
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMRectReadOnly/right)
*/
readonly right: number;
/**
* The **`top`** read-only property of the DOMRectReadOnly interface returns the top coordinate value of the DOMRect. (Has the same value as y, or y + height if height is negative.)
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMRectReadOnly/top)
*/
readonly top: number;
/**
* The **`width`** read-only property of the DOMRectReadOnly interface represents the width of the DOMRect.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMRectReadOnly/width)
*/
readonly width: number;
/**
* The **`x`** read-only property of the DOMRectReadOnly interface represents the x coordinate of the DOMRect's origin.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMRectReadOnly/x)
*/
readonly x: number;
/**
* The **`y`** read-only property of the DOMRectReadOnly interface represents the y coordinate of the DOMRect's origin.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMRectReadOnly/y)
*/
readonly y: number;
/**
* The DOMRectReadOnly method **`toJSON()`** returns a JSON representation of the DOMRectReadOnly object.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMRectReadOnly/toJSON)
*/
toJSON(): any;
}
declare var DOMRectReadOnly: {
prototype: DOMRectReadOnly;
new(x?: number, y?: number, width?: number, height?: number): DOMRectReadOnly;
/**
* The **`fromRect()`** static method of the DOMRectReadOnly object creates a new DOMRectReadOnly object with a given location and dimensions.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMRectReadOnly/fromRect_static)
*/
fromRect(other?: DOMRectInit): DOMRectReadOnly;
};
/**
* The **`DOMStringList`** interface is a legacy type returned by some APIs and represents a non-modifiable list of strings (DOMString).
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMStringList)
*/
interface DOMStringList {
/**
* The read-only **`length`** property indicates the number of strings in the DOMStringList.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMStringList/length)
*/
readonly length: number;
/**
* The **`contains()`** method returns a boolean indicating whether the given string is in the list.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMStringList/contains)
*/
contains(string: string): boolean;
/**
* The **`item()`** method returns a string from a DOMStringList by index.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMStringList/item)
*/
item(index: number): string | null;
[index: number]: string;
}
declare var DOMStringList: {
prototype: DOMStringList;
new(): DOMStringList;
};
/**
* The **`DecompressionStream`** interface of the Compression Streams API decompresses a stream of data. It implements the same shape as a TransformStream, allowing it to be used in ReadableStream.pipeThrough() and similar methods.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/DecompressionStream)
*/
interface DecompressionStream extends GenericTransformStream {
/** The **`readable`** read-only property of the DecompressionStream interface returns a ReadableStream that emits decompressed data as Uint8Array chunks. */
readonly readable: ReadableStream>;
/** The **`writable`** read-only property of the DecompressionStream interface returns a WritableStream that accepts compressed data to be decompressed, in the form of ArrayBuffer, TypedArray, or DataView chunks. */
readonly writable: WritableStream;
}
declare var DecompressionStream: {
prototype: DecompressionStream;
new(format: CompressionFormat): DecompressionStream;
};
interface DedicatedWorkerGlobalScopeEventMap extends WorkerGlobalScopeEventMap, MessageEventTargetEventMap {
"message": MessageEvent;
"messageerror": MessageEvent;
"rtctransform": RTCTransformEvent;
}
/**
* The **`DedicatedWorkerGlobalScope`** object (the Worker global scope) is accessible through the self keyword. Some additional global functions, namespaces objects, and constructors, not typically associated with the worker global scope, but available on it, are listed in the JavaScript Reference. See also: Functions available to workers.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/DedicatedWorkerGlobalScope)
*/
interface DedicatedWorkerGlobalScope extends WorkerGlobalScope, AnimationFrameProvider, MessageEventTarget {
/**
* The **`name`** read-only property of the DedicatedWorkerGlobalScope interface returns the name that the Worker was (optionally) given when it was created. This is the name that the Worker() constructor can pass to get a reference to the DedicatedWorkerGlobalScope.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/DedicatedWorkerGlobalScope/name)
*/
readonly name: string;
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DedicatedWorkerGlobalScope/rtctransform_event) */
onrtctransform: ((this: DedicatedWorkerGlobalScope, ev: RTCTransformEvent) => any) | null;
/**
* The **`close()`** method of the DedicatedWorkerGlobalScope interface discards any tasks queued in the DedicatedWorkerGlobalScope's event loop, effectively closing this particular scope.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/DedicatedWorkerGlobalScope/close)
*/
close(): void;
/**
* The **`postMessage()`** method of the DedicatedWorkerGlobalScope interface sends a message to the main thread that spawned it.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/DedicatedWorkerGlobalScope/postMessage)
*/
postMessage(message: any, transfer: Transferable[]): void;
postMessage(message: any, options?: StructuredSerializeOptions): void;
addEventListener(type: K, listener: (this: DedicatedWorkerGlobalScope, ev: DedicatedWorkerGlobalScopeEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
removeEventListener(type: K, listener: (this: DedicatedWorkerGlobalScope, ev: DedicatedWorkerGlobalScopeEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}
declare var DedicatedWorkerGlobalScope: {
prototype: DedicatedWorkerGlobalScope;
new(): DedicatedWorkerGlobalScope;
};
/**
* The **`EXT_blend_minmax`** extension is part of the WebGL API and extends blending capabilities by adding two new blend equations: the minimum or maximum color components of the source and destination colors.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/EXT_blend_minmax)
*/
interface EXT_blend_minmax {
readonly MIN_EXT: 0x8007;
readonly MAX_EXT: 0x8008;
}
/**
* The **`EXT_color_buffer_float`** extension is part of WebGL and adds the ability to render a variety of floating point formats.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/EXT_color_buffer_float)
*/
interface EXT_color_buffer_float {
}
/**
* The **`EXT_color_buffer_half_float`** extension is part of the WebGL API and adds the ability to render to 16-bit floating-point color buffers.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/EXT_color_buffer_half_float)
*/
interface EXT_color_buffer_half_float {
readonly RGBA16F_EXT: 0x881A;
readonly RGB16F_EXT: 0x881B;
readonly FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT: 0x8211;
readonly UNSIGNED_NORMALIZED_EXT: 0x8C17;
}
/**
* The WebGL API's **`EXT_float_blend`** extension allows blending and draw buffers with 32-bit floating-point components.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/EXT_float_blend)
*/
interface EXT_float_blend {
}
/**
* The **`EXT_frag_depth`** extension is part of the WebGL API and enables to set a depth value of a fragment from within the fragment shader.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/EXT_frag_depth)
*/
interface EXT_frag_depth {
}
/**
* The **`EXT_sRGB`** extension is part of the WebGL API and adds sRGB support to textures and framebuffer objects.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/EXT_sRGB)
*/
interface EXT_sRGB {
readonly SRGB_EXT: 0x8C40;
readonly SRGB_ALPHA_EXT: 0x8C42;
readonly SRGB8_ALPHA8_EXT: 0x8C43;
readonly FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT: 0x8210;
}
/**
* The **`EXT_shader_texture_lod`** extension is part of the WebGL API and adds additional texture functions to the OpenGL ES Shading Language which provide the shader writer with explicit control of LOD (Level of detail).
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/EXT_shader_texture_lod)
*/
interface EXT_shader_texture_lod {
}
/**
* The **`EXT_texture_compression_bptc`** extension is part of the WebGL API and exposes 4 BPTC compressed texture formats. These compression formats are called BC7 and BC6H in Microsoft's DirectX API.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/EXT_texture_compression_bptc)
*/
interface EXT_texture_compression_bptc {
readonly COMPRESSED_RGBA_BPTC_UNORM_EXT: 0x8E8C;
readonly COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT: 0x8E8D;
readonly COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT: 0x8E8E;
readonly COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT: 0x8E8F;
}
/**
* The **`EXT_texture_compression_rgtc`** extension is part of the WebGL API and exposes 4 RGTC compressed texture formats. RGTC is a block-based texture compression format suited for unsigned and signed red and red-green textures (Red-Green Texture Compression).
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/EXT_texture_compression_rgtc)
*/
interface EXT_texture_compression_rgtc {
readonly COMPRESSED_RED_RGTC1_EXT: 0x8DBB;
readonly COMPRESSED_SIGNED_RED_RGTC1_EXT: 0x8DBC;
readonly COMPRESSED_RED_GREEN_RGTC2_EXT: 0x8DBD;
readonly COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT: 0x8DBE;
}
/**
* The **`EXT_texture_filter_anisotropic`** extension is part of the WebGL API and exposes two constants for anisotropic filtering (AF).
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/EXT_texture_filter_anisotropic)
*/
interface EXT_texture_filter_anisotropic {
readonly TEXTURE_MAX_ANISOTROPY_EXT: 0x84FE;
readonly MAX_TEXTURE_MAX_ANISOTROPY_EXT: 0x84FF;
}
/**
* The **`EXT_texture_norm16`** extension is part of the WebGL API and provides a set of new 16-bit signed normalized and unsigned normalized formats (fixed-point texture, renderbuffer and texture buffer).
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/EXT_texture_norm16)
*/
interface EXT_texture_norm16 {
readonly R16_EXT: 0x822A;
readonly RG16_EXT: 0x822C;
readonly RGB16_EXT: 0x8054;
readonly RGBA16_EXT: 0x805B;
readonly R16_SNORM_EXT: 0x8F98;
readonly RG16_SNORM_EXT: 0x8F99;
readonly RGB16_SNORM_EXT: 0x8F9A;
readonly RGBA16_SNORM_EXT: 0x8F9B;
}
/**
* The **`EncodedAudioChunk`** interface of the WebCodecs API represents a chunk of encoded audio data.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/EncodedAudioChunk)
*/
interface EncodedAudioChunk {
/**
* The **`byteLength`** read-only property of the EncodedAudioChunk interface returns the length in bytes of the encoded audio data.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/EncodedAudioChunk/byteLength)
*/
readonly byteLength: number;
/**
* The **`duration`** read-only property of the EncodedAudioChunk interface returns an integer indicating the duration of the audio in microseconds.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/EncodedAudioChunk/duration)
*/
readonly duration: number | null;
/**
* The **`timestamp`** read-only property of the EncodedAudioChunk interface returns an integer indicating the timestamp of the audio in microseconds.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/EncodedAudioChunk/timestamp)
*/
readonly timestamp: number;
/**
* The **`type`** read-only property of the EncodedAudioChunk interface returns a value indicating whether the audio chunk is a key chunk, which does not relying on other frames for decoding.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/EncodedAudioChunk/type)
*/
readonly type: EncodedAudioChunkType;
/**
* The **`copyTo()`** method of the EncodedAudioChunk interface copies the encoded chunk of audio data.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/EncodedAudioChunk/copyTo)
*/
copyTo(destination: AllowSharedBufferSource): void;
}
declare var EncodedAudioChunk: {
prototype: EncodedAudioChunk;
new(init: EncodedAudioChunkInit): EncodedAudioChunk;
};
/**
* The **`EncodedVideoChunk`** interface of the WebCodecs API represents a chunk of encoded video data.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/EncodedVideoChunk)
*/
interface EncodedVideoChunk {
/**
* The **`byteLength`** read-only property of the EncodedVideoChunk interface returns the length in bytes of the encoded video data.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/EncodedVideoChunk/byteLength)
*/
readonly byteLength: number;
/**
* The **`duration`** read-only property of the EncodedVideoChunk interface returns an integer indicating the duration of the video in microseconds.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/EncodedVideoChunk/duration)
*/
readonly duration: number | null;
/**
* The **`timestamp`** read-only property of the EncodedVideoChunk interface returns an integer indicating the timestamp of the video in microseconds.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/EncodedVideoChunk/timestamp)
*/
readonly timestamp: number;
/**
* The **`type`** read-only property of the EncodedVideoChunk interface returns a value indicating whether the video chunk is a key chunk, which does not rely on other frames for decoding.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/EncodedVideoChunk/type)
*/
readonly type: EncodedVideoChunkType;
/**
* The **`copyTo()`** method of the EncodedVideoChunk interface copies the encoded chunk of video data.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/EncodedVideoChunk/copyTo)
*/
copyTo(destination: AllowSharedBufferSource): void;
}
declare var EncodedVideoChunk: {
prototype: EncodedVideoChunk;
new(init: EncodedVideoChunkInit): EncodedVideoChunk;
};
/**
* The **`ErrorEvent`** interface represents events providing information related to errors in scripts or in files.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/ErrorEvent)
*/
interface ErrorEvent extends Event {
/**
* The **`colno`** read-only property of the ErrorEvent interface returns an integer containing the column number of the script file on which the error occurred.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/ErrorEvent/colno)
*/
readonly colno: number;
/**
* The **`error`** read-only property of the ErrorEvent interface returns a JavaScript value, such as an Error or DOMException, representing the error associated with this event.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/ErrorEvent/error)
*/
readonly error: any;
/**
* The **`filename`** read-only property of the ErrorEvent interface returns a string containing the name of the script file in which the error occurred.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/ErrorEvent/filename)
*/
readonly filename: string;
/**
* The **`lineno`** read-only property of the ErrorEvent interface returns an integer containing the line number of the script file on which the error occurred.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/ErrorEvent/lineno)
*/
readonly lineno: number;
/**
* The **`message`** read-only property of the ErrorEvent interface returns a string containing a human-readable error message describing the problem.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/ErrorEvent/message)
*/
readonly message: string;
}
declare var ErrorEvent: {
prototype: ErrorEvent;
new(type: string, eventInitDict?: ErrorEventInit): ErrorEvent;
};
/**
* The **`Event`** interface represents an event which takes place on an EventTarget.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event)
*/
interface Event {
/**
* The **`bubbles`** read-only property of the Event interface indicates whether the event bubbles up through the DOM tree or not.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/bubbles)
*/
readonly bubbles: boolean;
/**
* The **`cancelBubble`** property of the Event interface is deprecated. Use Event.stopPropagation() instead. Setting its value to true before returning from an event handler prevents propagation of the event. In later implementations, setting this to false does nothing. See Browser compatibility for details.
* @deprecated
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/cancelBubble)
*/
cancelBubble: boolean;
/**
* The **`cancelable`** read-only property of the Event interface indicates whether the event can be canceled, and therefore prevented as if the event never happened.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/cancelable)
*/
readonly cancelable: boolean;
/**
* The read-only **`composed`** property of the Event interface returns a boolean value which indicates whether or not the event will propagate across the shadow DOM boundary into the standard DOM.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/composed)
*/
readonly composed: boolean;
/**
* The **`currentTarget`** read-only property of the Event interface identifies the element to which the event handler has been attached.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/currentTarget)
*/
readonly currentTarget: EventTarget | null;
/**
* The **`defaultPrevented`** read-only property of the Event interface returns a boolean value indicating whether or not the call to Event.preventDefault() canceled the event.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/defaultPrevented)
*/
readonly defaultPrevented: boolean;
/**
* The **`eventPhase`** read-only property of the Event interface indicates which phase of the event flow is currently being evaluated.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/eventPhase)
*/
readonly eventPhase: number;
/**
* The **`isTrusted`** read-only property of the Event interface is a boolean value that is true when the event was generated by the user agent (including via user actions and programmatic methods such as HTMLElement.focus()), and false when the event was dispatched via EventTarget.dispatchEvent(). The only exception is the click event, which initializes the isTrusted property to false in user agents.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/isTrusted)
*/
readonly isTrusted: boolean;
/**
* The Event property **`returnValue`** indicates whether the default action for this event has been prevented or not.
* @deprecated
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/returnValue)
*/
returnValue: boolean;
/**
* The deprecated **`Event.srcElement`** is an alias for the Event.target property. Use Event.target instead.
* @deprecated
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/srcElement)
*/
readonly srcElement: EventTarget | null;
/**
* The read-only **`target`** property of the Event interface is a reference to the object onto which the event was dispatched. It is different from Event.currentTarget when the event handler is called during the bubbling or capturing phase of the event.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/target)
*/
readonly target: EventTarget | null;
/**
* The **`timeStamp`** read-only property of the Event interface returns the time (in milliseconds) at which the event was created.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/timeStamp)
*/
readonly timeStamp: DOMHighResTimeStamp;
/**
* The **`type`** read-only property of the Event interface returns a string containing the event's type. It is set when the event is constructed and is the name commonly used to refer to the specific event, such as click, load, or error.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/type)
*/
readonly type: string;
/**
* The **`composedPath()`** method of the Event interface returns the event's path which is an array of the objects on which listeners will be invoked. This does not include nodes in shadow trees if the shadow root was created with its ShadowRoot.mode closed.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/composedPath)
*/
composedPath(): EventTarget[];
/**
* The **`Event.initEvent()`** method is used to initialize the value of an event created using Document.createEvent().
* @deprecated
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/initEvent)
*/
initEvent(type: string, bubbles?: boolean, cancelable?: boolean): void;
/**
* The **`preventDefault()`** method of the Event interface tells the user agent that the event is being explicitly handled, so its default action, such as page scrolling, link navigation, or pasting text, should not be taken.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/preventDefault)
*/
preventDefault(): void;
/**
* The **`stopImmediatePropagation()`** method of the Event interface prevents other listeners of the same event from being called.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/stopImmediatePropagation)
*/
stopImmediatePropagation(): void;
/**
* The **`stopPropagation()`** method of the Event interface prevents further propagation of the current event in the capturing and bubbling phases. It does not, however, prevent any default behaviors from occurring; for instance, clicks on links are still processed. If you want to stop those behaviors, see the preventDefault() method. It also does not prevent propagation to other event-handlers of the current element. If you want to stop those, see stopImmediatePropagation().
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/stopPropagation)
*/
stopPropagation(): void;
readonly NONE: 0;
readonly CAPTURING_PHASE: 1;
readonly AT_TARGET: 2;
readonly BUBBLING_PHASE: 3;
}
declare var Event: {
prototype: Event;
new(type: string, eventInitDict?: EventInit): Event;
readonly NONE: 0;
readonly CAPTURING_PHASE: 1;
readonly AT_TARGET: 2;
readonly BUBBLING_PHASE: 3;
};
interface EventListener {
(evt: Event): void;
}
interface EventListenerObject {
handleEvent(object: Event): void;
}
interface EventSourceEventMap {
"error": Event;
"message": MessageEvent;
"open": Event;
}
/**
* The **`EventSource`** interface is web content's interface to server-sent events.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventSource)
*/
interface EventSource extends EventTarget {
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventSource/error_event) */
onerror: ((this: EventSource, ev: Event) => any) | null;
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventSource/message_event) */
onmessage: ((this: EventSource, ev: MessageEvent) => any) | null;
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventSource/open_event) */
onopen: ((this: EventSource, ev: Event) => any) | null;
/**
* The **`readyState`** read-only property of the EventSource interface returns a number representing the state of the connection.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventSource/readyState)
*/
readonly readyState: number;
/**
* The **`url`** read-only property of the EventSource interface returns a string representing the URL of the source.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventSource/url)
*/
readonly url: string;
/**
* The **`withCredentials`** read-only property of the EventSource interface returns a boolean value indicating whether the EventSource object was instantiated with CORS credentials set.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventSource/withCredentials)
*/
readonly withCredentials: boolean;
/**
* The **`close()`** method of the EventSource interface closes the connection, if one is made, and sets the EventSource.readyState attribute to 2 (closed).
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventSource/close)
*/
close(): void;
readonly CONNECTING: 0;
readonly OPEN: 1;
readonly CLOSED: 2;
addEventListener(type: K, listener: (this: EventSource, ev: EventSourceEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
addEventListener(type: string, listener: (this: EventSource, event: MessageEvent) => any, options?: boolean | AddEventListenerOptions): void;
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
removeEventListener(type: K, listener: (this: EventSource, ev: EventSourceEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
removeEventListener(type: string, listener: (this: EventSource, event: MessageEvent) => any, options?: boolean | EventListenerOptions): void;
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}
declare var EventSource: {
prototype: EventSource;
new(url: string | URL, eventSourceInitDict?: EventSourceInit): EventSource;
readonly CONNECTING: 0;
readonly OPEN: 1;
readonly CLOSED: 2;
};
/**
* The **`EventTarget`** interface is implemented by objects that can receive events and may have listeners for them. In other words, any target of events implements the three methods associated with this interface.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventTarget)
*/
interface EventTarget {
/**
* The **`addEventListener()`** method of the EventTarget interface sets up a function that will be called whenever the specified event is delivered to the target.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventTarget/addEventListener)
*/
addEventListener(type: string, callback: EventListenerOrEventListenerObject | null, options?: AddEventListenerOptions | boolean): void;
/**
* The **`dispatchEvent()`** method of the EventTarget sends an Event to the object, (synchronously) invoking the affected event listeners in the appropriate order. The normal event processing rules (including the capturing and optional bubbling phase) also apply to events dispatched manually with dispatchEvent().
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventTarget/dispatchEvent)
*/
dispatchEvent(event: Event): boolean;
/**
* The **`removeEventListener()`** method of the EventTarget interface removes an event listener previously registered with EventTarget.addEventListener() from the target. The event listener to be removed is identified using a combination of the event type, the event listener function itself, and various optional options that may affect the matching process; see Matching event listeners for removal.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventTarget/removeEventListener)
*/
removeEventListener(type: string, callback: EventListenerOrEventListenerObject | null, options?: EventListenerOptions | boolean): void;
}
declare var EventTarget: {
prototype: EventTarget;
new(): EventTarget;
};
/**
* The **`ExtendableCookieChangeEvent`** interface of the Cookie Store API is the event type passed to cookiechange event fired at the ServiceWorkerGlobalScope when any cookie changes occur which match the service worker's cookie change subscription list. A cookie change event consists of a cookie and a type (either "changed" or "deleted").
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/ExtendableCookieChangeEvent)
*/
interface ExtendableCookieChangeEvent extends ExtendableEvent {
/**
* The **`changed`** read-only property of the ExtendableCookieChangeEvent interface returns any cookies that have been changed by the given ExtendableCookieChangeEvent instance.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/ExtendableCookieChangeEvent/changed)
*/
readonly changed: ReadonlyArray;
/**
* The **`deleted`** read-only property of the ExtendableCookieChangeEvent interface returns any cookies that have been deleted by the given ExtendableCookieChangeEvent instance.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/ExtendableCookieChangeEvent/deleted)
*/
readonly deleted: ReadonlyArray;
}
declare var ExtendableCookieChangeEvent: {
prototype: ExtendableCookieChangeEvent;
new(type: string, eventInitDict?: ExtendableCookieChangeEventInit): ExtendableCookieChangeEvent;
};
/**
* The **`ExtendableEvent`** interface extends the lifetime of the install and activate events dispatched on the global scope as part of the service worker lifecycle. This ensures that any functional events (like FetchEvent) are not dispatched until it upgrades database schemas and deletes the outdated cache entries.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/ExtendableEvent)
*/
interface ExtendableEvent extends Event {
/**
* The **`ExtendableEvent.waitUntil()`** method tells the event dispatcher that work is ongoing. It can also be used to detect whether that work was successful. In service workers, waitUntil() tells the browser that work is ongoing until the promise settles, and it shouldn't terminate the service worker if it wants that work to complete.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/ExtendableEvent/waitUntil)
*/
waitUntil(f: Promise): void;
}
declare var ExtendableEvent: {
prototype: ExtendableEvent;
new(type: string, eventInitDict?: ExtendableEventInit): ExtendableEvent;
};
/**
* The **`ExtendableMessageEvent`** interface of the Service Worker API represents the event object of a message event fired on a service worker (when a message is received on the ServiceWorkerGlobalScope from another context) — extends the lifetime of such events.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/ExtendableMessageEvent)
*/
interface ExtendableMessageEvent extends ExtendableEvent {
/**
* The **`data`** read-only property of the ExtendableMessageEvent interface returns the event's data. It can be any data type.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/ExtendableMessageEvent/data)
*/
readonly data: any;
/**
* The lastEventID read-only property of the ExtendableMessageEvent interface represents, in server-sent events, the last event ID of the event source. This is an empty string.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/ExtendableMessageEvent/lastEventId)
*/
readonly lastEventId: string;
/**
* The **`origin`** read-only property of the ExtendableMessageEvent interface returns the origin of the Client that sent the message.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/ExtendableMessageEvent/origin)
*/
readonly origin: string;
/**
* The **`ports`** read-only property of the ExtendableMessageEvent interface returns the array containing the MessagePort objects representing the ports of the associated message channel (the channel the message is being sent through.)
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/ExtendableMessageEvent/ports)
*/
readonly ports: ReadonlyArray;
/**
* The **`source`** read-only property of the ExtendableMessageEvent interface returns a reference to the Client object from which the message was sent.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/ExtendableMessageEvent/source)
*/
readonly source: Client | ServiceWorker | MessagePort | null;
}
declare var ExtendableMessageEvent: {
prototype: ExtendableMessageEvent;
new(type: string, eventInitDict?: ExtendableMessageEventInit): ExtendableMessageEvent;
};
/**
* This is the event type for fetch events dispatched on the service worker global scope. It contains information about the fetch, including the request and how the receiver will treat the response. It provides the event.respondWith() method, which allows us to provide a response to this fetch.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/FetchEvent)
*/
interface FetchEvent extends ExtendableEvent {
/**
* The **`clientId`** read-only property of the FetchEvent interface returns the id of the Client that the current service worker is controlling.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/FetchEvent/clientId)
*/
readonly clientId: string;
/**
* The **`handled`** property of the FetchEvent interface returns a promise indicating if the event has been handled by the fetch algorithm or not. This property allows executing code after the browser has consumed a response, and is usually used together with the waitUntil() method.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/FetchEvent/handled)
*/
readonly handled: Promise;
/**
* The **`preloadResponse`** read-only property of the FetchEvent interface returns a Promise that resolves to the navigation preload Response if navigation preload was triggered, or undefined otherwise.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/FetchEvent/preloadResponse)
*/
readonly preloadResponse: Promise;
/**
* The **`request`** read-only property of the FetchEvent interface returns the Request that triggered the event handler.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/FetchEvent/request)
*/
readonly request: Request;
/**
* The **`resultingClientId`** read-only property of the FetchEvent interface is the id of the client that replaces the previous client during a page navigation.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/FetchEvent/resultingClientId)
*/
readonly resultingClientId: string;
/**
* The **`respondWith()`** method of FetchEvent prevents the browser's default fetch handling, and allows you to provide a promise for a Response yourself.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/FetchEvent/respondWith)
*/
respondWith(r: Response | PromiseLike): void;
}
declare var FetchEvent: {
prototype: FetchEvent;
new(type: string, eventInitDict: FetchEventInit): FetchEvent;
};
/**
* The **`File`** interface provides information about files and allows JavaScript in a web page to access their content.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/File)
*/
interface File extends Blob {
/**
* The **`lastModified`** read-only property of the File interface provides the last modified date of the file as the number of milliseconds since the Unix epoch (January 1, 1970 at midnight). Files without a known last modified date return the current date.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/File/lastModified)
*/
readonly lastModified: number;
/**
* The **`name`** read-only property of the File interface returns the name of the file represented by a File object. For security reasons, the path is excluded from this property.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/File/name)
*/
readonly name: string;
/**
* The **`webkitRelativePath`** read-only property of the File interface contains a string which specifies the file's path relative to the directory selected by the user in an element with its webkitdirectory attribute set.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/File/webkitRelativePath)
*/
readonly webkitRelativePath: string;
}
declare var File: {
prototype: File;
new(fileBits: BlobPart[], fileName: string, options?: FilePropertyBag): File;
};
/**
* The **`FileList`** interface represents an object of this type returned by the files property of the HTML element; this lets you access the list of files selected with the element. It's also used for a list of files dropped into web content when using the drag and drop API; see the DataTransfer object for details on this usage.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileList)
*/
interface FileList {
/**
* The **`length`** read-only property of the FileList interface returns the number of files in the FileList.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileList/length)
*/
readonly length: number;
/**
* The **`item()`** method of the FileList interface returns a File object representing the file at the specified index in the file list.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileList/item)
*/
item(index: number): File | null;
[index: number]: File;
}
declare var FileList: {
prototype: FileList;
new(): FileList;
};
interface FileReaderEventMap {
"abort": ProgressEvent;
"error": ProgressEvent;
"load": ProgressEvent;
"loadend": ProgressEvent;
"loadstart": ProgressEvent;
"progress": ProgressEvent;
}
/**
* The **`FileReader`** interface 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.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileReader)
*/
interface FileReader extends EventTarget {
/**
* The **`error`** read-only property of the FileReader interface returns the error that occurred while reading the file.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileReader/error)
*/
readonly error: DOMException | null;
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileReader/abort_event) */
onabort: ((this: FileReader, ev: ProgressEvent) => any) | null;
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileReader/error_event) */
onerror: ((this: FileReader, ev: ProgressEvent) => any) | null;
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileReader/load_event) */
onload: ((this: FileReader, ev: ProgressEvent) => any) | null;
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileReader/loadend_event) */
onloadend: ((this: FileReader, ev: ProgressEvent) => any) | null;
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileReader/loadstart_event) */
onloadstart: ((this: FileReader, ev: ProgressEvent) => any) | null;
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileReader/progress_event) */
onprogress: ((this: FileReader, ev: ProgressEvent) => any) | null;
/**
* The **`readyState`** read-only property of the FileReader interface provides the current state of the reading operation. This will be one of the states: EMPTY, LOADING, or DONE.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileReader/readyState)
*/
readonly readyState: 0 | 1 | 2;
/**
* The **`result`** read-only property of the FileReader interface returns the file's contents. This property is only valid after the read operation is complete, and the format of the data depends on which of the methods was used to initiate the read operation.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileReader/result)
*/
readonly result: string | ArrayBuffer | null;
/**
* The **`abort()`** method of the FileReader interface aborts the read operation. Upon return, the readyState will be DONE.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileReader/abort)
*/
abort(): void;
/**
* The **`readAsArrayBuffer()`** method of the FileReader interface is used to start reading the contents of a specified Blob or File. When the read operation is finished, the readyState property becomes DONE, and the loadend event is triggered. At that time, the result property contains an ArrayBuffer representing the file's data.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileReader/readAsArrayBuffer)
*/
readAsArrayBuffer(blob: Blob): void;
/**
* The **`readAsBinaryString()`** method of the FileReader interface is used to start reading the contents of the specified Blob or File. When the read operation is finished, the readyState property becomes DONE, and the loadend event is triggered. At that time, the result property contains the raw binary data from the file.
* @deprecated
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileReader/readAsBinaryString)
*/
readAsBinaryString(blob: Blob): void;
/**
* The **`readAsDataURL()`** method of the FileReader interface is used to read the contents of the specified Blob or File. When the read operation is finished, the readyState property becomes DONE, and the loadend event is triggered. At that time, the result attribute contains the data as a data: URL representing the file's data as a base64 encoded string.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileReader/readAsDataURL)
*/
readAsDataURL(blob: Blob): void;
/**
* The **`readAsText()`** method of the FileReader interface is used to read the contents of the specified Blob or File. When the read operation is complete, the readyState property is changed to DONE, the loadend event is triggered, and the result property contains the contents of the file as a text string.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileReader/readAsText)
*/
readAsText(blob: Blob, encoding?: string): void;
readonly EMPTY: 0;
readonly LOADING: 1;
readonly DONE: 2;
addEventListener(type: K, listener: (this: FileReader, ev: FileReaderEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
removeEventListener(type: K, listener: (this: FileReader, ev: FileReaderEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}
declare var FileReader: {
prototype: FileReader;
new(): FileReader;
readonly EMPTY: 0;
readonly LOADING: 1;
readonly DONE: 2;
};
/**
* The **`FileReaderSync`** interface allows to read File or Blob objects synchronously. This interface is only available in workers as it enables synchronous I/O that could potentially block.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileReaderSync)
*/
interface FileReaderSync {
/**
* The **`readAsArrayBuffer()`** method of the FileReaderSync interface allows to read File or Blob objects in a synchronous way into an ArrayBuffer. This interface is only available in workers as it enables synchronous I/O that could potentially block.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileReaderSync/readAsArrayBuffer)
*/
readAsArrayBuffer(blob: Blob): ArrayBuffer;
/**
* The **`readAsBinaryString()`** method of the FileReaderSync interface allows to read File or Blob objects in a synchronous way into a string. This interface is only available in workers as it enables synchronous I/O that could potentially block.
* @deprecated
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileReaderSync/readAsBinaryString)
*/
readAsBinaryString(blob: Blob): string;
/**
* The **`readAsDataURL()`** method of the FileReaderSync interface allows to read File or Blob objects in a synchronous way into a string representing a data URL. This interface is only available in workers as it enables synchronous I/O that could potentially block.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileReaderSync/readAsDataURL)
*/
readAsDataURL(blob: Blob): string;
/**
* The **`readAsText()`** method of the FileReaderSync interface allows to read File or Blob objects in a synchronous way into a string. This interface is only available in workers as it enables synchronous I/O that could potentially block.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileReaderSync/readAsText)
*/
readAsText(blob: Blob, encoding?: string): string;
}
declare var FileReaderSync: {
prototype: FileReaderSync;
new(): FileReaderSync;
};
/**
* The **`FileSystemDirectoryHandle`** interface of the File System API provides a handle to a file system directory.
* Available only in secure contexts.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemDirectoryHandle)
*/
interface FileSystemDirectoryHandle extends FileSystemHandle {
readonly kind: "directory";
/**
* The **`getDirectoryHandle()`** method of the FileSystemDirectoryHandle interface returns a FileSystemDirectoryHandle for a subdirectory with the specified name within the directory handle on which the method is called.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemDirectoryHandle/getDirectoryHandle)
*/
getDirectoryHandle(name: string, options?: FileSystemGetDirectoryOptions): Promise;
/**
* The **`getFileHandle()`** method of the FileSystemDirectoryHandle interface returns a FileSystemFileHandle for a file with the specified name, within the directory the method is called.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemDirectoryHandle/getFileHandle)
*/
getFileHandle(name: string, options?: FileSystemGetFileOptions): Promise;
/**
* The **`removeEntry()`** method of the FileSystemDirectoryHandle interface attempts to remove an entry if the directory handle contains a file or directory called the name specified.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemDirectoryHandle/removeEntry)
*/
removeEntry(name: string, options?: FileSystemRemoveOptions): Promise;
/**
* The **`resolve()`** method of the FileSystemDirectoryHandle interface returns an Array of directory names from the parent handle to the specified child entry, with the name of the child entry as the last array item.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemDirectoryHandle/resolve)
*/
resolve(possibleDescendant: FileSystemHandle): Promise;
}
declare var FileSystemDirectoryHandle: {
prototype: FileSystemDirectoryHandle;
new(): FileSystemDirectoryHandle;
};
/**
* The **`FileSystemFileHandle`** interface of the File System API represents a handle to a file system entry. The interface is accessed through the window.showOpenFilePicker() method.
* Available only in secure contexts.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemFileHandle)
*/
interface FileSystemFileHandle extends FileSystemHandle {
readonly kind: "file";
/**
* The **`createSyncAccessHandle()`** method of the FileSystemFileHandle interface returns a Promise which resolves to a FileSystemSyncAccessHandle object that can be used to synchronously read from and write to a file. The synchronous nature of this method brings performance advantages, but it is only usable inside dedicated Web Workers for files within the origin private file system.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemFileHandle/createSyncAccessHandle)
*/
createSyncAccessHandle(): Promise;
/**
* The **`createWritable()`** method of the FileSystemFileHandle interface creates a FileSystemWritableFileStream that can be used to write to a file. The method returns a Promise which resolves to this created stream.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemFileHandle/createWritable)
*/
createWritable(options?: FileSystemCreateWritableOptions): Promise;
/**
* The **`getFile()`** method of the FileSystemFileHandle interface returns a Promise which resolves to a File object representing the state on disk of the entry represented by the handle.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemFileHandle/getFile)
*/
getFile(): Promise;
}
declare var FileSystemFileHandle: {
prototype: FileSystemFileHandle;
new(): FileSystemFileHandle;
};
/**
* The **`FileSystemHandle`** interface of the File System API is an object which represents a file or directory entry. Multiple handles can represent the same entry. For the most part you do not work with FileSystemHandle directly but rather its child interfaces FileSystemFileHandle and FileSystemDirectoryHandle.
* Available only in secure contexts.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemHandle)
*/
interface FileSystemHandle {
/**
* The **`kind`** read-only property of the FileSystemHandle interface returns the type of entry. This is 'file' if the associated entry is a file or 'directory'. It is used to distinguish files from directories when iterating over the contents of a directory.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemHandle/kind)
*/
readonly kind: FileSystemHandleKind;
/**
* The **`name`** read-only property of the FileSystemHandle interface returns the name of the entry represented by handle.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemHandle/name)
*/
readonly name: string;
/**
* The **`isSameEntry()`** method of the FileSystemHandle interface compares two handles to see if the associated entries (either a file or directory) match.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemHandle/isSameEntry)
*/
isSameEntry(other: FileSystemHandle): Promise;
}
declare var FileSystemHandle: {
prototype: FileSystemHandle;
new(): FileSystemHandle;
};
/**
* The **`FileSystemSyncAccessHandle`** interface of the File System API represents a synchronous handle to a file system entry.
* Available only in secure contexts.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemSyncAccessHandle)
*/
interface FileSystemSyncAccessHandle {
/**
* The **`close()`** method of the FileSystemSyncAccessHandle interface closes an open synchronous file handle, disabling any further operations on it and releasing the exclusive lock previously put on the file associated with the file handle.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemSyncAccessHandle/close)
*/
close(): void;
/**
* The **`flush()`** method of the FileSystemSyncAccessHandle interface persists any changes made to the file associated with the handle via the write() method to disk.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemSyncAccessHandle/flush)
*/
flush(): void;
/**
* The **`getSize()`** method of the FileSystemSyncAccessHandle interface returns the size of the file associated with the handle in bytes.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemSyncAccessHandle/getSize)
*/
getSize(): number;
/**
* The **`read()`** method of the FileSystemSyncAccessHandle interface reads the content of the file associated with the handle into a specified buffer, optionally at a given offset.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemSyncAccessHandle/read)
*/
read(buffer: AllowSharedBufferSource, options?: FileSystemReadWriteOptions): number;
/**
* The **`truncate()`** method of the FileSystemSyncAccessHandle interface resizes the file associated with the handle to a specified number of bytes.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemSyncAccessHandle/truncate)
*/
truncate(newSize: number): void;
/**
* The **`write()`** method of the FileSystemSyncAccessHandle interface writes the content of a specified buffer to the file associated with the handle, optionally at a given offset.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemSyncAccessHandle/write)
*/
write(buffer: AllowSharedBufferSource, options?: FileSystemReadWriteOptions): number;
}
declare var FileSystemSyncAccessHandle: {
prototype: FileSystemSyncAccessHandle;
new(): FileSystemSyncAccessHandle;
};
/**
* The **`FileSystemWritableFileStream`** interface of the File System API is a WritableStream object with additional convenience methods, which operates on a single file on disk. The interface is accessed through the FileSystemFileHandle.createWritable() method.
* Available only in secure contexts.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemWritableFileStream)
*/
interface FileSystemWritableFileStream extends WritableStream {
/**
* The **`seek()`** method of the FileSystemWritableFileStream interface updates the current file cursor offset to the position (in bytes) specified when calling the method.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemWritableFileStream/seek)
*/
seek(position: number): Promise;
/**
* The **`truncate()`** method of the FileSystemWritableFileStream interface resizes the file associated with the stream to the specified size in bytes.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemWritableFileStream/truncate)
*/
truncate(size: number): Promise;
/**
* The **`write()`** method of the FileSystemWritableFileStream interface writes content into the file the method is called on, at the current file cursor offset.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemWritableFileStream/write)
*/
write(data: FileSystemWriteChunkType): Promise;
}
declare var FileSystemWritableFileStream: {
prototype: FileSystemWritableFileStream;
new(): FileSystemWritableFileStream;
};
/**
* The **`FontFace`** interface of the CSS Font Loading API represents a single usable font face.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFace)
*/
interface FontFace {
/**
* The **`ascentOverride`** property of the FontFace interface returns and sets the ascent metric for the font, the height above the baseline that CSS uses to lay out line boxes in an inline formatting context.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFace/ascentOverride)
*/
ascentOverride: string;
/**
* The **`descentOverride`** property of the FontFace interface returns and sets the value of the descent-override descriptor. The possible values are normal, indicating that the metric used should be obtained from the font file, or a percentage.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFace/descentOverride)
*/
descentOverride: string;
/**
* The **`display`** property of the FontFace interface determines how a font face is displayed based on whether and when it is downloaded and ready to use. This property is equivalent to the CSS font-display descriptor.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFace/display)
*/
display: FontDisplay;
/**
* The **`FontFace.family`** property allows the author to get or set the font family of a FontFace object.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFace/family)
*/
family: string;
/**
* The **`featureSettings`** property of the FontFace interface retrieves or sets infrequently used font features that are not available from a font's variant properties.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFace/featureSettings)
*/
featureSettings: string;
/**
* The **`lineGapOverride`** property of the FontFace interface returns and sets the value of the line-gap-override descriptor. The possible values are normal, indicating that the metric used should be obtained from the font file, or a percentage.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFace/lineGapOverride)
*/
lineGapOverride: string;
/**
* The **`loaded`** read-only property of the FontFace interface returns a Promise that resolves with the current FontFace object when the font specified in the object's constructor is done loading or rejects with a SyntaxError.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFace/loaded)
*/
readonly loaded: Promise;
/**
* The **`status`** read-only property of the FontFace interface returns an enumerated value indicating the status of the font, one of "unloaded", "loading", "loaded", or "error".
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFace/status)
*/
readonly status: FontFaceLoadStatus;
/**
* The **`stretch`** property of the FontFace interface retrieves or sets how the font stretches.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFace/stretch)
*/
stretch: string;
/**
* The **`style`** property of the FontFace interface retrieves or sets the font's style.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFace/style)
*/
style: string;
/**
* The **`unicodeRange`** property of the FontFace interface retrieves or sets the range of unicode code points encompassing the font.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFace/unicodeRange)
*/
unicodeRange: string;
/**
* The **`variationSettings`** property of the FontFace interface retrieves or sets low-level OpenType or TrueType font variations.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFace/variationSettings)
*/
variationSettings: string;
/**
* The **`weight`** property of the FontFace interface retrieves or sets the weight of the font.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFace/weight)
*/
weight: string;
/**
* The **`load()`** method of the FontFace interface requests and loads a font whose source was specified as a URL. It returns a Promise that resolves with the current FontFace object.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFace/load)
*/
load(): Promise;
}
declare var FontFace: {
prototype: FontFace;
new(family: string, source: string | BufferSource, descriptors?: FontFaceDescriptors): FontFace;
};
interface FontFaceSetEventMap {
"loading": FontFaceSetLoadEvent;
"loadingdone": FontFaceSetLoadEvent;
"loadingerror": FontFaceSetLoadEvent;
}
/**
* The **`FontFaceSet`** interface of the CSS Font Loading API manages the loading of font-faces and querying of their download status.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFaceSet)
*/
interface FontFaceSet extends EventTarget {
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFaceSet/loading_event) */
onloading: ((this: FontFaceSet, ev: FontFaceSetLoadEvent) => any) | null;
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFaceSet/loadingdone_event) */
onloadingdone: ((this: FontFaceSet, ev: FontFaceSetLoadEvent) => any) | null;
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFaceSet/loadingerror_event) */
onloadingerror: ((this: FontFaceSet, ev: FontFaceSetLoadEvent) => any) | null;
/**
* The **`ready`** read-only property of the FontFaceSet interface returns a Promise that resolves to the given FontFaceSet.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFaceSet/ready)
*/
readonly ready: Promise;
/**
* The **`status`** read-only property of the FontFaceSet interface returns the loading state of the fonts in the set.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFaceSet/status)
*/
readonly status: FontFaceSetLoadStatus;
/**
* The **`check()`** method of the FontFaceSet returns true if you can render some text using the given font specification without attempting to use any fonts in this FontFaceSet that are not yet fully loaded. This means you can use the font specification without causing a font swap.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFaceSet/check)
*/
check(font: string, text?: string): boolean;
/**
* The **`load()`** method of the FontFaceSet forces all the fonts given in parameters to be loaded.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFaceSet/load)
*/
load(font: string, text?: string): Promise;
forEach(callbackfn: (value: FontFace, key: FontFace, parent: FontFaceSet) => void, thisArg?: any): void;
addEventListener(type: K, listener: (this: FontFaceSet, ev: FontFaceSetEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
removeEventListener(type: K, listener: (this: FontFaceSet, ev: FontFaceSetEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}
declare var FontFaceSet: {
prototype: FontFaceSet;
new(): FontFaceSet;
};
/**
* The **`FontFaceSetLoadEvent`** interface of the CSS Font Loading API represents events fired at a FontFaceSet after it starts loading font faces.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFaceSetLoadEvent)
*/
interface FontFaceSetLoadEvent extends Event {
/**
* The **`fontfaces`** read-only property of the FontFaceSetLoadEvent interface returns an array of FontFace instances, each of which represents a single usable font.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFaceSetLoadEvent/fontfaces)
*/
readonly fontfaces: ReadonlyArray;
}
declare var FontFaceSetLoadEvent: {
prototype: FontFaceSetLoadEvent;
new(type: string, eventInitDict?: FontFaceSetLoadEventInit): FontFaceSetLoadEvent;
};
interface FontFaceSource {
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/fonts) */
readonly fonts: FontFaceSet;
}
/**
* The **`FormData`** interface provides a way to construct a set of key/value pairs representing form fields and their values, which can be sent using the fetch(), XMLHttpRequest.send() or navigator.sendBeacon() methods. It uses the same format a form would use if the encoding type were set to "multipart/form-data".
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/FormData)
*/
interface FormData {
/**
* The **`append()`** method of the FormData interface appends a new value onto an existing key inside a FormData object, or adds the key if it does not already exist.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/FormData/append)
*/
append(name: string, value: string | Blob): void;
append(name: string, value: string): void;
append(name: string, blobValue: Blob, filename?: string): void;
/**
* The **`delete()`** method of the FormData interface deletes a key and its value(s) from a FormData object.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/FormData/delete)
*/
delete(name: string): void;
/**
* The **`get()`** method of the FormData interface returns the first value associated with a given key from within a FormData object. If you expect multiple values and want all of them, use the getAll() method instead.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/FormData/get)
*/
get(name: string): FormDataEntryValue | null;
/**
* The **`getAll()`** method of the FormData interface returns all the values associated with a given key from within a FormData object.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/FormData/getAll)
*/
getAll(name: string): FormDataEntryValue[];
/**
* The **`has()`** method of the FormData interface returns whether a FormData object contains a certain key.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/FormData/has)
*/
has(name: string): boolean;
/**
* The **`set()`** method of the FormData interface sets a new value for an existing key inside a FormData object, or adds the key/value if it does not already exist.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/FormData/set)
*/
set(name: string, value: string | Blob): void;
set(name: string, value: string): void;
set(name: string, blobValue: Blob, filename?: string): void;
forEach(callbackfn: (value: FormDataEntryValue, key: string, parent: FormData) => void, thisArg?: any): void;
}
declare var FormData: {
prototype: FormData;
new(): FormData;
};
/**
* The **`GPU`** interface of the WebGPU API is the starting point for using WebGPU. It can be used to return a GPUAdapter from which you can request devices, configure features and limits, and more.
* Available only in secure contexts.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPU)
*/
interface GPU {
/**
* The **`wgslLanguageFeatures`** read-only property of the GPU interface returns a WGSLLanguageFeatures object that reports the WGSL language extensions supported by the WebGPU implementation.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPU/wgslLanguageFeatures)
*/
readonly wgslLanguageFeatures: WGSLLanguageFeatures;
/**
* The **`getPreferredCanvasFormat()`** method of the GPU interface returns the optimal canvas texture format for displaying 8-bit depth, standard dynamic range content on the current system.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPU/getPreferredCanvasFormat)
*/
getPreferredCanvasFormat(): GPUTextureFormat;
/**
* The **`requestAdapter()`** method of the GPU interface returns a Promise that fulfills with a GPUAdapter object instance. From this you can request a GPUDevice, adapter info, features, and limits.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPU/requestAdapter)
*/
requestAdapter(options?: GPURequestAdapterOptions): Promise;
}
declare var GPU: {
prototype: GPU;
new(): GPU;
};
/**
* The **`GPUAdapter`** interface of the WebGPU API represents a GPU adapter. From this you can request a GPUDevice, adapter info, features, and limits.
* Available only in secure contexts.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUAdapter)
*/
interface GPUAdapter {
/**
* The **`features`** read-only property of the GPUAdapter interface returns a GPUSupportedFeatures object that describes additional functionality supported by the adapter.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUAdapter/features)
*/
readonly features: GPUSupportedFeatures;
/**
* The **`info`** read-only property of the GPUAdapter interface returns a GPUAdapterInfo object containing identifying information about the adapter.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUAdapter/info)
*/
readonly info: GPUAdapterInfo;
/**
* The **`limits`** read-only property of the GPUAdapter interface returns a GPUSupportedLimits object that describes the limits supported by the adapter.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUAdapter/limits)
*/
readonly limits: GPUSupportedLimits;
/**
* The **`requestDevice()`** method of the GPUAdapter interface returns a Promise that fulfills with a GPUDevice object, which is the primary interface for communicating with the GPU.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUAdapter/requestDevice)
*/
requestDevice(descriptor?: GPUDeviceDescriptor): Promise;
}
declare var GPUAdapter: {
prototype: GPUAdapter;
new(): GPUAdapter;
};
/**
* The **`GPUAdapterInfo`** interface of the WebGPU API contains identifying information about a GPUAdapter.
* Available only in secure contexts.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUAdapterInfo)
*/
interface GPUAdapterInfo {
/**
* The **`architecture`** read-only property of the GPUAdapterInfo interface returns the name of the family or class of GPUs the adapter belongs to, or an empty string if it is not available.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUAdapterInfo/architecture)
*/
readonly architecture: string;
/**
* The **`description`** read-only property of the GPUAdapterInfo interface returns a human-readable string describing the adapter, or an empty string if it is not available.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUAdapterInfo/description)
*/
readonly description: string;
/**
* The **`device`** read-only property of the GPUAdapterInfo interface returns a vendor-specific identifier for the adapter, or an empty string if it is not available.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUAdapterInfo/device)
*/
readonly device: string;
/**
* The **`isFallbackAdapter`** read-only property of the GPUAdapterInfo interface returns true if the adapter is a fallback adapter, and false if not.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUAdapterInfo/isFallbackAdapter)
*/
readonly isFallbackAdapter: boolean;
/**
* The **`subgroupMaxSize`** read-only property of the GPUAdapterInfo interface returns the maximum supported subgroup size for the GPUAdapter. This can be used along with the subgroups feature.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUAdapterInfo/subgroupMaxSize)
*/
readonly subgroupMaxSize: number;
/**
* The **`subgroupMinSize`** read-only property of the GPUAdapterInfo interface returns the minimum supported subgroup size for the GPUAdapter. This can be used along with the subgroups feature.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUAdapterInfo/subgroupMinSize)
*/
readonly subgroupMinSize: number;
/**
* The **`vendor`** read-only property of the GPUAdapterInfo interface returns the name of the adapter vendor, or an empty string if it is not available.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUAdapterInfo/vendor)
*/
readonly vendor: string;
}
declare var GPUAdapterInfo: {
prototype: GPUAdapterInfo;
new(): GPUAdapterInfo;
};
/**
* The **`GPUBindGroup`** interface of the WebGPU API is based on a GPUBindGroupLayout and defines a set of resources to be bound together in a group and how those resources are used in shader stages.
* Available only in secure contexts.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUBindGroup)
*/
interface GPUBindGroup extends GPUObjectBase {
}
declare var GPUBindGroup: {
prototype: GPUBindGroup;
new(): GPUBindGroup;
};
/**
* The **`GPUBindGroupLayout`** interface of the WebGPU API defines the structure and purpose of related GPU resources such as buffers that will be used in a pipeline, and is used as a template when creating GPUBindGroups.
* Available only in secure contexts.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUBindGroupLayout)
*/
interface GPUBindGroupLayout extends GPUObjectBase {
}
declare var GPUBindGroupLayout: {
prototype: GPUBindGroupLayout;
new(): GPUBindGroupLayout;
};
interface GPUBindingCommandsMixin {
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUComputePassEncoder/setBindGroup) */
setBindGroup(index: GPUIndex32, bindGroup: GPUBindGroup | null, dynamicOffsets?: GPUBufferDynamicOffset[]): void;
setBindGroup(index: GPUIndex32, bindGroup: GPUBindGroup | null, dynamicOffsetsData: Uint32Array, dynamicOffsetsDataStart: GPUSize64, dynamicOffsetsDataLength: GPUSize32): void;
}
/**
* The **`GPUBuffer`** interface of the WebGPU API represents a block of memory that can be used to store raw data to use in GPU operations.
* Available only in secure contexts.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUBuffer)
*/
interface GPUBuffer extends GPUObjectBase {
/**
* The **`mapState`** read-only property of the GPUBuffer interface represents the mapped state of the GPUBuffer.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUBuffer/mapState)
*/
readonly mapState: GPUBufferMapState;
/**
* The **`size`** read-only property of the GPUBuffer interface represents the length of the GPUBuffer's memory allocation, in bytes.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUBuffer/size)
*/
readonly size: GPUSize64Out;
/**
* The **`usage`** read-only property of the GPUBuffer interface contains the bitwise flags representing the allowed usages of the GPUBuffer.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUBuffer/usage)
*/
readonly usage: GPUFlagsConstant;
/**
* The **`destroy()`** method of the GPUBuffer interface destroys the GPUBuffer.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUBuffer/destroy)
*/
destroy(): void;
/**
* The **`getMappedRange()`** method of the GPUBuffer interface returns an ArrayBuffer containing the mapped contents of the GPUBuffer in the specified range.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUBuffer/getMappedRange)
*/
getMappedRange(offset?: GPUSize64, size?: GPUSize64): ArrayBuffer;
/**
* The **`mapAsync()`** method of the GPUBuffer interface maps the specified range of the GPUBuffer. It returns a Promise that resolves when the GPUBuffer's content is ready to be accessed. While the GPUBuffer is mapped it cannot be used in any GPU commands.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUBuffer/mapAsync)
*/
mapAsync(mode: GPUMapModeFlags, offset?: GPUSize64, size?: GPUSize64): Promise;
/**
* The **`unmap()`** method of the GPUBuffer interface unmaps the mapped range of the GPUBuffer, making its contents available for use by the GPU again after it has previously been mapped with GPUBuffer.mapAsync() (the GPU cannot access a mapped GPUBuffer).
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUBuffer/unmap)
*/
unmap(): void;
}
declare var GPUBuffer: {
prototype: GPUBuffer;
new(): GPUBuffer;
};
/**
* The **`GPUCanvasContext`** interface of the WebGPU API represents the WebGPU rendering context of a