UNPKG

5.57 kBTypeScriptView Raw
1declare type StateType = string;
2import { JssmGenericState, JssmGenericConfig, JssmTransition, JssmTransitionList, JssmMachineInternalState, JssmParseTree, JssmStateDeclaration, JssmArrow, JssmArrowDirection, JssmArrowKind, JssmLayout, FslDirection, FslTheme } from './jssm_types';
3import { seq, weighted_rand_select, weighted_sample_select, histograph, weighted_histo_key } from './jssm_util';
4import { parse } from './jssm-dot';
5import { version } from './version';
6declare function arrow_direction(arrow: JssmArrow): JssmArrowDirection;
7declare function arrow_left_kind(arrow: JssmArrow): JssmArrowKind;
8declare function arrow_right_kind(arrow: JssmArrow): JssmArrowKind;
9declare function compile<mDT>(tree: JssmParseTree): JssmGenericConfig<mDT>;
10declare function make<mDT>(plan: string): JssmGenericConfig<mDT>;
11declare function transfer_state_properties(state_decl: JssmStateDeclaration): JssmStateDeclaration;
12declare class Machine<mDT> {
13 _state: StateType;
14 _states: Map<StateType, JssmGenericState>;
15 _edges: Array<JssmTransition<mDT>>;
16 _edge_map: Map<StateType, Map<StateType, number>>;
17 _named_transitions: Map<StateType, number>;
18 _actions: Map<StateType, Map<StateType, number>>;
19 _reverse_actions: Map<StateType, Map<StateType, number>>;
20 _reverse_action_targets: Map<StateType, Map<StateType, number>>;
21 _machine_author?: Array<string>;
22 _machine_comment?: string;
23 _machine_contributor?: Array<string>;
24 _machine_definition?: string;
25 _machine_language?: string;
26 _machine_license?: string;
27 _machine_name?: string;
28 _machine_version?: string;
29 _fsl_version?: string;
30 _raw_state_declaration?: Array<Object>;
31 _state_declarations: Map<StateType, JssmStateDeclaration>;
32 _graph_layout: JssmLayout;
33 _dot_preamble: string;
34 _arrange_declaration: Array<Array<StateType>>;
35 _arrange_start_declaration: Array<Array<StateType>>;
36 _arrange_end_declaration: Array<Array<StateType>>;
37 _theme: FslTheme;
38 _flow: FslDirection;
39 constructor({ start_states, complete, transitions, machine_author, machine_comment, machine_contributor, machine_definition, machine_language, machine_license, machine_name, machine_version, state_declaration, fsl_version, dot_preamble, arrange_declaration, arrange_start_declaration, arrange_end_declaration, theme, flow, graph_layout }: JssmGenericConfig<mDT>);
40 _new_state(state_config: JssmGenericState): StateType;
41 state(): StateType;
42 state_is_final(whichState: StateType): boolean;
43 is_final(): boolean;
44 graph_layout(): string;
45 dot_preamble(): string;
46 machine_author(): Array<string>;
47 machine_comment(): string;
48 machine_contributor(): Array<string>;
49 machine_definition(): string;
50 machine_language(): string;
51 machine_license(): string;
52 machine_name(): string;
53 machine_version(): string;
54 raw_state_declarations(): Array<Object>;
55 state_declaration(which: StateType): JssmStateDeclaration;
56 state_declarations(): Map<StateType, Object>;
57 fsl_version(): string;
58 machine_state(): JssmMachineInternalState<mDT>;
59 states(): Array<StateType>;
60 state_for(whichState: StateType): JssmGenericState;
61 has_state(whichState: StateType): boolean;
62 list_edges(): Array<JssmTransition<mDT>>;
63 list_named_transitions(): Map<StateType, number>;
64 list_actions(): Array<StateType>;
65 theme(): FslTheme;
66 flow(): FslDirection;
67 get_transition_by_state_names(from: StateType, to: StateType): number;
68 lookup_transition_for(from: StateType, to: StateType): JssmTransition<mDT>;
69 list_transitions(whichState?: StateType): JssmTransitionList;
70 list_entrances(whichState?: StateType): Array<StateType>;
71 list_exits(whichState?: StateType): Array<StateType>;
72 probable_exits_for(whichState: StateType): Array<JssmTransition<mDT>>;
73 probabilistic_transition(): boolean;
74 probabilistic_walk(n: number): Array<StateType>;
75 probabilistic_histo_walk(n: number): Map<StateType, number>;
76 actions(whichState?: StateType): Array<StateType>;
77 list_states_having_action(whichState: StateType): Array<StateType>;
78 list_exit_actions(whichState?: StateType): Array<StateType>;
79 probable_action_exits(whichState?: StateType): Array<any>;
80 is_unenterable(whichState: StateType): boolean;
81 has_unenterables(): boolean;
82 is_terminal(): boolean;
83 state_is_terminal(whichState: StateType): boolean;
84 has_terminals(): boolean;
85 is_complete(): boolean;
86 state_is_complete(whichState: StateType): boolean;
87 has_completes(): boolean;
88 action(name: StateType, newData?: mDT): boolean;
89 transition(newState: StateType, newData?: mDT): boolean;
90 force_transition(newState: StateType, newData?: mDT): boolean;
91 current_action_for(action: StateType): number;
92 current_action_edge_for(action: StateType): JssmTransition<mDT>;
93 valid_action(action: StateType, _newData?: mDT): boolean;
94 valid_transition(newState: StateType, _newData?: mDT): boolean;
95 valid_force_transition(newState: StateType, _newData?: mDT): boolean;
96 sm(template_strings: TemplateStringsArray, ...remainder: any[]): Machine<mDT>;
97}
98declare function sm<mDT>(template_strings: TemplateStringsArray, ...remainder: any[]): Machine<mDT>;
99export { version, transfer_state_properties, Machine, make, parse, compile, sm, arrow_direction, arrow_left_kind, arrow_right_kind, seq, weighted_rand_select, histograph, weighted_sample_select, weighted_histo_key };