import { EduStoreBase } from '../base';
import { PodiumSrouce } from './type';
/**
 * `HandUpStore` 类提供举手上台功能相关能力。
 */
/** @en
 * The `HandUpStore` class provides abilities related to the hand-raising feature.
 */
export declare class HandUpStore extends EduStoreBase {
    /**
     * 同意学生上讲台
     * @param userUuid 用户 ID
     * @param source 邀请来源：
     * - 老师从花名册邀请学生上讲台
     * - 学生举手老师同意上讲台
     **/
    /** @en
     * Allows a student to "go onto the stage"
     * @param userUuid The user ID
     * @param source The source:
     * - The teacher requests the student in the user list to "go onto the stage".
     * - The teacher accepts the student's application for "going onto the stage".
     */
    onPodium(userUuid: string, source?: PodiumSrouce): Promise<void>;
    /**
     * 让指定学生下讲台
     * @param userUuid 用户 ID
     *
     **/
    /** @en
     * Lets a student "go off the stage"
     * @param userUuid The user ID
     */
    offPodium(userUuid: string): Promise<void>;
    /**
     * 让全部学生下讲台
     **/
    /** @en
     * Lets all students "go off the stage"
     */
    offPodiumAll(): Promise<void>;
    /**
     * @deprecated 使用 cancelHandUp 代替
     * 拒绝举手上台请求
     * @param userUuid 用户 ID
     *
     **/
    /** @en
     * @deprecated use cancelHandUp instead
     * The teacher rejects the student's application for "going onto the stage"
     * @param userUuid The user ID
     */
    rejectHandUp(userUuid: string): Promise<void>;
    /**
     * 取消举手
     * @param userUuid 用户 ID
     **/
    /** @en
     * cancel raising hand
     * @param userUuid The user ID
     */
    cancelHandUp(userUuid?: string): Promise<void>;
    /**
     * 取消挥手
     */
    /** @en
     * cancels waving hand
     */
    cancelWaveArm(userUuid?: string): Promise<void>;
    /**
     * @internal
     *
     * 学生举手
     * @param teacherUuid 老师 ID
     *
     **/
    /** @en
     * @internal
     *
     * The student raises a hand to apply for "going onto the stage"
     * @param teacherUuid The teacher ID
     */
    handUp(teacherUuid: string): Promise<void>;
    /**
     * 学生挥手
     * @param teacherUuid 老师 ID
     * @param duration 超时时长
     * @param payload 扩展信息
     **/
    /** @en
     * The student waves a hand to apply for "going onto the stage"
     * @param teacherUuid The teacher ID
     * @param duration duration to timeout
     * @param payload extra info
     */
    waveArm(teacherUuid: string, duration: -1 | 3 | number, payload?: unknown): Promise<void>;
    /**
     * @deprecated 使用 handUp 替代
     * 邀请学生上台互动
     * @param userUuid 学生ID
     * @param duration 超时时长
     * @param payload 扩展信息
     **/
    /** @en
     * @deprecated use handUp instead
     * Invited students interaction
     * @param userUuid The student ID
     * @param duration duration to timeout
     * @param payload extra info
     */
    invitePodium(userUuid: string, duration: number, payload?: unknown): Promise<void>;
    /**
     * @deprecated 使用 onPodium 替代
     * 确认接受上台邀请
     **/
    /** @en
     * @deprecated use onPodium instead
     * Confirm the acceptance by the invitation
     */
    confirmInvited(): Promise<void>;
    /**
     * 配置允许学生举手
     * @param state 是否允许举手，0 不允许，1 允许
     * @param autoStage 是否开启自动上台
     */
    /** @en
     * Configure allowing students to raise hands
     * @param state Whether allow raising hands or not, 0 not allowed, 1 allowed
     * @param autoStage Whether 'auto up stage' is enabled or not
     */
    allowHandsUp(state: 0 | 1, autoStage: boolean): void;
    /**
     * @internal
     */
    /** @en
     * @internal
     */
    onInstall(): void;
    /**
     * @internal
     */
    /** @en
     * @internal
     */
    onDestroy(): void;
}
