aboutsummaryrefslogtreecommitdiffstats
path: root/packages/excalidraw/global.d.ts
diff options
context:
space:
mode:
authorkj_sh6042026-03-15 16:19:35 -0400
committerkj_sh6042026-03-15 16:19:35 -0400
commit6ec259a0e71174651bae95d4628138bf6fd68742 (patch)
tree5e33c6a5ec091ecabfcb257fdc7b6a88ed8754ac /packages/excalidraw/global.d.ts
parent16c8578b15c727f22921f8a80a56ee4d4e7f2272 (diff)
refactor: packages/
Diffstat (limited to 'packages/excalidraw/global.d.ts')
-rw-r--r--packages/excalidraw/global.d.ts110
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 {}
+}