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 {};
