import { IBehaviour } from "../api"; import { AudioRecorder } from "../audio/recorder/AudioRecorder"; import { Subscription } from "../connection/Subscription"; /** * IBehaviour implementation that listens for a onmouseup/down on the given recordButton. * * onmouseup starts the recording, onmousedown stops the recording and publishes an audio message * to the outbound audio channel. */ export declare class VoiceBehaviour extends IBehaviour { private readonly recorder; private readonly callback; constructor(recordButton: HTMLButtonElement, recorder?: AudioRecorder, callback?: (eventType: AudioEventType) => void); /** * * @inheritDoc */ bind(gateway: Subscription): void; /** * Binds {@link AudioRecorder#startRecording} to {@link this#recordButton} when an "mousedown" event occurs */ private startRecordingOnMouseDown; /** * Binds {@link AudioRecorder#stopRecording} to {@link this#recordButton} when an "mouseup" event occurs */ private stopRecordingOnMouseUp; handleAudio(msg: object): void; } declare enum AudioEventType { ON_MOUSE_DOWN = "mousedown", ON_MOUSE_UP = "mouseup" } export {};