UNPKG

gif-end-detector

Version:

A library for detecting GIF animation end events, based on libgif.js

55 lines (54 loc) 1.81 kB
/** * gifEndDetector - GIFアニメーション終了イベント検知ライブラリ * libgif.jsをベースにしたシンプルなラッパー * * 依存: libgif.js (https://github.com/buzzfeed/libgif-js) */ interface SuperGif { load(callback: () => void): void; get_canvas(): HTMLCanvasElement; get_length(): number; getCurrentFrame(): number; play(): void; pause(): void; move_to(frameIndex: number): void; drawFrame(): void; } interface SuperGifOptions { src: string; loop_mode?: boolean; auto_play?: boolean; on_end?: () => void; max_width?: number; max_height?: number; [key: string]: any; } declare global { interface Window { SuperGif: new (options: SuperGifOptions) => SuperGif; } } /** * gifEndDetectorの公開API型 */ interface GifEndDetector { load(callback: (detector: GifEndDetector) => void): GifEndDetector; onEnd(callback: () => void): GifEndDetector; onFrame(callback: (frameIndex: number, totalFrames: number) => void): GifEndDetector; onError(callback: (error: string) => void): GifEndDetector; setOnDrawFrame(drawFunction: (ctx: CanvasRenderingContext2D, frameIndex: number, totalFrames: number) => void): GifEndDetector; play(): GifEndDetector; pause(): GifEndDetector; reset(): GifEndDetector; moveToFrame(frameIndex: number): GifEndDetector; getCanvas(): HTMLCanvasElement | null; getTotalFrames(): number; getCurrentFrame(): number; } /** * GIFアニメーション終了検知ライブラリ * @param source - GIFファイルのパスまたはURL * @returns GifEndDetectorインスタンス */ declare function gifEndDetector(source: string): GifEndDetector; export default gifEndDetector;