@@ -215,6 +215,11 @@ interface IDBVersionChangeEventInit extends EventInit {
215215 oldVersion ?: number ;
216216}
217217
218+ interface ImageEncodeOptions {
219+ quality ?: number ;
220+ type ?: string ;
221+ }
222+
218223interface JsonWebKey {
219224 alg ?: string ;
220225 crv ?: string ;
@@ -684,6 +689,43 @@ declare var CacheStorage: {
684689 new ( ) : CacheStorage ;
685690} ;
686691
692+ interface CanvasCompositing {
693+ globalAlpha : number ;
694+ globalCompositeOperation : string ;
695+ }
696+
697+ interface CanvasDrawImage {
698+ drawImage ( image : CanvasImageSource , dx : number , dy : number ) : void ;
699+ drawImage ( image : CanvasImageSource , dx : number , dy : number , dw : number , dh : number ) : void ;
700+ drawImage ( image : CanvasImageSource , sx : number , sy : number , sw : number , sh : number , dx : number , dy : number , dw : number , dh : number ) : void ;
701+ }
702+
703+ interface CanvasDrawPath {
704+ beginPath ( ) : void ;
705+ clip ( fillRule ?: CanvasFillRule ) : void ;
706+ clip ( path : Path2D , fillRule ?: CanvasFillRule ) : void ;
707+ fill ( fillRule ?: CanvasFillRule ) : void ;
708+ fill ( path : Path2D , fillRule ?: CanvasFillRule ) : void ;
709+ isPointInPath ( x : number , y : number , fillRule ?: CanvasFillRule ) : boolean ;
710+ isPointInPath ( path : Path2D , x : number , y : number , fillRule ?: CanvasFillRule ) : boolean ;
711+ isPointInStroke ( x : number , y : number ) : boolean ;
712+ isPointInStroke ( path : Path2D , x : number , y : number ) : boolean ;
713+ stroke ( ) : void ;
714+ stroke ( path : Path2D ) : void ;
715+ }
716+
717+ interface CanvasFillStrokeStyles {
718+ fillStyle : string | CanvasGradient | CanvasPattern ;
719+ strokeStyle : string | CanvasGradient | CanvasPattern ;
720+ createLinearGradient ( x0 : number , y0 : number , x1 : number , y1 : number ) : CanvasGradient ;
721+ createPattern ( image : CanvasImageSource , repetition : string ) : CanvasPattern | null ;
722+ createRadialGradient ( x0 : number , y0 : number , r0 : number , x1 : number , y1 : number , r1 : number ) : CanvasGradient ;
723+ }
724+
725+ interface CanvasFilters {
726+ filter : string ;
727+ }
728+
687729/** An opaque object describing a gradient. It is returned by the methods CanvasRenderingContext2D.createLinearGradient() or CanvasRenderingContext2D.createRadialGradient(). */
688730interface CanvasGradient {
689731 /**
@@ -698,6 +740,19 @@ declare var CanvasGradient: {
698740 new ( ) : CanvasGradient ;
699741} ;
700742
743+ interface CanvasImageData {
744+ createImageData ( sw : number , sh : number ) : ImageData ;
745+ createImageData ( imagedata : ImageData ) : ImageData ;
746+ getImageData ( sx : number , sy : number , sw : number , sh : number ) : ImageData ;
747+ putImageData ( imagedata : ImageData , dx : number , dy : number ) : void ;
748+ putImageData ( imagedata : ImageData , dx : number , dy : number , dirtyX : number , dirtyY : number , dirtyWidth : number , dirtyHeight : number ) : void ;
749+ }
750+
751+ interface CanvasImageSmoothing {
752+ imageSmoothingEnabled : boolean ;
753+ imageSmoothingQuality : ImageSmoothingQuality ;
754+ }
755+
701756interface CanvasPath {
702757 arc ( x : number , y : number , radius : number , startAngle : number , endAngle : number , anticlockwise ?: boolean ) : void ;
703758 arcTo ( x1 : number , y1 : number , x2 : number , y2 : number , radius : number ) : void ;
@@ -710,6 +765,16 @@ interface CanvasPath {
710765 rect ( x : number , y : number , w : number , h : number ) : void ;
711766}
712767
768+ interface CanvasPathDrawingStyles {
769+ lineCap : CanvasLineCap ;
770+ lineDashOffset : number ;
771+ lineJoin : CanvasLineJoin ;
772+ lineWidth : number ;
773+ miterLimit : number ;
774+ getLineDash ( ) : number [ ] ;
775+ setLineDash ( segments : number [ ] ) : void ;
776+ }
777+
713778/** An opaque object describing a pattern, based on an image, a canvas, or a video, created by the CanvasRenderingContext2D.createPattern() method. */
714779interface CanvasPattern {
715780 /**
@@ -723,6 +788,48 @@ declare var CanvasPattern: {
723788 new ( ) : CanvasPattern ;
724789} ;
725790
791+ interface CanvasRect {
792+ clearRect ( x : number , y : number , w : number , h : number ) : void ;
793+ fillRect ( x : number , y : number , w : number , h : number ) : void ;
794+ strokeRect ( x : number , y : number , w : number , h : number ) : void ;
795+ }
796+
797+ interface CanvasShadowStyles {
798+ shadowBlur : number ;
799+ shadowColor : string ;
800+ shadowOffsetX : number ;
801+ shadowOffsetY : number ;
802+ }
803+
804+ interface CanvasState {
805+ restore ( ) : void ;
806+ save ( ) : void ;
807+ }
808+
809+ interface CanvasText {
810+ fillText ( text : string , x : number , y : number , maxWidth ?: number ) : void ;
811+ measureText ( text : string ) : TextMetrics ;
812+ strokeText ( text : string , x : number , y : number , maxWidth ?: number ) : void ;
813+ }
814+
815+ interface CanvasTextDrawingStyles {
816+ direction : CanvasDirection ;
817+ font : string ;
818+ textAlign : CanvasTextAlign ;
819+ textBaseline : CanvasTextBaseline ;
820+ }
821+
822+ interface CanvasTransform {
823+ getTransform ( ) : DOMMatrix ;
824+ resetTransform ( ) : void ;
825+ rotate ( angle : number ) : void ;
826+ scale ( x : number , y : number ) : void ;
827+ setTransform ( a : number , b : number , c : number , d : number , e : number , f : number ) : void ;
828+ setTransform ( transform ?: DOMMatrix2DInit ) : void ;
829+ transform ( a : number , b : number , c : number , d : number , e : number , f : number ) : void ;
830+ translate ( x : number , y : number ) : void ;
831+ }
832+
726833/** 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(). */
727834interface Client {
728835 readonly id : string ;
@@ -1118,7 +1225,8 @@ interface DedicatedWorkerGlobalScopeEventMap extends WorkerGlobalScopeEventMap {
11181225interface DedicatedWorkerGlobalScope extends WorkerGlobalScope {
11191226 onmessage : ( ( this : DedicatedWorkerGlobalScope , ev : MessageEvent ) => any ) | null ;
11201227 close ( ) : void ;
1121- postMessage ( message : any , transfer ?: Transferable [ ] ) : void ;
1228+ postMessage ( message : any , transfer : Transferable [ ] ) : void ;
1229+ postMessage ( message : any , options ?: PostMessageOptions ) : void ;
11221230 addEventListener < K extends keyof DedicatedWorkerGlobalScopeEventMap > ( type : K , listener : ( this : DedicatedWorkerGlobalScope , ev : DedicatedWorkerGlobalScopeEventMap [ K ] ) => any , options ?: boolean | AddEventListenerOptions ) : void ;
11231231 addEventListener ( type : string , listener : EventListenerOrEventListenerObject , options ?: boolean | AddEventListenerOptions ) : void ;
11241232 removeEventListener < K extends keyof DedicatedWorkerGlobalScopeEventMap > ( type : K , listener : ( this : DedicatedWorkerGlobalScope , ev : DedicatedWorkerGlobalScopeEventMap [ K ] ) => any , options ?: boolean | EventListenerOptions ) : void ;
@@ -2085,7 +2193,8 @@ interface MessagePort extends EventTarget {
20852193 * Posts a message through the channel. Objects listed in transfer are transferred, not just cloned, meaning that they are no longer usable on the sending side.
20862194 * Throws a "DataCloneError" DOMException if transfer contains duplicate objects or port, or if message could not be cloned.
20872195 */
2088- postMessage ( message : any , transfer ?: Transferable [ ] ) : void ;
2196+ postMessage ( message : any , transfer : Transferable [ ] ) : void ;
2197+ postMessage ( message : any , options ?: PostMessageOptions ) : void ;
20892198 /**
20902199 * Begins dispatching messages received on the port.
20912200 */
@@ -2228,6 +2337,49 @@ interface OES_vertex_array_object {
22282337 readonly VERTEX_ARRAY_BINDING_OES : GLenum ;
22292338}
22302339
2340+ interface OffscreenCanvas extends EventTarget {
2341+ /**
2342+ * These attributes return the dimensions of the OffscreenCanvas object's bitmap.
2343+ * They can be set, to replace the bitmap with a new, transparent black bitmap of the specified dimensions (effectively resizing it).
2344+ */
2345+ height : number ;
2346+ /**
2347+ * These attributes return the dimensions of the OffscreenCanvas object's bitmap.
2348+ * They can be set, to replace the bitmap with a new, transparent black bitmap of the specified dimensions (effectively resizing it).
2349+ */
2350+ width : number ;
2351+ /**
2352+ * Returns a promise that will fulfill with a new Blob object representing a file containing the image in the OffscreenCanvas object.
2353+ * The argument, if provided, is a dictionary that controls the encoding options of the image file to be created. The type field specifies the file format and has a default value of "image/png"; that type is also used if the requested type isn't supported. If the image format supports variable quality (such as "image/jpeg"), then the quality field is a number in the range 0.0 to 1.0 inclusive indicating the desired quality level for the resulting image.
2354+ */
2355+ convertToBlob ( options ?: ImageEncodeOptions ) : Promise < Blob > ;
2356+ /**
2357+ * Returns an object that exposes an API for drawing on the OffscreenCanvas object. contextId specifies the desired API: "2d", "webgl", or "webgl2". options is handled by that API.
2358+ * This specification defines the "2d" context below, which is similar but distinct from the "2d" context that is created from a canvas element. The WebGL specifications define the "webgl" and "webgl2" contexts. [WEBGL]
2359+ * Returns null if the canvas has already been initialized with another context type (e.g., trying to get a "2d" context after getting a "webgl" context).
2360+ */
2361+ getContext ( contextId : OffscreenRenderingContextId , options ?: any ) : OffscreenRenderingContext | null ;
2362+ /**
2363+ * Returns a newly created ImageBitmap object with the image in the OffscreenCanvas object. The image in the OffscreenCanvas object is replaced with a new blank image.
2364+ */
2365+ transferToImageBitmap ( ) : ImageBitmap ;
2366+ }
2367+
2368+ declare var OffscreenCanvas : {
2369+ prototype : OffscreenCanvas ;
2370+ new ( width : number , height : number ) : OffscreenCanvas ;
2371+ } ;
2372+
2373+ interface OffscreenCanvasRenderingContext2D extends CanvasState , CanvasTransform , CanvasCompositing , CanvasImageSmoothing , CanvasFillStrokeStyles , CanvasShadowStyles , CanvasFilters , CanvasRect , CanvasDrawPath , CanvasText , CanvasDrawImage , CanvasImageData , CanvasPathDrawingStyles , CanvasTextDrawingStyles , CanvasPath {
2374+ readonly canvas : OffscreenCanvas ;
2375+ commit ( ) : void ;
2376+ }
2377+
2378+ declare var OffscreenCanvasRenderingContext2D : {
2379+ prototype : OffscreenCanvasRenderingContext2D ;
2380+ new ( ) : OffscreenCanvasRenderingContext2D ;
2381+ } ;
2382+
22312383/** An interface of the Canvas 2D API is used to declare a path that can then be used on a CanvasRenderingContext2D object. The path methods of the CanvasRenderingContext2D interface are also present on this interface, which gives you the convenience of being able to retain and replay your path whenever desired. */
22322384interface Path2D extends CanvasPath {
22332385 /**
@@ -2639,7 +2791,8 @@ interface ServiceWorker extends EventTarget, AbstractWorker {
26392791 onstatechange : ( ( this : ServiceWorker , ev : Event ) => any ) | null ;
26402792 readonly scriptURL : string ;
26412793 readonly state : ServiceWorkerState ;
2642- postMessage ( message : any , transfer ?: Transferable [ ] ) : void ;
2794+ postMessage ( message : any , transfer : Transferable [ ] ) : void ;
2795+ postMessage ( message : any , options ?: PostMessageOptions ) : void ;
26432796 addEventListener < K extends keyof ServiceWorkerEventMap > ( type : K , listener : ( this : ServiceWorker , ev : ServiceWorkerEventMap [ K ] ) => any , options ?: boolean | AddEventListenerOptions ) : void ;
26442797 addEventListener ( type : string , listener : EventListenerOrEventListenerObject , options ?: boolean | AddEventListenerOptions ) : void ;
26452798 removeEventListener < K extends keyof ServiceWorkerEventMap > ( type : K , listener : ( this : ServiceWorker , ev : ServiceWorkerEventMap [ K ] ) => any , options ?: boolean | EventListenerOptions ) : void ;
@@ -4473,7 +4626,8 @@ interface WritableStreamErrorCallback {
44734626
44744627declare var onmessage : ( ( this : DedicatedWorkerGlobalScope , ev : MessageEvent ) => any ) | null ;
44754628declare function close ( ) : void ;
4476- declare function postMessage ( message : any , transfer ?: Transferable [ ] ) : void ;
4629+ declare function postMessage ( message : any , transfer : Transferable [ ] ) : void ;
4630+ declare function postMessage ( message : any , options ?: PostMessageOptions ) : void ;
44774631/**
44784632 * Dispatches a synthetic event event to target and returns true if either event's cancelable attribute value is false or its preventDefault() method was not invoked, and false otherwise.
44794633 */
@@ -4521,7 +4675,8 @@ type HeadersInit = Headers | string[][] | Record<string, string>;
45214675type BodyInit = Blob | BufferSource | FormData | URLSearchParams | ReadableStream < Uint8Array > | string ;
45224676type RequestInfo = Request | string ;
45234677type DOMHighResTimeStamp = number ;
4524- type CanvasImageSource = ImageBitmap ;
4678+ type CanvasImageSource = ImageBitmap | OffscreenCanvas ;
4679+ type OffscreenRenderingContext = OffscreenCanvasRenderingContext2D | WebGLRenderingContext ;
45254680type MessageEventSource = MessagePort | ServiceWorker ;
45264681type ImageBitmapSource = CanvasImageSource | Blob | ImageData ;
45274682type TimerHandler = string | Function ;
@@ -4551,16 +4706,24 @@ type FormDataEntryValue = File | string;
45514706type IDBValidKey = number | string | Date | BufferSource | IDBArrayKey ;
45524707type Transferable = ArrayBuffer | MessagePort | ImageBitmap ;
45534708type BinaryType = "blob" | "arraybuffer" ;
4709+ type CanvasDirection = "ltr" | "rtl" | "inherit" ;
4710+ type CanvasFillRule = "nonzero" | "evenodd" ;
4711+ type CanvasLineCap = "butt" | "round" | "square" ;
4712+ type CanvasLineJoin = "round" | "bevel" | "miter" ;
4713+ type CanvasTextAlign = "start" | "end" | "left" | "right" | "center" ;
4714+ type CanvasTextBaseline = "top" | "hanging" | "middle" | "alphabetic" | "ideographic" | "bottom" ;
45544715type ClientTypes = "window" | "worker" | "sharedworker" | "all" ;
45554716type EndingType = "transparent" | "native" ;
45564717type IDBCursorDirection = "next" | "nextunique" | "prev" | "prevunique" ;
45574718type IDBRequestReadyState = "pending" | "done" ;
45584719type IDBTransactionMode = "readonly" | "readwrite" | "versionchange" ;
4720+ type ImageSmoothingQuality = "low" | "medium" | "high" ;
45594721type KeyFormat = "raw" | "spki" | "pkcs8" | "jwk" ;
45604722type KeyType = "public" | "private" | "secret" ;
45614723type KeyUsage = "encrypt" | "decrypt" | "sign" | "verify" | "deriveKey" | "deriveBits" | "wrapKey" | "unwrapKey" ;
45624724type NotificationDirection = "auto" | "ltr" | "rtl" ;
45634725type NotificationPermission = "default" | "denied" | "granted" ;
4726+ type OffscreenRenderingContextId = "2d" | "webgl" ;
45644727type PermissionName = "geolocation" | "notifications" | "push" | "midi" | "camera" | "microphone" | "speaker" | "device-info" | "background-sync" | "bluetooth" | "persistent-storage" | "ambient-light-sensor" | "accelerometer" | "gyroscope" | "magnetometer" | "clipboard" ;
45654728type PermissionState = "granted" | "denied" | "prompt" ;
45664729type PushEncryptionKeyName = "p256dh" | "auth" ;
0 commit comments