declare class Alphabet { sigma: string[]; constructor(sigma: string | string[]); } declare class State { name: string; constructor(name: string); } declare class Transition { origin: State; dest: State; input: string; constructor(origin: State, dest: State, input: string); } interface FSA { getStates(): Set; getAlphabet(): Alphabet; getTFunc(): Set; getStartState(): State; getAcceptStates(): Set; getType(): string; generateDigraph(): string; } declare const simulateFSA: (w: string | string[], fsa: FSA, logging?: boolean, returnEndState?: boolean) => boolean | string | string[]; declare const stepOnceFSA: (w: string, qin: string | string[], fsa: FSA, logging?: boolean) => string | string[]; interface TransitionInput { from: string; to: string; input: string; } declare const createFSA: (states: string | string[], alphabet: string | string[], transitions: TransitionInput | TransitionInput[], start: string, accepts: string | string[]) => FSA; export { type TransitionInput, createFSA, simulateFSA, stepOnceFSA };