declare module "pngjs" {
  export const PNG: {
    sync: {
      read(buffer: Uint8Array): {
        data: Uint8ClampedArray,
        width: number,
        height: number
      }
    }
  }
}

declare module "gif-encoder-2" {
  export type Context = {
      getImageData(x: number, y: number, width: number, height: number): {
          data: Uint8ClampedArray
      }
  } | Uint8ClampedArray;

  export default class GIFEncoder {
    constructor(width: number, height: number, algorithm?: string, useOptimizer?: boolean);
    start(): void;
    finish(): void;
    setRepeat(repeat: number): void;
    setDelay(ms: number): void;
    setQuality(quality: number): void;
//    addFrame(ctx: CanvasRenderingContext2D): void;
    addFrame(ctx: Context): void;
    out: {
      getData(): Buffer;
    };
  }
}
