1 | declare type StateType = string;
|
2 | import { JssmGenericState, JssmGenericConfig, JssmTransition, JssmTransitionList, JssmMachineInternalState, JssmParseTree, JssmStateDeclaration, JssmArrow, JssmArrowDirection, JssmArrowKind, JssmLayout, FslDirection, FslTheme } from './jssm_types';
|
3 | import { seq, weighted_rand_select, weighted_sample_select, histograph, weighted_histo_key } from './jssm_util';
|
4 | import { parse } from './jssm-dot';
|
5 | import { version } from './version';
|
6 | declare function arrow_direction(arrow: JssmArrow): JssmArrowDirection;
|
7 | declare function arrow_left_kind(arrow: JssmArrow): JssmArrowKind;
|
8 | declare function arrow_right_kind(arrow: JssmArrow): JssmArrowKind;
|
9 | declare function compile<mDT>(tree: JssmParseTree): JssmGenericConfig<mDT>;
|
10 | declare function make<mDT>(plan: string): JssmGenericConfig<mDT>;
|
11 | declare function transfer_state_properties(state_decl: JssmStateDeclaration): JssmStateDeclaration;
|
12 | declare 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 | }
|
98 | declare function sm<mDT>(template_strings: TemplateStringsArray, ...remainder: any[]): Machine<mDT>;
|
99 | export { 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 };
|