forked from dannyduc/StateTree
/
statetree.d.ts
71 lines (71 loc) · 2.01 KB
/
statetree.d.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
interface EnhancedError extends Error {
stack: any;
}
interface MakeStateTree {
(): StateChart;
}
interface StateChart {
root: RootState;
currentStates(): AnyState[];
activeStates(): AnyState[];
isActive: {
[name: string]: bool;
};
statesByName: {
[name: string]: AnyState;
};
stateFromName(name: string): AnyState;
handleError(e: Error, cb: () => void): bool;
defaultToHistory: bool;
defaultToHistoryState();
enterFn(state: State): void;
enterFn(state: State, data: any): void;
exitFn(state: State): void;
enter(fn: StateCallback): void;
exit(fn: StateCallback): void;
safeCallback(cb: () => void): bool;
signal(name: string, cb: Function): Function;
}
interface StateDataCallback {
(state: State): void;
(state: State, data: any): void;
}
interface StateCallback {
(state: State, data?: any): void;
}
interface HasStateCallbacks {
enter(fn: (state: State) => void): State;
enter(fn: (state: State, data: any) => void): State;
exit(fn: StateCallback): State;
}
interface StateIntersection extends HasStateCallbacks {
}
interface AnyState extends HasStateCallbacks {
name: string;
statechart: StateChart;
childStates: State[];
defaultSubState?: State;
history?: State;
subStatesAreConcurrent: bool;
concurrentSubStates();
enterFns: StateDataCallback[];
exitFns: StateCallback[];
subState(name: string, nestingFn?: (State: any) => void): State;
defaultTo(state: State): State;
changeDefaultTo(state: State): State;
goTo(data?: any): State[];
defaultState();
activeSubState(): State;
onlyEnterThrough(...states: State[]);
allowedFrom?: State[];
setData(data: any): State;
isActive(): bool;
activeChildState(): State;
data: any;
intersect(...states: State[]): StateIntersection;
}
interface State extends AnyState {
parentState: State;
}
interface RootState extends AnyState {
}