import { Point } from "../internal/types";
import { BlobOptions, CanvasOptions } from "./blobs";
interface Keyframe {
    duration: number;
    delay?: number;
    timingFunction?: "linear" | "easeEnd" | "easeStart" | "ease" | "elasticEnd0" | "elasticEnd1" | "elasticEnd2" | "elasticEnd3";
    callback?: () => void;
    canvasOptions?: {
        offsetX?: number;
        offsetY?: number;
    };
}
export interface CanvasKeyframe extends Keyframe {
    blobOptions: {
        seed: number | string;
        randomness: number;
        extraPoints: number;
        size: number;
    };
}
export interface CanvasCustomKeyframe extends Keyframe {
    points: Point[];
}
export interface Animation {
    renderFrame: () => Path2D;
    transition: (...keyframes: (CanvasKeyframe | CanvasCustomKeyframe)[]) => void;
    play: () => void;
    pause: () => void;
    playPause: () => void;
}
export interface TimestampProvider {
    (): number;
}
export interface WiggleOptions {
    speed: number;
    delay?: number;
}
export declare const canvasPath: (timestampProvider?: () => number) => Animation;
export declare const wigglePreset: (animation: Animation, blobOptions: BlobOptions, canvasOptions: CanvasOptions, wiggleOptions: WiggleOptions) => void;
export {};
