import { ArgKey, ArgsTypes } from './types'; interface Option = Record, R extends Record = Record> { description: string; arguments?: A; returnValue: R; } declare type ParamMap = Record; interface ParamInfo { paramType: ArgKey; /** The camelcase name we use everywhere */ paramName: string; } /** Internal container class that holds metadata about each HyperDeck event */ declare class HyperDeckAPI

{ readonly options: P; constructor(options?: P); addOption: = {}, R extends Record = {}>(key: K | [K, ...string[]], option: Option) => HyperDeckAPI

; }>; /** Get a `Set` of param names keyed by function name */ getParamsByCommandName: () => { [K in keyof P]: Record; }; } declare const api: HyperDeckAPI<{ help: Option<{}, {}>; } & { commands: Option<{}, { commands: "string"; }>; } & { "device info": Option<{}, { protocolVersion: "string"; model: "string"; slotCount: "string"; }>; } & { "disk list": Option<{ slotId: "number"; }, { slotId: "number"; }>; } & { quit: Option<{}, {}>; } & { ping: Option<{}, {}>; } & { preview: Option<{ enable: "boolean"; }, {}>; } & { play: Option<{ speed: "number"; loop: "boolean"; singleClip: "boolean"; }, {}>; } & { playrange: Option<{}, {}>; } & { "playrange set": Option<{ clipId: "number"; in: "timecode"; out: "timecode"; timelineIn: "number"; timelineOut: "number"; }, {}>; } & { "playrange clear": Option<{}, {}>; } & { "play on startup": Option<{ enable: "boolean"; singleClip: "boolean"; }, {}>; } & { "play option": Option<{ stopMode: "stopmode"; }, {}>; } & { record: Option<{ name: "string"; }, {}>; } & { "record spill": Option<{ slotId: "number"; }, {}>; } & { stop: Option<{}, {}>; } & { "clips count": Option<{}, { clipCount: "number"; }>; } & { "clips get": Option<{ clipId: "number"; count: "number"; version: "number"; }, { clips: "clips"; }>; } & { "clips add": Option<{ name: "string"; clipId: "number"; in: "timecode"; out: "timecode"; }, {}>; } & { "clips remove": Option<{ clipId: "number"; }, {}>; } & { "clips clear": Option<{}, {}>; } & { "transport info": Option<{}, { status: "transportstatus"; speed: "number"; slotId: "number"; clipId: "number"; singleClip: "boolean"; displayTimecode: "timecode"; timecode: "timecode"; videoFormat: "videoformat"; loop: "boolean"; }>; } & { "slot info": Option<{ slotId: "number"; }, { slotId: "number"; status: "slotstatus"; volumeName: "string"; recordingTime: "timecode"; videoFormat: "videoformat"; }>; } & { "slot select": Option<{ slotId: "number"; videoFormat: "videoformat"; }, {}>; } & { "slot unblock": Option<{ slotId: "number"; }, {}>; } & { "dynamic range": Option<{ playbackOverride: "string"; }, {}>; } & { notify: Option<{ remote: "boolean"; transport: "boolean"; slot: "boolean"; configuration: "boolean"; droppedFrames: "boolean"; displayTimecode: "boolean"; timelinePosition: "boolean"; playrange: "boolean"; dynamicRange: "boolean"; }, { remote: "boolean"; transport: "boolean"; slot: "boolean"; configuration: "boolean"; droppedFrames: "boolean"; displayTimecode: "boolean"; timelinePosition: "boolean"; playrange: "boolean"; dynamicRange: "boolean"; }>; } & { goto: Option<{ clipId: "number"; clip: "goto"; timeline: "goto"; timecode: "timecode"; slotId: "number"; }, {}>; } & { jog: Option<{ timecode: "timecode"; }, {}>; } & { shuttle: Option<{ speed: "number"; }, {}>; } & { remote: Option<{ enable: "boolean"; override: "boolean"; }, {}>; } & { configuration: Option<{ videoInput: "videoinput"; audioInput: "audioinput"; fileFormat: "fileformat"; audioCodec: "audiocodec"; timecodeInput: "timecodeinput"; timecodePreset: "timecode"; audioInputChannels: "number"; recordTrigger: "recordtrigger"; recordPrefix: "string"; appendTimestamp: "boolean"; }, { videoInput: "videoinput"; audioInput: "audioinput"; fileFormat: "fileformat"; audioCodec: "audiocodec"; timecodeInput: "timecodeinput"; timecodePreset: "timecode"; audioInputChannels: "number"; recordTrigger: "recordtrigger"; recordPrefix: "string"; appendTimestamp: "boolean"; }>; } & { uptime: Option<{}, { uptime: "number"; }>; } & { format: Option<{ prepare: "string"; confirm: "string"; }, { token: "string"; }>; } & { identify: Option<{ enable: "boolean"; }, {}>; } & { watchdog: Option<{ period: "number"; }, {}>; }>; declare type CommandConfigs = { [K in keyof typeof api['options']]: typeof api['options'][K]; }; export declare const paramsByCommandName: { help: Record; commands: Record; "device info": Record; "disk list": Record; quit: Record; ping: Record; preview: Record; play: Record; playrange: Record; "playrange set": Record; "playrange clear": Record; "play on startup": Record; "play option": Record; record: Record; "record spill": Record; stop: Record; "clips count": Record; "clips get": Record; "clips add": Record; "clips remove": Record; "clips clear": Record; "transport info": Record; "slot info": Record; "slot select": Record; "slot unblock": Record; "dynamic range": Record; notify: Record; goto: Record; jog: Record; shuttle: Record; remote: Record; configuration: Record; uptime: Record; format: Record; identify: Record; watchdog: Record; }; export declare type CommandName = keyof CommandConfigs; export declare type CommandParamsByCommandName = { [K in CommandName]: ArgsTypes>; }; export declare type CommandResponsesByCommandName = { [K in CommandName]: ArgsTypes>; }; export declare function assertValidCommandName(value: any): asserts value is CommandName; export {}; //# sourceMappingURL=api.d.ts.map