diff options
Diffstat (limited to 'packages/excalidraw/global.d.ts')
| -rw-r--r-- | packages/excalidraw/global.d.ts | 110 |
1 files changed, 110 insertions, 0 deletions
diff --git a/packages/excalidraw/global.d.ts b/packages/excalidraw/global.d.ts new file mode 100644 index 0000000..2072657 --- /dev/null +++ b/packages/excalidraw/global.d.ts @@ -0,0 +1,110 @@ +interface Window { + ClipboardItem: any; + __EXCALIDRAW_SHA__: string | undefined; + EXCALIDRAW_ASSET_PATH: string | string[] | undefined; + EXCALIDRAW_EXPORT_SOURCE: string; + EXCALIDRAW_THROTTLE_RENDER: boolean | undefined; + DEBUG_FRACTIONAL_INDICES: boolean | undefined; + gtag: Function; + sa_event: Function; + fathom: { trackEvent: Function }; +} + +interface CanvasRenderingContext2D { + // https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/roundRect + roundRect?: ( + x: number, + y: number, + width: number, + height: number, + radii: + | number // [all-corners] + | [number] // [all-corners] + | [number, number] // [top-left-and-bottom-right, top-right-and-bottom-left] + | [number, number, number] // [top-left, top-right-and-bottom-left, bottom-right] + | [number, number, number, number], // [top-left, top-right, bottom-right, bottom-left] + ) => void; +} + +interface Clipboard extends EventTarget { + write(data: any[]): Promise<void>; +} + +// PNG encoding/decoding +// ----------------------------------------------------------------------------- +type TEXtChunk = { name: "tEXt"; data: Uint8Array }; + +declare module "png-chunk-text" { + function encode( + name: string, + value: string, + ): { name: "tEXt"; data: Uint8Array }; + function decode(data: Uint8Array): { keyword: string; text: string }; +} +declare module "png-chunks-encode" { + function encode(chunks: TEXtChunk[]): Uint8Array; + export = encode; +} +declare module "png-chunks-extract" { + function extract(buffer: Uint8Array): TEXtChunk[]; + export = extract; +} +// ----------------------------------------------------------------------------- + +interface Blob { + handle?: import("browser-fs-acces").FileSystemHandle; + name?: string; +} + +declare module "*.scss"; + +// --------------------------------------------------------------------------— +// ensure Uint8Array isn't assignable to ArrayBuffer +// (due to TS structural typing) +// https://github.com/microsoft/TypeScript/issues/31311#issuecomment-490690695 +interface ArrayBuffer { + _brand?: "ArrayBuffer"; +} +interface Uint8Array { + _brand?: "Uint8Array"; +} +// --------------------------------------------------------------------------— + +// https://github.com/nodeca/image-blob-reduce/issues/23#issuecomment-783271848 +declare module "image-blob-reduce" { + import type { PicaResizeOptions, Pica } from "pica"; + namespace ImageBlobReduce { + interface ImageBlobReduce { + toBlob(file: File, options: ImageBlobReduceOptions): Promise<Blob>; + _create_blob( + this: { pica: Pica }, + env: { + out_canvas: HTMLCanvasElement; + out_blob: Blob; + }, + ): Promise<any>; + } + + interface ImageBlobReduceStatic { + new (options?: any): ImageBlobReduce; + + (options?: any): ImageBlobReduce; + } + + interface ImageBlobReduceOptions extends PicaResizeOptions { + max: number; + } + } + const reduce: ImageBlobReduce.ImageBlobReduceStatic; + export = reduce; +} + +interface CustomMatchers { + toBeNonNaNNumber(): void; + toCloselyEqualPoints(points: readonly [number, number][]): void; +} + +declare namespace jest { + interface Expect extends CustomMatchers {} + interface Matchers extends CustomMatchers {} +} |
