/**
 * Strongly typed commands accepted by {@link ReaperOscClient} for sending messages to Reaper
 * @module
 */
import { OscMessage } from '../Messages';
import { RecordMonitoringMode } from './Events';
export interface ToggleMetronome {
    type: 'metronome:toggle';
}
export declare function ToggleMetronome(): ToggleMetronome;
export interface ToggleAutoRecordArm {
    type: 'autoRecordArm:toggle';
}
export declare function ToggleAutoRecordArm(): ToggleAutoRecordArm;
export interface ResetSolos {
    type: 'soloReset';
}
export declare function ResetSolos(): ResetSolos;
export interface TriggerAction {
    type: 'action';
    commandId: string | number;
    value?: number;
}
export declare function TriggerAction(commandId: string | number, value?: number): TriggerAction;
export interface Play {
    type: 'transport:play';
}
export declare function Play(): Play;
export interface Stop {
    type: 'transport:stop';
}
export declare function Stop(): Stop;
export interface Pause {
    type: 'transport:pause';
}
export declare function Pause(): Pause;
export interface ToggleRecord {
    type: 'transport:record';
}
export declare function ToggleRecord(): ToggleRecord;
export interface SetRewind {
    type: 'transport:rewind';
    rewinding: boolean;
}
export declare function SetRewind(rewinding: boolean): SetRewind;
export interface SetFastForward {
    type: 'transport:fastForward';
    fastForwarding: boolean;
}
export declare function SetFastForward(fastForwarding: boolean): SetFastForward;
export interface ToggleRepeat {
    type: 'transport:repeat:toggle';
}
export declare function ToggleRepeat(): ToggleRepeat;
export interface SetTime {
    type: 'transport:time';
    time: number;
}
export declare function SetTime(time: number): SetTime;
export interface SetBeat {
    type: 'transport:beat';
    beat: string;
}
export declare function SetBeat(beat: string): SetBeat;
export interface SetFrames {
    type: 'transport:frames';
    frames: string;
}
export declare function SetFrames(frames: string): SetFrames;
export interface SetLoopStart {
    type: 'transport:loopStart';
    time: number;
}
export declare function SetLoopStart(time: number): SetLoopStart;
export interface SetLoopEnd {
    type: 'transport:loopEnd';
    time: number;
}
export declare function SetLoopEnd(time: number): SetLoopEnd;
export interface SetTrackMute {
    type: 'track:mute';
    trackNumber: number;
    muted: boolean;
}
export declare function SetTrackMute(trackNumber: number, muted: boolean): SetTrackMute;
export interface ToggleTrackMute {
    type: 'track:mute:toggle';
    trackNumber: number;
}
export declare function ToggleTrackMute(trackNumber: number): ToggleTrackMute;
export interface SetTrackSolo {
    type: 'track:solo';
    trackNumber: number;
    soloed: boolean;
}
export declare function SetTrackSolo(trackNumber: number, soloed: boolean): SetTrackSolo;
export interface ToggleTrackSolo {
    type: 'track:solo:toggle';
    trackNumber: number;
}
export declare function ToggleTrackSolo(trackNumber: number): ToggleTrackSolo;
export interface SetTrackRecordArm {
    type: 'track:recordArm';
    trackNumber: number;
    armed: boolean;
}
export declare function SetTrackRecordArm(trackNumber: number, armed: boolean): SetTrackRecordArm;
export interface ToggleTrackRecordArm {
    type: 'track:recordArm:toggle';
    trackNumber: number;
}
export declare function ToggleTrackRecordArm(trackNumber: number): ToggleTrackRecordArm;
export interface SetTrackSelect {
    type: 'track:select';
    trackNumber: number;
    selected: boolean;
}
export declare function SetTrackSelect(trackNumber: number, selected: boolean): SetTrackSelect;
export interface SetTrackName {
    type: 'track:name';
    trackNumber: number;
    name: string;
}
export declare function SetTrackName(trackNumber: number, name: string): SetTrackName;
export interface SetTrackPan {
    type: 'track:pan';
    trackNumber: number;
    pan: number;
}
export declare function SetTrackPan(trackNumber: number, pan: number): SetTrackPan;
export interface SetTrackPan2 {
    type: 'track:pan2';
    trackNumber: number;
    pan2: number;
}
export declare function SetTrackPan2(trackNumber: number, pan2: number): SetTrackPan2;
export interface SetTrackVolume {
    type: 'track:volume';
    trackNumber: number;
    volume: number;
}
export declare function SetTrackVolume(trackNumber: number, volume: number): SetTrackVolume;
export interface SetTrackVolumeDb {
    type: 'track:volumeDb';
    trackNumber: number;
    volumeDb: number;
}
export declare function SetTrackVolumeDb(trackNumber: number, volumeDb: number): SetTrackVolumeDb;
export interface SetTrackMonitoringMode {
    type: 'track:monitoringMode';
    trackNumber: number;
    mode: RecordMonitoringMode;
}
export declare function SetTrackMonitoringMode(trackNumber: number, mode: RecordMonitoringMode): SetTrackMonitoringMode;
export interface SetTrackFxBypass {
    type: 'track:fx:bypass';
    trackNumber: number;
    fxNumber: number;
    bypassed: boolean;
}
export declare function SetTrackFxBypass(trackNumber: number, fxNumber: number, bypassed: boolean): SetTrackFxBypass;
export interface SetTrackFxOpenUi {
    type: 'track:fx:openUi';
    trackNumber: number;
    fxNumber: number;
    open: boolean;
}
export declare function SetTrackFxOpenUi(trackNumber: number, fxNumber: number, open: boolean): SetTrackFxOpenUi;
export interface NextTrackFxPreset {
    type: 'track:fx:preset:next';
    trackNumber: number;
    fxNumber: number;
}
export declare function NextTrackFxPreset(trackNumber: number, fxNumber: number): NextTrackFxPreset;
export interface PreviousTrackFxPreset {
    type: 'track:fx:preset:previous';
    trackNumber: number;
    fxNumber: number;
}
export declare function PreviousTrackFxPreset(trackNumber: number, fxNumber: number): PreviousTrackFxPreset;
export interface SetSelectedTrackMute {
    type: 'selectedTrack:mute';
    muted: boolean;
}
export declare function SetSelectedTrackMute(muted: boolean): SetSelectedTrackMute;
export interface ToggleSelectedTrackMute {
    type: 'selectedTrack:mute:toggle';
}
export declare function ToggleSelectedTrackMute(): ToggleSelectedTrackMute;
export interface SetSelectedTrackSolo {
    type: 'selectedTrack:solo';
    soloed: boolean;
}
export declare function SetSelectedTrackSolo(soloed: boolean): SetSelectedTrackSolo;
export interface ToggleSelectedTrackSolo {
    type: 'selectedTrack:solo:toggle';
}
export declare function ToggleSelectedTrackSolo(): ToggleSelectedTrackSolo;
export interface SetSelectedTrackRecordArm {
    type: 'selectedTrack:recordArm';
    armed: boolean;
}
export declare function SetSelectedTrackRecordArm(armed: boolean): SetSelectedTrackRecordArm;
export interface ToggleSelectedTrackRecordArm {
    type: 'selectedTrack:recordArm:toggle';
}
export declare function ToggleSelectedTrackRecordArm(): ToggleSelectedTrackRecordArm;
export interface SetSelectedTrackSelect {
    type: 'selectedTrack:select';
    selected: boolean;
}
export declare function SetSelectedTrackSelect(selected: boolean): SetSelectedTrackSelect;
export interface SetSelectedTrackName {
    type: 'selectedTrack:name';
    name: string;
}
export declare function SetSelectedTrackName(name: string): SetSelectedTrackName;
export interface SetSelectedTrackPan {
    type: 'selectedTrack:pan';
    pan: number;
}
export declare function SetSelectedTrackPan(pan: number): SetSelectedTrackPan;
export interface SetSelectedTrackPan2 {
    type: 'selectedTrack:pan2';
    pan2: number;
}
export declare function SetSelectedTrackPan2(pan2: number): SetSelectedTrackPan2;
export interface SetSelectedTrackVolume {
    type: 'selectedTrack:volume';
    volume: number;
}
export declare function SetSelectedTrackVolume(volume: number): SetSelectedTrackVolume;
export interface SetSelectedTrackVolumeDb {
    type: 'selectedTrack:volumeDb';
    volumeDb: number;
}
export declare function SetSelectedTrackVolumeDb(volumeDb: number): SetSelectedTrackVolumeDb;
export interface SetSelectedTrackMonitoringMode {
    type: 'selectedTrack:monitoringMode';
    mode: RecordMonitoringMode;
}
export declare function SetSelectedTrackMonitoringMode(mode: RecordMonitoringMode): SetSelectedTrackMonitoringMode;
export interface SetSelectedTrackFxBypass {
    type: 'selectedTrack:fx:bypass';
    fxNumber: number;
    bypassed: boolean;
}
export declare function SetSelectedTrackFxBypass(fxNumber: number, bypassed: boolean): SetSelectedTrackFxBypass;
export interface SetSelectedTrackFxOpenUi {
    type: 'selectedTrack:fx:openUi';
    fxNumber: number;
    open: boolean;
}
export declare function SetSelectedTrackFxOpenUi(fxNumber: number, open: boolean): SetSelectedTrackFxOpenUi;
export interface NextSelectedTrackFxPreset {
    type: 'selectedTrack:fx:preset:next';
    fxNumber: number;
}
export declare function NextSelectedTrackFxPreset(fxNumber: number): NextSelectedTrackFxPreset;
export interface PreviousSelectedTrackFxPreset {
    type: 'selectedTrack:fx:preset:previous';
    fxNumber: number;
}
export declare function PreviousSelectedTrackFxPreset(fxNumber: number): PreviousSelectedTrackFxPreset;
export interface SetSelectedFxBypass {
    type: 'selectedFx:bypass';
    bypassed: boolean;
}
export declare function SetSelectedFxBypass(bypassed: boolean): SetSelectedFxBypass;
export interface SetSelectedFxOpenUi {
    type: 'selectedFx:openUi';
    open: boolean;
}
export declare function SetSelectedFxOpenUi(open: boolean): SetSelectedFxOpenUi;
export interface NextSelectedFxPreset {
    type: 'selectedFx:preset:next';
}
export declare function NextSelectedFxPreset(): NextSelectedFxPreset;
export interface PreviousSelectedFxPreset {
    type: 'selectedFx:preset:previous';
}
export declare function PreviousSelectedFxPreset(): PreviousSelectedFxPreset;
export interface SetTrackSendVolume {
    type: 'track:send:volume';
    trackNumber: number;
    sendNumber: number;
    volume: number;
}
export declare function SetTrackSendVolume(trackNumber: number, sendNumber: number, volume: number): SetTrackSendVolume;
export interface SetTrackSendPan {
    type: 'track:send:pan';
    trackNumber: number;
    sendNumber: number;
    pan: number;
}
export declare function SetTrackSendPan(trackNumber: number, sendNumber: number, pan: number): SetTrackSendPan;
export interface SetTrackReceiveVolume {
    type: 'track:recv:volume';
    trackNumber: number;
    receiveNumber: number;
    volume: number;
}
export declare function SetTrackReceiveVolume(trackNumber: number, receiveNumber: number, volume: number): SetTrackReceiveVolume;
export interface SetTrackReceivePan {
    type: 'track:recv:pan';
    trackNumber: number;
    receiveNumber: number;
    pan: number;
}
export declare function SetTrackReceivePan(trackNumber: number, receiveNumber: number, pan: number): SetTrackReceivePan;
export interface SetSelectedTrackSendVolume {
    type: 'selectedTrack:send:volume';
    sendNumber: number;
    volume: number;
}
export declare function SetSelectedTrackSendVolume(sendNumber: number, volume: number): SetSelectedTrackSendVolume;
export interface SetSelectedTrackSendPan {
    type: 'selectedTrack:send:pan';
    sendNumber: number;
    pan: number;
}
export declare function SetSelectedTrackSendPan(sendNumber: number, pan: number): SetSelectedTrackSendPan;
export interface SetSelectedTrackReceiveVolume {
    type: 'selectedTrack:recv:volume';
    receiveNumber: number;
    volume: number;
}
export declare function SetSelectedTrackReceiveVolume(receiveNumber: number, volume: number): SetSelectedTrackReceiveVolume;
export interface SetSelectedTrackReceivePan {
    type: 'selectedTrack:recv:pan';
    receiveNumber: number;
    pan: number;
}
export declare function SetSelectedTrackReceivePan(receiveNumber: number, pan: number): SetSelectedTrackReceivePan;
export interface ToggleRewindByMarker {
    type: 'transport:rewindByMarker:toggle';
}
export declare function ToggleRewindByMarker(): ToggleRewindByMarker;
export interface ToggleSetLoop {
    type: 'transport:setLoop:toggle';
}
export declare function ToggleSetLoop(): ToggleSetLoop;
export interface GotoMarker {
    type: 'transport:gotoMarker';
    markerNumber: number;
}
export declare function GotoMarker(markerNumber: number): GotoMarker;
export interface GotoRegion {
    type: 'transport:gotoRegion';
    regionNumber: number;
}
export declare function GotoRegion(regionNumber: number): GotoRegion;
export interface SetMarkerName {
    type: 'markerById:name';
    id: number;
    name: string;
}
export declare function SetMarkerName(id: number, name: string): SetMarkerName;
export interface SetMarkerTime {
    type: 'markerById:time';
    id: number;
    time: number;
}
export declare function SetMarkerTime(id: number, time: number): SetMarkerTime;
export interface SetMarkerNumber {
    type: 'markerById:number';
    id: number;
    number: number;
}
export declare function SetMarkerNumber(id: number, number: number): SetMarkerNumber;
export interface SetRegionName {
    type: 'regionById:name';
    id: number;
    name: string;
}
export declare function SetRegionName(id: number, name: string): SetRegionName;
export interface SetRegionTime {
    type: 'regionById:time';
    id: number;
    time: number;
}
export declare function SetRegionTime(id: number, time: number): SetRegionTime;
export interface SetRegionLength {
    type: 'regionById:length';
    id: number;
    length: number;
}
export declare function SetRegionLength(id: number, length: number): SetRegionLength;
export interface SetRegionNumber {
    type: 'regionById:number';
    id: number;
    number: number;
}
export declare function SetRegionNumber(id: number, number: number): SetRegionNumber;
export interface SetScrollLeft {
    type: 'viewport:scroll:left';
    active: boolean;
}
export declare function SetScrollLeft(active: boolean): SetScrollLeft;
export interface SetScrollRight {
    type: 'viewport:scroll:right';
    active: boolean;
}
export declare function SetScrollRight(active: boolean): SetScrollRight;
export interface SetScrollUp {
    type: 'viewport:scroll:up';
    active: boolean;
}
export declare function SetScrollUp(active: boolean): SetScrollUp;
export interface SetScrollDown {
    type: 'viewport:scroll:down';
    active: boolean;
}
export declare function SetScrollDown(active: boolean): SetScrollDown;
export interface SetZoomInX {
    type: 'viewport:zoom:in:x';
    active: boolean;
}
export declare function SetZoomInX(active: boolean): SetZoomInX;
export interface SetZoomOutX {
    type: 'viewport:zoom:out:x';
    active: boolean;
}
export declare function SetZoomOutX(active: boolean): SetZoomOutX;
export interface SetZoomInY {
    type: 'viewport:zoom:in:y';
    active: boolean;
}
export declare function SetZoomInY(active: boolean): SetZoomInY;
export interface SetZoomOutY {
    type: 'viewport:zoom:out:y';
    active: boolean;
}
export declare function SetZoomOutY(active: boolean): SetZoomOutY;
export interface ScrollX {
    type: 'viewport:scrollX';
    value: number;
}
export declare function ScrollX(value: number): ScrollX;
export interface ScrollY {
    type: 'viewport:scrollY';
    value: number;
}
export declare function ScrollY(value: number): ScrollY;
export interface ZoomX {
    type: 'viewport:zoomX';
    value: number;
}
export declare function ZoomX(value: number): ZoomX;
export interface ZoomY {
    type: 'viewport:zoomY';
    value: number;
}
export declare function ZoomY(value: number): ZoomY;
export interface SelectDeviceTrack {
    type: 'device:track:select';
    index: number;
}
export declare function SelectDeviceTrack(index: number): SelectDeviceTrack;
export interface NextDeviceTrack {
    type: 'device:track:next';
}
export declare function NextDeviceTrack(): NextDeviceTrack;
export interface PreviousDeviceTrack {
    type: 'device:track:previous';
}
export declare function PreviousDeviceTrack(): PreviousDeviceTrack;
export interface SelectDeviceTrackBank {
    type: 'device:trackBank:select';
    index: number;
}
export declare function SelectDeviceTrackBank(index: number): SelectDeviceTrackBank;
export interface NextDeviceTrackBank {
    type: 'device:trackBank:next';
}
export declare function NextDeviceTrackBank(): NextDeviceTrackBank;
export interface PreviousDeviceTrackBank {
    type: 'device:trackBank:previous';
}
export declare function PreviousDeviceTrackBank(): PreviousDeviceTrackBank;
export interface SelectDeviceFx {
    type: 'device:fx:select';
    index: number;
}
export declare function SelectDeviceFx(index: number): SelectDeviceFx;
export interface NextDeviceFx {
    type: 'device:fx:next';
}
export declare function NextDeviceFx(): NextDeviceFx;
export interface PreviousDeviceFx {
    type: 'device:fx:previous';
}
export declare function PreviousDeviceFx(): PreviousDeviceFx;
export interface SelectDeviceFxParameterBank {
    type: 'device:fx:parameterBank:select';
    index: number;
}
export declare function SelectDeviceFxParameterBank(index: number): SelectDeviceFxParameterBank;
export interface NextDeviceFxParameterBank {
    type: 'device:fx:parameterBank:next';
}
export declare function NextDeviceFxParameterBank(): NextDeviceFxParameterBank;
export interface PreviousDeviceFxParameterBank {
    type: 'device:fx:parameterBank:previous';
}
export declare function PreviousDeviceFxParameterBank(): PreviousDeviceFxParameterBank;
export interface SelectDeviceFxInstrumentParameterBank {
    type: 'device:fx:instrumentParameterBank:select';
    index: number;
}
export declare function SelectDeviceFxInstrumentParameterBank(index: number): SelectDeviceFxInstrumentParameterBank;
export interface NextDeviceFxInstrumentParameterBank {
    type: 'device:fx:instrumentParameterBank:next';
}
export declare function NextDeviceFxInstrumentParameterBank(): NextDeviceFxInstrumentParameterBank;
export interface PreviousDeviceFxInstrumentParameterBank {
    type: 'device:fx:instrumentParameterBank:previous';
}
export declare function PreviousDeviceFxInstrumentParameterBank(): PreviousDeviceFxInstrumentParameterBank;
export interface SelectDeviceMarkerBank {
    type: 'device:markerBank:select';
    index: number;
}
export declare function SelectDeviceMarkerBank(index: number): SelectDeviceMarkerBank;
export interface NextDeviceMarkerBank {
    type: 'device:markerBank:next';
}
export declare function NextDeviceMarkerBank(): NextDeviceMarkerBank;
export interface PreviousDeviceMarkerBank {
    type: 'device:markerBank:previous';
}
export declare function PreviousDeviceMarkerBank(): PreviousDeviceMarkerBank;
export interface SelectDeviceRegionBank {
    type: 'device:regionBank:select';
    index: number;
}
export declare function SelectDeviceRegionBank(index: number): SelectDeviceRegionBank;
export interface NextDeviceRegionBank {
    type: 'device:regionBank:next';
}
export declare function NextDeviceRegionBank(): NextDeviceRegionBank;
export interface PreviousDeviceRegionBank {
    type: 'device:regionBank:previous';
}
export declare function PreviousDeviceRegionBank(): PreviousDeviceRegionBank;
export interface RawMessage {
    type: 'raw';
    message: OscMessage;
}
export declare function RawMessage(message: OscMessage): RawMessage;
export declare type ReaperOscCommand = ToggleMetronome | ToggleAutoRecordArm | ResetSolos | TriggerAction | Play | Stop | Pause | ToggleRecord | SetRewind | SetFastForward | ToggleRepeat | SetTime | SetBeat | SetFrames | SetLoopStart | SetLoopEnd | SetTrackMute | ToggleTrackMute | SetTrackSolo | ToggleTrackSolo | SetTrackRecordArm | ToggleTrackRecordArm | SetTrackSelect | SetTrackName | SetTrackPan | SetTrackPan2 | SetTrackVolume | SetTrackVolumeDb | SetTrackMonitoringMode | SetTrackFxBypass | SetTrackFxOpenUi | NextTrackFxPreset | PreviousTrackFxPreset | SetSelectedTrackMute | ToggleSelectedTrackMute | SetSelectedTrackSolo | ToggleSelectedTrackSolo | SetSelectedTrackRecordArm | ToggleSelectedTrackRecordArm | SetSelectedTrackSelect | SetSelectedTrackName | SetSelectedTrackPan | SetSelectedTrackPan2 | SetSelectedTrackVolume | SetSelectedTrackVolumeDb | SetSelectedTrackMonitoringMode | SetSelectedTrackFxBypass | SetSelectedTrackFxOpenUi | NextSelectedTrackFxPreset | PreviousSelectedTrackFxPreset | SetSelectedFxBypass | SetSelectedFxOpenUi | NextSelectedFxPreset | PreviousSelectedFxPreset | SetTrackSendVolume | SetTrackSendPan | SetTrackReceiveVolume | SetTrackReceivePan | SetSelectedTrackSendVolume | SetSelectedTrackSendPan | SetSelectedTrackReceiveVolume | SetSelectedTrackReceivePan | ToggleRewindByMarker | ToggleSetLoop | GotoMarker | GotoRegion | SetMarkerName | SetMarkerTime | SetMarkerNumber | SetRegionName | SetRegionTime | SetRegionLength | SetRegionNumber | SetScrollLeft | SetScrollRight | SetScrollUp | SetScrollDown | SetZoomInX | SetZoomOutX | SetZoomInY | SetZoomOutY | ScrollX | ScrollY | ZoomX | ZoomY | SelectDeviceTrack | NextDeviceTrack | PreviousDeviceTrack | SelectDeviceTrackBank | NextDeviceTrackBank | PreviousDeviceTrackBank | SelectDeviceFx | NextDeviceFx | PreviousDeviceFx | SelectDeviceFxParameterBank | NextDeviceFxParameterBank | PreviousDeviceFxParameterBank | SelectDeviceFxInstrumentParameterBank | NextDeviceFxInstrumentParameterBank | PreviousDeviceFxInstrumentParameterBank | SelectDeviceMarkerBank | NextDeviceMarkerBank | PreviousDeviceMarkerBank | SelectDeviceRegionBank | NextDeviceRegionBank | PreviousDeviceRegionBank | RawMessage;
/** Translates a typed command into the corresponding OSC message */
export declare function commandToOscMessage(command: ReaperOscCommand): OscMessage;
