UNPKG

@empirica/core

Version:
63 lines (59 loc) 1.95 kB
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 };