@threlte/theatre
Version:
Threlte Components for Theatre, an animation library with a professional motion design toolset
50 lines (49 loc) • 1.9 kB
TypeScript
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<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;
}