import type { ISequence } from '@theatre/core'; import type { Readable, Subscriber, Writable } from 'svelte/store'; import { onChange } from '../theatre.js'; import type { SequenceOptions } from './types.js'; /** * ### `SequenceController` * * This class is a wrapper around the native `ISequence` object. It provides * reactive stores for the sequence's position, playing state, and length. */ export declare class SequenceController { key: string; position: SequencePosition; playing: SequencePlaying; length: SequenceLength; private options; private sequence; constructor(sequence: ISequence, options?: SequenceOptions); config(options: SequenceOptions): void; play(opts?: Parameters[0]): ReturnType; pause(): ReturnType; reset(): void; } export declare class SequencePosition implements Writable { sequence: ISequence; play: () => void; subscribers: Set>; unsubscribe: ReturnType; constructor(sequence: ISequence, play: () => void); subscribe(subscription: Subscriber): () => void; update(callback: (prev: number) => number): void; set(value: number): void; } export declare class SequencePlaying implements Writable { sequence: ISequence; play: () => void; subscribers: Set>; constructor(sequence: ISequence, play: () => void); subscribe(subscription: Subscriber): () => void; update(callback: (prev: boolean) => boolean): void; set(value: boolean): void; } export declare class SequenceLength implements Readable { sequence: ISequence; subscribers: Set>; unsubscribe: ReturnType; constructor(sequence: ISequence); subscribe(subscription: Subscriber): () => void; }