/**
 * Strongly typed events emitted by {@link ReaperOscClient} when messages are received from Reaper
 * @module
 */
import { OscMessage } from '../Messages';
export declare enum RecordMonitoringMode {
    /** Record monitoring disabled */
    OFF = 0,
    /** Record monitoring enabled */
    ON = 1,
    /** Tape auto style */
    AUTO = 2
}
export interface MetronomeEvent {
    type: 'metronome';
    enabled: boolean;
}
export declare function MetronomeEvent(enabled: boolean): MetronomeEvent;
export interface AutoRecordArmEvent {
    type: 'autoRecordArm';
    enabled: boolean;
}
export declare function AutoRecordArmEvent(enabled: boolean): AutoRecordArmEvent;
export interface AnySoloEvent {
    type: 'anySolo';
    active: boolean;
}
export declare function AnySoloEvent(active: boolean): AnySoloEvent;
export interface PlayEvent {
    type: 'transport:play';
    playing: boolean;
}
export declare function PlayEvent(playing: boolean): PlayEvent;
export interface StopEvent {
    type: 'transport:stop';
    stopped: boolean;
}
export declare function StopEvent(stopped: boolean): StopEvent;
export interface PauseEvent {
    type: 'transport:pause';
    paused: boolean;
}
export declare function PauseEvent(paused: boolean): PauseEvent;
export interface RecordEvent {
    type: 'transport:record';
    recording: boolean;
}
export declare function RecordEvent(recording: boolean): RecordEvent;
export interface RewindEvent {
    type: 'transport:rewind';
    rewinding: boolean;
}
export declare function RewindEvent(rewinding: boolean): RewindEvent;
export interface FastForwardEvent {
    type: 'transport:fastForward';
    fastForwarding: boolean;
}
export declare function FastForwardEvent(fastForwarding: boolean): FastForwardEvent;
export interface RepeatEvent {
    type: 'transport:repeat';
    enabled: boolean;
}
export declare function RepeatEvent(enabled: boolean): RepeatEvent;
export interface TimeChanged {
    type: 'transport:time';
    time: number;
}
export declare function TimeChanged(time: number): TimeChanged;
export interface BeatChanged {
    type: 'transport:beat';
    beat: string;
}
export declare function BeatChanged(beat: string): BeatChanged;
export interface FramesChanged {
    type: 'transport:frames';
    frames: string;
}
export declare function FramesChanged(frames: string): FramesChanged;
export interface LoopStartChanged {
    type: 'transport:loopStart';
    time: number;
}
export declare function LoopStartChanged(time: number): LoopStartChanged;
export interface LoopEndChanged {
    type: 'transport:loopEnd';
    time: number;
}
export declare function LoopEndChanged(time: number): LoopEndChanged;
export interface TrackMuteEvent {
    type: 'track:mute';
    trackNumber: number;
    muted: boolean;
}
export declare function TrackMuteEvent(trackNumber: number, muted: boolean): TrackMuteEvent;
export interface TrackSoloEvent {
    type: 'track:solo';
    trackNumber: number;
    soloed: boolean;
}
export declare function TrackSoloEvent(trackNumber: number, soloed: boolean): TrackSoloEvent;
export interface TrackRecordArmEvent {
    type: 'track:recordArm';
    trackNumber: number;
    armed: boolean;
}
export declare function TrackRecordArmEvent(trackNumber: number, armed: boolean): TrackRecordArmEvent;
export interface TrackSelectEvent {
    type: 'track:select';
    trackNumber: number;
    selected: boolean;
}
export declare function TrackSelectEvent(trackNumber: number, selected: boolean): TrackSelectEvent;
export interface TrackNameChanged {
    type: 'track:name';
    trackNumber: number;
    name: string;
}
export declare function TrackNameChanged(trackNumber: number, name: string): TrackNameChanged;
export interface TrackPanChanged {
    type: 'track:pan';
    trackNumber: number;
    pan: number;
}
export declare function TrackPanChanged(trackNumber: number, pan: number): TrackPanChanged;
export interface TrackPan2Changed {
    type: 'track:pan2';
    trackNumber: number;
    pan2: number;
}
export declare function TrackPan2Changed(trackNumber: number, pan2: number): TrackPan2Changed;
export interface TrackPanModeChanged {
    type: 'track:panMode';
    trackNumber: number;
    panMode: string;
}
export declare function TrackPanModeChanged(trackNumber: number, panMode: string): TrackPanModeChanged;
export interface TrackVolumeChanged {
    type: 'track:volume';
    trackNumber: number;
    volume: number;
}
export declare function TrackVolumeChanged(trackNumber: number, volume: number): TrackVolumeChanged;
export interface TrackVolumeDbChanged {
    type: 'track:volumeDb';
    trackNumber: number;
    volumeDb: number;
}
export declare function TrackVolumeDbChanged(trackNumber: number, volumeDb: number): TrackVolumeDbChanged;
export interface TrackVuChanged {
    type: 'track:vu';
    trackNumber: number;
    vu: number;
}
export declare function TrackVuChanged(trackNumber: number, vu: number): TrackVuChanged;
export interface TrackVuLeftChanged {
    type: 'track:vuLeft';
    trackNumber: number;
    vuLeft: number;
}
export declare function TrackVuLeftChanged(trackNumber: number, vuLeft: number): TrackVuLeftChanged;
export interface TrackVuRightChanged {
    type: 'track:vuRight';
    trackNumber: number;
    vuRight: number;
}
export declare function TrackVuRightChanged(trackNumber: number, vuRight: number): TrackVuRightChanged;
export interface TrackMonitoringModeChanged {
    type: 'track:monitoringMode';
    trackNumber: number;
    mode: RecordMonitoringMode;
}
export declare function TrackMonitoringModeChanged(trackNumber: number, mode: RecordMonitoringMode): TrackMonitoringModeChanged;
export interface TrackFxNameChanged {
    type: 'track:fx:name';
    trackNumber: number;
    fxNumber: number;
    name: string;
}
export declare function TrackFxNameChanged(trackNumber: number, fxNumber: number, name: string): TrackFxNameChanged;
export interface TrackFxBypassEvent {
    type: 'track:fx:bypass';
    trackNumber: number;
    fxNumber: number;
    bypassed: boolean;
}
export declare function TrackFxBypassEvent(trackNumber: number, fxNumber: number, bypassed: boolean): TrackFxBypassEvent;
export interface TrackFxOpenUiEvent {
    type: 'track:fx:openUi';
    trackNumber: number;
    fxNumber: number;
    open: boolean;
}
export declare function TrackFxOpenUiEvent(trackNumber: number, fxNumber: number, open: boolean): TrackFxOpenUiEvent;
export interface TrackFxPresetChanged {
    type: 'track:fx:preset';
    trackNumber: number;
    fxNumber: number;
    preset: string;
}
export declare function TrackFxPresetChanged(trackNumber: number, fxNumber: number, preset: string): TrackFxPresetChanged;
export interface SelectedTrackMuteEvent {
    type: 'selectedTrack:mute';
    muted: boolean;
}
export declare function SelectedTrackMuteEvent(muted: boolean): SelectedTrackMuteEvent;
export interface SelectedTrackSoloEvent {
    type: 'selectedTrack:solo';
    soloed: boolean;
}
export declare function SelectedTrackSoloEvent(soloed: boolean): SelectedTrackSoloEvent;
export interface SelectedTrackRecordArmEvent {
    type: 'selectedTrack:recordArm';
    armed: boolean;
}
export declare function SelectedTrackRecordArmEvent(armed: boolean): SelectedTrackRecordArmEvent;
export interface SelectedTrackSelectEvent {
    type: 'selectedTrack:select';
    selected: boolean;
}
export declare function SelectedTrackSelectEvent(selected: boolean): SelectedTrackSelectEvent;
export interface SelectedTrackNameChanged {
    type: 'selectedTrack:name';
    name: string;
}
export declare function SelectedTrackNameChanged(name: string): SelectedTrackNameChanged;
export interface SelectedTrackPanChanged {
    type: 'selectedTrack:pan';
    pan: number;
}
export declare function SelectedTrackPanChanged(pan: number): SelectedTrackPanChanged;
export interface SelectedTrackPan2Changed {
    type: 'selectedTrack:pan2';
    pan2: number;
}
export declare function SelectedTrackPan2Changed(pan2: number): SelectedTrackPan2Changed;
export interface SelectedTrackPanModeChanged {
    type: 'selectedTrack:panMode';
    panMode: string;
}
export declare function SelectedTrackPanModeChanged(panMode: string): SelectedTrackPanModeChanged;
export interface SelectedTrackVolumeChanged {
    type: 'selectedTrack:volume';
    volume: number;
}
export declare function SelectedTrackVolumeChanged(volume: number): SelectedTrackVolumeChanged;
export interface SelectedTrackVolumeDbChanged {
    type: 'selectedTrack:volumeDb';
    volumeDb: number;
}
export declare function SelectedTrackVolumeDbChanged(volumeDb: number): SelectedTrackVolumeDbChanged;
export interface SelectedTrackVuChanged {
    type: 'selectedTrack:vu';
    vu: number;
}
export declare function SelectedTrackVuChanged(vu: number): SelectedTrackVuChanged;
export interface SelectedTrackVuLeftChanged {
    type: 'selectedTrack:vuLeft';
    vuLeft: number;
}
export declare function SelectedTrackVuLeftChanged(vuLeft: number): SelectedTrackVuLeftChanged;
export interface SelectedTrackVuRightChanged {
    type: 'selectedTrack:vuRight';
    vuRight: number;
}
export declare function SelectedTrackVuRightChanged(vuRight: number): SelectedTrackVuRightChanged;
export interface SelectedTrackMonitoringModeChanged {
    type: 'selectedTrack:monitoringMode';
    mode: RecordMonitoringMode;
}
export declare function SelectedTrackMonitoringModeChanged(mode: RecordMonitoringMode): SelectedTrackMonitoringModeChanged;
export interface SelectedTrackFxNameChanged {
    type: 'selectedTrack:fx:name';
    fxNumber: number;
    name: string;
}
export declare function SelectedTrackFxNameChanged(fxNumber: number, name: string): SelectedTrackFxNameChanged;
export interface SelectedTrackFxBypassEvent {
    type: 'selectedTrack:fx:bypass';
    fxNumber: number;
    bypassed: boolean;
}
export declare function SelectedTrackFxBypassEvent(fxNumber: number, bypassed: boolean): SelectedTrackFxBypassEvent;
export interface SelectedTrackFxOpenUiEvent {
    type: 'selectedTrack:fx:openUi';
    fxNumber: number;
    open: boolean;
}
export declare function SelectedTrackFxOpenUiEvent(fxNumber: number, open: boolean): SelectedTrackFxOpenUiEvent;
export interface SelectedTrackFxPresetChanged {
    type: 'selectedTrack:fx:preset';
    fxNumber: number;
    preset: string;
}
export declare function SelectedTrackFxPresetChanged(fxNumber: number, preset: string): SelectedTrackFxPresetChanged;
export interface SelectedFxNameChanged {
    type: 'selectedFx:name';
    name: string;
}
export declare function SelectedFxNameChanged(name: string): SelectedFxNameChanged;
export interface SelectedFxBypassEvent {
    type: 'selectedFx:bypass';
    bypassed: boolean;
}
export declare function SelectedFxBypassEvent(bypassed: boolean): SelectedFxBypassEvent;
export interface SelectedFxOpenUiEvent {
    type: 'selectedFx:openUi';
    open: boolean;
}
export declare function SelectedFxOpenUiEvent(open: boolean): SelectedFxOpenUiEvent;
export interface SelectedFxPresetChanged {
    type: 'selectedFx:preset';
    preset: string;
}
export declare function SelectedFxPresetChanged(preset: string): SelectedFxPresetChanged;
export interface TrackSendNameChanged {
    type: 'track:send:name';
    trackNumber: number;
    sendNumber: number;
    name: string;
}
export declare function TrackSendNameChanged(trackNumber: number, sendNumber: number, name: string): TrackSendNameChanged;
export interface TrackSendVolumeChanged {
    type: 'track:send:volume';
    trackNumber: number;
    sendNumber: number;
    volume: number;
}
export declare function TrackSendVolumeChanged(trackNumber: number, sendNumber: number, volume: number): TrackSendVolumeChanged;
export interface TrackSendVolumeStrChanged {
    type: 'track:send:volumeStr';
    trackNumber: number;
    sendNumber: number;
    volumeStr: string;
}
export declare function TrackSendVolumeStrChanged(trackNumber: number, sendNumber: number, volumeStr: string): TrackSendVolumeStrChanged;
export interface TrackSendPanChanged {
    type: 'track:send:pan';
    trackNumber: number;
    sendNumber: number;
    pan: number;
}
export declare function TrackSendPanChanged(trackNumber: number, sendNumber: number, pan: number): TrackSendPanChanged;
export interface TrackSendPanStrChanged {
    type: 'track:send:panStr';
    trackNumber: number;
    sendNumber: number;
    panStr: string;
}
export declare function TrackSendPanStrChanged(trackNumber: number, sendNumber: number, panStr: string): TrackSendPanStrChanged;
export interface TrackReceiveNameChanged {
    type: 'track:recv:name';
    trackNumber: number;
    receiveNumber: number;
    name: string;
}
export declare function TrackReceiveNameChanged(trackNumber: number, receiveNumber: number, name: string): TrackReceiveNameChanged;
export interface TrackReceiveVolumeChanged {
    type: 'track:recv:volume';
    trackNumber: number;
    receiveNumber: number;
    volume: number;
}
export declare function TrackReceiveVolumeChanged(trackNumber: number, receiveNumber: number, volume: number): TrackReceiveVolumeChanged;
export interface TrackReceiveVolumeStrChanged {
    type: 'track:recv:volumeStr';
    trackNumber: number;
    receiveNumber: number;
    volumeStr: string;
}
export declare function TrackReceiveVolumeStrChanged(trackNumber: number, receiveNumber: number, volumeStr: string): TrackReceiveVolumeStrChanged;
export interface TrackReceivePanChanged {
    type: 'track:recv:pan';
    trackNumber: number;
    receiveNumber: number;
    pan: number;
}
export declare function TrackReceivePanChanged(trackNumber: number, receiveNumber: number, pan: number): TrackReceivePanChanged;
export interface TrackReceivePanStrChanged {
    type: 'track:recv:panStr';
    trackNumber: number;
    receiveNumber: number;
    panStr: string;
}
export declare function TrackReceivePanStrChanged(trackNumber: number, receiveNumber: number, panStr: string): TrackReceivePanStrChanged;
export interface SelectedTrackSendNameChanged {
    type: 'selectedTrack:send:name';
    sendNumber: number;
    name: string;
}
export declare function SelectedTrackSendNameChanged(sendNumber: number, name: string): SelectedTrackSendNameChanged;
export interface SelectedTrackSendVolumeChanged {
    type: 'selectedTrack:send:volume';
    sendNumber: number;
    volume: number;
}
export declare function SelectedTrackSendVolumeChanged(sendNumber: number, volume: number): SelectedTrackSendVolumeChanged;
export interface SelectedTrackSendVolumeStrChanged {
    type: 'selectedTrack:send:volumeStr';
    sendNumber: number;
    volumeStr: string;
}
export declare function SelectedTrackSendVolumeStrChanged(sendNumber: number, volumeStr: string): SelectedTrackSendVolumeStrChanged;
export interface SelectedTrackSendPanChanged {
    type: 'selectedTrack:send:pan';
    sendNumber: number;
    pan: number;
}
export declare function SelectedTrackSendPanChanged(sendNumber: number, pan: number): SelectedTrackSendPanChanged;
export interface SelectedTrackSendPanStrChanged {
    type: 'selectedTrack:send:panStr';
    sendNumber: number;
    panStr: string;
}
export declare function SelectedTrackSendPanStrChanged(sendNumber: number, panStr: string): SelectedTrackSendPanStrChanged;
export interface SelectedTrackReceiveNameChanged {
    type: 'selectedTrack:recv:name';
    receiveNumber: number;
    name: string;
}
export declare function SelectedTrackReceiveNameChanged(receiveNumber: number, name: string): SelectedTrackReceiveNameChanged;
export interface SelectedTrackReceiveVolumeChanged {
    type: 'selectedTrack:recv:volume';
    receiveNumber: number;
    volume: number;
}
export declare function SelectedTrackReceiveVolumeChanged(receiveNumber: number, volume: number): SelectedTrackReceiveVolumeChanged;
export interface SelectedTrackReceiveVolumeStrChanged {
    type: 'selectedTrack:recv:volumeStr';
    receiveNumber: number;
    volumeStr: string;
}
export declare function SelectedTrackReceiveVolumeStrChanged(receiveNumber: number, volumeStr: string): SelectedTrackReceiveVolumeStrChanged;
export interface SelectedTrackReceivePanChanged {
    type: 'selectedTrack:recv:pan';
    receiveNumber: number;
    pan: number;
}
export declare function SelectedTrackReceivePanChanged(receiveNumber: number, pan: number): SelectedTrackReceivePanChanged;
export interface SelectedTrackReceivePanStrChanged {
    type: 'selectedTrack:recv:panStr';
    receiveNumber: number;
    panStr: string;
}
export declare function SelectedTrackReceivePanStrChanged(receiveNumber: number, panStr: string): SelectedTrackReceivePanStrChanged;
export interface RewindByMarkerEvent {
    type: 'transport:rewindByMarker';
    enabled: boolean;
}
export declare function RewindByMarkerEvent(enabled: boolean): RewindByMarkerEvent;
export interface SetLoopEvent {
    type: 'transport:setLoop';
    enabled: boolean;
}
export declare function SetLoopEvent(enabled: boolean): SetLoopEvent;
export interface MarkerNameChanged {
    type: 'marker:name';
    slotIndex: number;
    name: string;
}
export declare function MarkerNameChanged(slotIndex: number, name: string): MarkerNameChanged;
export interface MarkerNumberChanged {
    type: 'marker:number';
    slotIndex: number;
    number: string;
}
export declare function MarkerNumberChanged(slotIndex: number, number: string): MarkerNumberChanged;
export interface MarkerTimeChanged {
    type: 'marker:time';
    slotIndex: number;
    time: number;
}
export declare function MarkerTimeChanged(slotIndex: number, time: number): MarkerTimeChanged;
export interface RegionNameChanged {
    type: 'region:name';
    slotIndex: number;
    name: string;
}
export declare function RegionNameChanged(slotIndex: number, name: string): RegionNameChanged;
export interface RegionNumberChanged {
    type: 'region:number';
    slotIndex: number;
    number: string;
}
export declare function RegionNumberChanged(slotIndex: number, number: string): RegionNumberChanged;
export interface RegionTimeChanged {
    type: 'region:time';
    slotIndex: number;
    time: number;
}
export declare function RegionTimeChanged(slotIndex: number, time: number): RegionTimeChanged;
export interface RegionLengthChanged {
    type: 'region:length';
    slotIndex: number;
    length: number;
}
export declare function RegionLengthChanged(slotIndex: number, length: number): RegionLengthChanged;
export interface LastMarkerNameChanged {
    type: 'lastMarker:name';
    name: string;
}
export declare function LastMarkerNameChanged(name: string): LastMarkerNameChanged;
export interface LastMarkerNumberChanged {
    type: 'lastMarker:number';
    number: string;
}
export declare function LastMarkerNumberChanged(number: string): LastMarkerNumberChanged;
export interface LastMarkerTimeChanged {
    type: 'lastMarker:time';
    time: number;
}
export declare function LastMarkerTimeChanged(time: number): LastMarkerTimeChanged;
export interface LastRegionNameChanged {
    type: 'lastRegion:name';
    name: string;
}
export declare function LastRegionNameChanged(name: string): LastRegionNameChanged;
export interface LastRegionNumberChanged {
    type: 'lastRegion:number';
    number: string;
}
export declare function LastRegionNumberChanged(number: string): LastRegionNumberChanged;
export interface LastRegionTimeChanged {
    type: 'lastRegion:time';
    time: number;
}
export declare function LastRegionTimeChanged(time: number): LastRegionTimeChanged;
export interface LastRegionLengthChanged {
    type: 'lastRegion:length';
    length: number;
}
export declare function LastRegionLengthChanged(length: number): LastRegionLengthChanged;
export interface UnknownEvent {
    type: 'unknown';
    message: OscMessage;
}
export declare type ReaperOscEvent = MetronomeEvent | AutoRecordArmEvent | AnySoloEvent | PlayEvent | StopEvent | PauseEvent | RecordEvent | RewindEvent | FastForwardEvent | RepeatEvent | TimeChanged | BeatChanged | FramesChanged | LoopStartChanged | LoopEndChanged | RewindByMarkerEvent | SetLoopEvent | TrackMuteEvent | TrackSoloEvent | TrackRecordArmEvent | TrackSelectEvent | TrackNameChanged | TrackPanChanged | TrackPan2Changed | TrackPanModeChanged | TrackVolumeChanged | TrackVolumeDbChanged | TrackVuChanged | TrackVuLeftChanged | TrackVuRightChanged | TrackMonitoringModeChanged | TrackFxNameChanged | TrackFxBypassEvent | TrackFxOpenUiEvent | TrackFxPresetChanged | SelectedTrackMuteEvent | SelectedTrackSoloEvent | SelectedTrackRecordArmEvent | SelectedTrackSelectEvent | SelectedTrackNameChanged | SelectedTrackPanChanged | SelectedTrackPan2Changed | SelectedTrackPanModeChanged | SelectedTrackVolumeChanged | SelectedTrackVolumeDbChanged | SelectedTrackVuChanged | SelectedTrackVuLeftChanged | SelectedTrackVuRightChanged | SelectedTrackMonitoringModeChanged | SelectedTrackFxNameChanged | SelectedTrackFxBypassEvent | SelectedTrackFxOpenUiEvent | SelectedTrackFxPresetChanged | SelectedFxNameChanged | SelectedFxBypassEvent | SelectedFxOpenUiEvent | SelectedFxPresetChanged | TrackSendNameChanged | TrackSendVolumeChanged | TrackSendVolumeStrChanged | TrackSendPanChanged | TrackSendPanStrChanged | TrackReceiveNameChanged | TrackReceiveVolumeChanged | TrackReceiveVolumeStrChanged | TrackReceivePanChanged | TrackReceivePanStrChanged | SelectedTrackSendNameChanged | SelectedTrackSendVolumeChanged | SelectedTrackSendVolumeStrChanged | SelectedTrackSendPanChanged | SelectedTrackSendPanStrChanged | SelectedTrackReceiveNameChanged | SelectedTrackReceiveVolumeChanged | SelectedTrackReceiveVolumeStrChanged | SelectedTrackReceivePanChanged | SelectedTrackReceivePanStrChanged | MarkerNameChanged | MarkerNumberChanged | MarkerTimeChanged | RegionNameChanged | RegionNumberChanged | RegionTimeChanged | RegionLengthChanged | LastMarkerNameChanged | LastMarkerNumberChanged | LastMarkerTimeChanged | LastRegionNameChanged | LastRegionNumberChanged | LastRegionTimeChanged | LastRegionLengthChanged | UnknownEvent;
