import { type ISequence } from '@theatre/core';
import * as i0 from "@angular/core";
export interface AttachAudioOptions {
    /**
     * Either a URL to the audio file (eg "http://localhost:3000/audio.mp3") or an instance of AudioBuffer
     */
    source: string | AudioBuffer;
    /**
     * An optional AudioContext. If not provided, one will be created.
     */
    audioContext?: AudioContext;
    /**
     * An AudioNode to feed the audio into. Will use audioContext.destination if not provided.
     */
    destinationNode?: AudioNode;
}
export type TheatreSequenceOptions = Parameters<ISequence['play']>[0] & {
    autoplay: boolean;
    autopause: boolean;
    delay: number;
    autoreset?: 'init' | 'destroy' | 'always';
};
export declare class TheatreSequence {
    options: import("@angular/core").InputSignalWithTransform<{
        iterationCount?: number;
        range?: [from: number, to: number];
        rate?: number;
        direction?: "normal" | "reverse" | "alternate" | "alternateReverse";
        rafDriver?: import("@theatre/core").IRafDriver;
    } & {
        autoplay: boolean;
        autopause: boolean;
        delay: number;
        autoreset?: "init" | "destroy" | "always";
    }, "" | Partial<{
        iterationCount?: number;
        range?: [from: number, to: number];
        rate?: number;
        direction?: "normal" | "reverse" | "alternate" | "alternateReverse";
        rafDriver?: import("@theatre/core").IRafDriver;
    } & {
        autoplay: boolean;
        autopause: boolean;
        delay: number;
        autoreset?: "init" | "destroy" | "always";
    }>>;
    audioOptions: import("@angular/core").InputSignal<AttachAudioOptions | undefined>;
    position: import("@angular/core").ModelSignal<number>;
    playing: import("@angular/core").ModelSignal<boolean>;
    length: import("@angular/core").ModelSignal<number>;
    private playOptions;
    private autoplay;
    private autopause;
    private autoreset;
    private delay;
    private project;
    private sheet;
    sequence: import("@angular/core").Signal<ISequence>;
    constructor();
    pause(): void;
    play(options?: Parameters<ISequence['play']>[0]): void;
    reset(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<TheatreSequence, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<TheatreSequence, "theatre-sheet[sequence]", never, { "options": { "alias": "sequence"; "required": false; "isSignal": true; }; "audioOptions": { "alias": "sequenceAudio"; "required": false; "isSignal": true; }; "position": { "alias": "position"; "required": false; "isSignal": true; }; "playing": { "alias": "playing"; "required": false; "isSignal": true; }; "length": { "alias": "length"; "required": false; "isSignal": true; }; }, { "position": "positionChange"; "playing": "playingChange"; "length": "lengthChange"; }, never, never, true, never>;
}
