/**
 * This file was automatically generated by json-schema-to-typescript.
 * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,
 * and re-run the "tsr-schema-types" tool to regenerate this file.
 */
import type { ActionExecutionResult } from "../actions";
import type { SetPanTiltSpeedPayload, GetPanTiltPositionResult, SetZoomSpeedPayload, GetZoomPositionResult, StorePresetPayload, RecallPresetPayload, ResetPresetPayload, SetFocusSpeedPayload, SetFocusModePayload, GetFocusPositionResult, GetFocusModeResult } from './generic-ptz-actions';
export interface PanasonicPTZOptions {
    host: string;
    port: number;
    https?: boolean;
}
export interface MappingPanasonicPTZPresetMem {
    mappingType: MappingPanasonicPTZType.PresetMem;
}
export interface MappingPanasonicPTZPresetSpeed {
    mappingType: MappingPanasonicPTZType.PresetSpeed;
}
export interface MappingPanasonicPTZZoomSpeed {
    mappingType: MappingPanasonicPTZType.ZoomSpeed;
}
export interface MappingPanasonicPTZZoom {
    mappingType: MappingPanasonicPTZType.Zoom;
}
export declare enum MappingPanasonicPTZType {
    PresetMem = "presetMem",
    PresetSpeed = "presetSpeed",
    ZoomSpeed = "zoomSpeed",
    Zoom = "zoom"
}
export type SomeMappingPanasonicPTZ = MappingPanasonicPTZPresetMem | MappingPanasonicPTZPresetSpeed | MappingPanasonicPTZZoomSpeed | MappingPanasonicPTZZoom;
export declare enum PanasonicPTZActions {
    SetPanTiltSpeed = "setPanTiltSpeed",
    GetPanTiltPosition = "getPanTiltPosition",
    SetZoomSpeed = "setZoomSpeed",
    GetZoomPosition = "getZoomPosition",
    StorePreset = "storePreset",
    RecallPreset = "recallPreset",
    ResetPreset = "resetPreset",
    SetFocusSpeed = "setFocusSpeed",
    SetFocusMode = "setFocusMode",
    TriggerOnePushFocus = "triggerOnePushFocus",
    GetFocusPosition = "getFocusPosition",
    GetFocusMode = "getFocusMode"
}
export interface PanasonicPTZActionMethods {
    [PanasonicPTZActions.SetPanTiltSpeed]: (payload: SetPanTiltSpeedPayload) => Promise<ActionExecutionResult<void>>;
    [PanasonicPTZActions.GetPanTiltPosition]: (payload: Record<string, never>) => Promise<ActionExecutionResult<GetPanTiltPositionResult>>;
    [PanasonicPTZActions.SetZoomSpeed]: (payload: SetZoomSpeedPayload) => Promise<ActionExecutionResult<void>>;
    [PanasonicPTZActions.GetZoomPosition]: (payload: Record<string, never>) => Promise<ActionExecutionResult<GetZoomPositionResult>>;
    [PanasonicPTZActions.StorePreset]: (payload: StorePresetPayload) => Promise<ActionExecutionResult<void>>;
    [PanasonicPTZActions.RecallPreset]: (payload: RecallPresetPayload) => Promise<ActionExecutionResult<void>>;
    [PanasonicPTZActions.ResetPreset]: (payload: ResetPresetPayload) => Promise<ActionExecutionResult<void>>;
    [PanasonicPTZActions.SetFocusSpeed]: (payload: SetFocusSpeedPayload) => Promise<ActionExecutionResult<void>>;
    [PanasonicPTZActions.SetFocusMode]: (payload: SetFocusModePayload) => Promise<ActionExecutionResult<void>>;
    [PanasonicPTZActions.TriggerOnePushFocus]: (payload: Record<string, never>) => Promise<ActionExecutionResult<void>>;
    [PanasonicPTZActions.GetFocusPosition]: (payload: Record<string, never>) => Promise<ActionExecutionResult<GetFocusPositionResult>>;
    [PanasonicPTZActions.GetFocusMode]: (payload: Record<string, never>) => Promise<ActionExecutionResult<GetFocusModeResult>>;
}
export interface PanasonicPTZDeviceTypes {
    Options: PanasonicPTZOptions;
    Mappings: SomeMappingPanasonicPTZ;
    Actions: PanasonicPTZActionMethods;
}
//# sourceMappingURL=panasonicPTZ.d.ts.map