import { FC } from 'react';
import { BaseWaveArmProps } from './types';
export declare enum WaveArmStateEnum {
    waveArmBefore = "wave-arm-before",
    waveArming = "wave-arm-ing",
    waveArmAfter = "wave-arm-after"
}
export interface HandlerCondition {
    oldState: WaveArmStateEnum;
    newState: WaveArmStateEnum;
    callbackFn: () => void;
}
export declare class FSM {
    currentState: WaveArmStateEnum;
    handlers: HandlerCondition[];
    timer: ReturnType<typeof setTimeout> | null;
    constructor(currentState: WaveArmStateEnum);
    handlerConditionMatch(oldeState: WaveArmStateEnum, newState: WaveArmStateEnum): void;
    /**
     * 跳转到新状态
     * @param newState
     * @returns
     */
    changeState(newState: WaveArmStateEnum, durationTime: number): void;
    /**
     * 当从oldState跳转到newState时，执行handler
     * @param oldState 老状态
     * @param newState 新状态
     * @param handler 回调方法
     */
    whenAfter(oldState: WaveArmStateEnum, newState: WaveArmStateEnum, handler: () => void): void;
    getCurrentState(): WaveArmStateEnum;
}
export declare const WaveArmSender: FC<BaseWaveArmProps>;
