@empirica/core
Version:
Empirica Core
63 lines (59 loc) • 1.95 kB
TypeScript
import { ParticipantChange, SubAttributesPayload, SetAttributeInput, ChangePayload } from '@empirica/tajriba';
import { Observable, Subject } from 'rxjs';
import { g as ScopeUpdate, d as AttributeUpdate } from './scopes-eb5984a4.js';
interface StepChange {
id: string;
running: boolean;
elapsed?: number;
remaining?: number;
}
interface StepUpdate {
step: StepChange;
removed: boolean;
}
interface StepTick {
started: boolean;
ended: boolean;
elapsed: number;
remaining: number;
duration: number;
}
declare type Epoch = number;
declare class Step {
private running;
private ticker;
private startAt;
private endAt;
constructor(step: StepChange, ticker: Observable<DOMHighResTimeStamp>);
private recalc;
obs(): Observable<StepTick | undefined>;
get current(): StepTick | undefined;
_update(step: StepChange): void;
_stop(): void;
}
declare class Steps {
private steps;
private updates;
private _hadUpdates;
private ticker;
constructor(stepsObs: Observable<StepUpdate>, donesObs: Observable<void>);
step(stepID: string): Step | undefined;
hadUpdates(): boolean;
private update;
private next;
}
interface ParticipantUpdate {
participant: ParticipantChange;
removed: boolean;
}
declare class TajribaProvider {
readonly globals: Observable<SubAttributesPayload>;
readonly setAttributes: (input: SetAttributeInput[]) => Promise<any>;
scopes: Subject<ScopeUpdate>;
attributes: Subject<AttributeUpdate>;
participants: Subject<ParticipantUpdate>;
steps: Subject<StepUpdate>;
dones: Subject<string[]>;
constructor(changes: Observable<ChangePayload>, globals: Observable<SubAttributesPayload>, setAttributes: (input: SetAttributeInput[]) => Promise<any>);
}
export { Epoch as E, ParticipantUpdate as P, Step as S, TajribaProvider as T, Steps as a, StepChange as b, StepTick as c, StepUpdate as d };