agora-classroom-sdk
Version:
For publishing npm package agora-classroom-sdk (Web & Electron). Get more information from https://docs.agora.io
35 lines (34 loc) • 1.16 kB
TypeScript
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>;