import type { SequenceObject, ImageObject } from '../files';
import type { FD } from '../fd';
import type { Camera } from '../camera';
import type { Display } from '../display';
import type { FFPROBE } from '../ffprobe';
declare enum SequenceStatus {
    IDLE = 0,
    RUNNING = 1,
    PAUSED = 2
}
export declare class Sequence {
    private log;
    private current;
    private info;
    private images;
    private camera;
    private display;
    private ffprobe;
    private fd;
    private send;
    private stats;
    private running;
    private paused;
    private progress;
    private frame;
    private frames;
    private exposure;
    constructor(camera: Camera, fd: FD, display: Display, ffprobe: FFPROBE, send: Function);
    start(): void;
    stop(): void;
    isRunning(): boolean;
    isLoaded(): boolean;
    private run;
    load(seq: SequenceObject): Promise<void>;
    updateClientsOnLoad(): void;
    updateClientsOnState(): void;
    updateClientsOnDisplay(): void;
    private enumerate;
    unload(): void;
    getState(): State;
    getUpdateState(): State;
    getSequenceState(): SequenceState;
    setExposure(ms: number): void;
    getStatus(): SequenceStatus;
    getCurrent(): ImageObject;
    frameAdvance(frames?: number): void;
    frameRewind(frames?: number): void;
    frameSet(frame: number): void;
    updateOffset(x: number, y: number): void;
    updateSize(width: number, height: number): void;
    updateScale(scale: number): void;
    private frameRecord;
}
export {};