UNPKG

selenium-state-machine

Version:
86 lines 2.31 kB
import { error } from 'selenium-webdriver'; import { State } from './State'; /** * Dependency name type */ export declare type DependencyID = string; /** * Dependency map generic type */ export declare type DependencyMap = { [key: string]: Dependency<unknown>; }; export interface FsmDependencyArguments<T> { name?: string; value?: T; } export interface FsmDependencyCloneArguments<T> { name?: string; provider: State<never, never>; value?: T; } /** * Stale dependency has become stale. It extends StaleElementReferenceError but it tracks which * element is stale. */ export declare class StaleDependencyReferenceError<T> extends error.StaleElementReferenceError { readonly dependency: ValueDependency<T>; constructor(dependency: ValueDependency<T>); } /** * Dependency interface */ export interface Dependency<T> { /** * Stored value */ readonly value: T; /** * Name of the dependency */ name: string; /** * Make dependency invalid/stale */ invalidate(): never; } /** * Generic dependency type. */ export declare class ValueDependency<T> implements Dependency<T> { protected _value?: T; protected _name?: string; protected _provider?: State<never, never>; constructor(config?: FsmDependencyArguments<T>); invalidate(): never; /** * Get who provides the dependency. */ get provider(): State<never, never> | undefined; /** * Set new dependency provider. Must be first in invalid state before assigning. */ set provider(v: State<never, never> | undefined); /** * Check if dependency is in ok state. */ get ready(): boolean; get name(): string; set name(v: string); get id(): DependencyID; get value(): T; /** * Assign new value to dependency. This is immutable method. * @param value new value * @param provider new provider * @returns new Dependency with new values */ set(value: T, provider: State<never, never>): ValueDependency<T>; /** * Make clone of the dependency. * @param newValues optional new values * @returns new Dependency */ protected clone(newValues: FsmDependencyCloneArguments<T>): ValueDependency<T>; } //# sourceMappingURL=Dependency.d.ts.map