/**
 * Contains classes for controlling Reaper's OSC device state
 * @module
 */
import { ReaperOscCommand } from './Client/Commands';
declare type SendCommand = (command: ReaperOscCommand) => void;
/** Controls the OSC device's navigation state within Reaper */
export declare class DeviceState {
    private readonly _send;
    constructor(_send: SendCommand);
    /**
     * Set the device's focused track to a specific bank-relative slot.
     * Reaper will respond with a full state sync burst for the selected track.
     * @param index 1-based track index within the current device track bank
     */
    selectTrack(index: number): void;
    /** Move the device's focused track to the next track in the bank */
    nextTrack(): void;
    /** Move the device's focused track to the previous track in the bank */
    previousTrack(): void;
    /**
     * Set the active device track bank.
     * e.g. bank 2 with a bank size of 8 maps `/track/1/` through `/track/8/` to absolute tracks 9-16.
     * @param index 1-based bank index
     */
    selectTrackBank(index: number): void;
    /** Move to the next track bank */
    nextTrackBank(): void;
    /** Move to the previous track bank */
    previousTrackBank(): void;
    /**
     * Set the device's focused FX slot on the currently selected track.
     * @param index 1-based FX index within the current device FX bank
     */
    selectFx(index: number): void;
    /** Move the device's focused FX to the next slot */
    nextFx(): void;
    /** Move the device's focused FX to the previous slot */
    previousFx(): void;
    /**
     * Set the active FX parameter bank.
     * @param index 1-based bank index
     */
    selectFxParameterBank(index: number): void;
    /** Move to the next FX parameter bank */
    nextFxParameterBank(): void;
    /** Move to the previous FX parameter bank */
    previousFxParameterBank(): void;
    /**
     * Set the active FX instrument parameter bank.
     * @param index 1-based bank index
     */
    selectFxInstrumentParameterBank(index: number): void;
    /** Move to the next FX instrument parameter bank */
    nextFxInstrumentParameterBank(): void;
    /** Move to the previous FX instrument parameter bank */
    previousFxInstrumentParameterBank(): void;
    /**
     * Set the active marker bank.
     * @param index 1-based bank index
     */
    selectMarkerBank(index: number): void;
    /** Move to the next marker bank */
    nextMarkerBank(): void;
    /** Move to the previous marker bank */
    previousMarkerBank(): void;
    /**
     * Set the active region bank.
     * @param index 1-based bank index
     */
    selectRegionBank(index: number): void;
    /** Move to the next region bank */
    nextRegionBank(): void;
    /** Move to the previous region bank */
    previousRegionBank(): void;
}
export {};
