export interface Stateful {
    getNumValues: () => number;
    getValue: () => number;
    setValue: (newValue: number) => number;
}
export interface Transition {
    (state: Stateful, input?: any): number;
}
export declare class State implements Stateful {
    protected numValues: number;
    protected transition: Transition;
    static transitions: {
        [name: string]: Transition;
    };
    protected state: number;
    constructor(numValues: number, initialValue?: number, transition?: Transition);
    getNumValues: () => number;
    getValue: () => number;
    setValue: (newValue: number) => number;
    advance: (input?: any) => number;
}
