UNPKG

@stated-library/base

Version:
25 lines (24 loc) 1.32 kB
import { StatedLibraryInterface, StatedLibraryObservable, StateEvent } from '@stated-library/interface'; export declare type LibOpts<RawState, State> = { deriveState?: (state: RawState) => State; createObs?: ObservableCtor<any>; }; export declare type GetUpdates<State, RawState> = (state: State) => Partial<RawState>; interface Observable<Value> extends StatedLibraryObservable<Value> { next: (value: Value) => void; } declare type ObservableCtor<Value> = (initialValue: Value) => Observable<Value>; export declare function bindMethodsFromProto(obj: any): void; declare class StatedLibBase<RawState, State = RawState, Meta = {}> implements StatedLibraryInterface<RawState, State, Meta> { opts: LibOpts<RawState, State>; stateEvent$: StatedLibraryObservable<StateEvent<RawState, State, Meta>>; state$: StatedLibraryObservable<State>; constructor(initialState: RawState, opts?: LibOpts<RawState, State>); static bindMethods(obj: any): void; readonly state: State; setState(rawState: RawState, event: string, meta?: Meta): void; updateState(updatesOrGetUpdates: Partial<RawState> | GetUpdates<State, RawState>, event: string, meta?: Meta): void; resetState(rawState: RawState, event: string, meta?: Meta): void; } export default StatedLibBase; export { StatedLibBase };