/**
 * 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;
