UNPKG

@threlte/theatre

Version:

Threlte Components for Theatre, an animation library with a professional motion design toolset

50 lines (49 loc) 1.89 kB
import type { ISequence } from '@theatre/core'; import type { Readable, Subscriber, Writable } from 'svelte/store'; import { onChange } from '../theatre'; import type { SequenceOptions } from './types'; /** * ### `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<ISequence['play']>[0]): ReturnType<ISequence['play']>; pause(): ReturnType<ISequence['pause']>; reset(): void; } export declare class SequencePosition implements Writable<number> { sequence: ISequence; play: () => void; subscribers: Set<Subscriber<number>>; unsubscribe: ReturnType<typeof onChange>; constructor(sequence: ISequence, play: () => void); subscribe(subscription: Subscriber<number>): () => void; update(callback: (prev: number) => number): void; set(value: number): void; } export declare class SequencePlaying implements Writable<boolean> { sequence: ISequence; play: () => void; subscribers: Set<Subscriber<boolean>>; constructor(sequence: ISequence, play: () => void); subscribe(subscription: Subscriber<boolean>): () => void; update(callback: (prev: boolean) => boolean): void; set(value: boolean): void; } export declare class SequenceLength implements Readable<number> { sequence: ISequence; subscribers: Set<Subscriber<number>>; unsubscribe: ReturnType<typeof onChange>; constructor(sequence: ISequence); subscribe(subscription: Subscriber<number>): () => void; }