import type { AccessPoint, AuthModeEnum } from './access-point';
import type { FileTypeEnum, StorageEnum, ThetaFiles } from './theta-files';
import type { ThetaState } from './theta-state';
import type { ThetaInfo, ThetaModel } from './theta-info';
import type { MetaInfo } from './theta-meta';
import type { PluginInfo } from './theta-plugin';
import type { OptionNameEnum, Options, CaptureModeEnum, Proxy, BurstCaptureNumEnum, BurstBracketStepEnum, BurstCompensationEnum, BurstMaxExposureTimeEnum, BurstEnableIsoControlEnum, BurstOrderEnum } from './options';
import { PhotoCaptureBuilder, VideoCaptureBuilder, TimeShiftCaptureBuilder, TimeShiftManualCaptureBuilder, LimitlessIntervalCaptureBuilder, ShotCountSpecifiedIntervalCaptureBuilder, CompositeIntervalCaptureBuilder, BurstCaptureBuilder, ContinuousCaptureBuilder, MultiBracketCaptureBuilder } from '../capture';
import type { ThetaConfig } from './theta-config';
import type { ThetaTimeout } from './theta-timeout';
import { EventWebSocket } from './event-websocket';
/**
 * Set up a log listener for THETA API calls
 *
 * @param listener Called when there is a THETA API request and response; if undefined, unregister.
 */
export declare function setApiLogListener(listener?: (message: string) => void): Promise<void>;
/**
 * initialize theta client sdk
 *
 * @function initialize
 * @param {string} endPoint optional endpoint of camera
 * @param {ThetaConfig} config Configuration of initialize. If null, get from THETA.
 * @param {ThetaTimeout} timeout Timeout of HTTP call.
 * @return promise of boolean result
 **/
export declare function initialize(endPoint?: string, config?: ThetaConfig, timeout?: ThetaTimeout): Promise<boolean>;
/**
 * Returns whether it is initialized or not.
 *
 * @function isInitialized
 * @return promise of boolean result
 **/
export declare function isInitialized(): Promise<boolean>;
/**
 * Turn off/on (reboot) the camera.
 * Supported models are THETA A1 only.
 *
 * Error when connecting in CL mode for Japan-bound models only
 *
 * @function reboot
 * @return promise
 */
export declare function reboot(): Promise<void>;
/**
 * Reset all device settings and capture settings.
 * After reset, the camera will be restarted.
 *
 * @function reset
 * @return promise of boolean result
 */
export declare function reset(): Promise<boolean>;
/**
 * Get PhotoCaptureBuilder for take a picture.
 *
 * @function getPhotoCaptureBuilder
 * @return created PhotoCaptureBuilder
 */
export declare function getPhotoCaptureBuilder(): PhotoCaptureBuilder;
/**
 * Get TimeShiftCaptureBuilder for time-shift.
 *
 * @function getTimeShiftCaptureBuilder
 * @return created TimeShiftCaptureBuilder
 */
export declare function getTimeShiftCaptureBuilder(): TimeShiftCaptureBuilder;
/**
 * Get TimeShiftManualCaptureBuilder for manual time-shift.
 *
 * @function getTimeShiftManualCaptureBuilder
 * @return created TimeShiftManualCaptureBuilder
 */
export declare function getTimeShiftManualCaptureBuilder(): TimeShiftManualCaptureBuilder;
/**
 * Get VideoCapture.Builder for capture video.
 *
 * @function getVideoCaptureBuilder
 * @return created VideoCaptureBuilder instance
 */
export declare function getVideoCaptureBuilder(): VideoCaptureBuilder;
/**
 * Get LimitlessIntervalCapture.Builder for take limitless interval shooting.
 *
 * @function getLimitlessIntervalCaptureBuilder
 * @return created LimitlessIntervalCaptureBuilder instance
 */
export declare function getLimitlessIntervalCaptureBuilder(): LimitlessIntervalCaptureBuilder;
/**
 * Get ShotCountSpecifiedIntervalCapture.Builder for take interval shooting with the shot count specified.
 *
 * @function getShotCountSpecifiedIntervalCaptureBuilder
 * @param {shotCount} shot count specified
 * @return created ShotCountSpecifiedIntervalCaptureBuilder instance
 */
export declare function getShotCountSpecifiedIntervalCaptureBuilder(shotCount: number): ShotCountSpecifiedIntervalCaptureBuilder;
/**
 * Get CompositeIntervalCapture.Builder for take interval composite shooting.
 *
 * @function getCompositeIntervalCaptureBuilder
 * @param {shootingTimeSec} Shooting time for interval composite shooting (sec)
 * @return created CompositeIntervalCaptureBuilder instance
 */
export declare function getCompositeIntervalCaptureBuilder(shootingTimeSec: number): CompositeIntervalCaptureBuilder;
/**
 * Get BurstCapture.Builder for take burst shooting.
 *
 * @function getBurstCaptureBuilder
 * @param burstOption Burst shooting setting.
 * @return created BurstCaptureBuilder instance
 */
export declare function getBurstCaptureBuilder(burstCaptureNum: BurstCaptureNumEnum, burstBracketStep: BurstBracketStepEnum, burstCompensation: BurstCompensationEnum, burstMaxExposureTime: BurstMaxExposureTimeEnum, burstEnableIsoControl: BurstEnableIsoControlEnum, burstOrder: BurstOrderEnum): BurstCaptureBuilder;
/**
 * Get MultiBracketCapture.Builder for take multi bracket shooting.
 *
 * @function getMultiBracketCaptureBuilder
 * @return created MultiBracketCaptureBuilder instance
 */
export declare function getMultiBracketCaptureBuilder(): MultiBracketCaptureBuilder;
/**
 * Get ContinuousCapture.Builder for take limitless interval shooting.
 *
 * @function getContinuousCaptureBuilder
 * @return created ContinuousCaptureBuilder instance
 */
export declare function getContinuousCaptureBuilder(): ContinuousCaptureBuilder;
/**
 * Start live preview.
 * preview frame (JPEG DataURL) send THETA_EVENT_NAME event as
 * {
 *   "data": "DataURL of JPEG Frame"
 * }
 *
 * @function StartLivePreview
 * @return promise of boolean result
 */
export declare function getLivePreview(): Promise<boolean>;
/**
 * Stop live preview.
 *
 * @function StopLivePreview
 * @return promise of boolean result
 */
export declare function stopLivePreview(): Promise<boolean>;
/**
 * Restore setting to THETA
 *
 * @function restoreSettings
 * @return promise of boolean result
 */
export declare function restoreSettings(): Promise<boolean>;
/**
 * Stop running self-timer.
 *
 * @function stopSelfTimer
 * @return promise of boolean result
 */
export declare function stopSelfTimer(): Promise<boolean>;
/**
 * Converts the movie format of a saved movie.
 *
 * @function convertVideoFormats
 * @param {string} fileUrl URL of a saved movie file to convert
 * @param {boolean} toLowResolution If true generates lower resolution
 *   video, otherwise same resolution.
 * @param {boolean} applyTopBottomCorrection apply Top/bottom
 *   correction. This parameter is ignored on Theta X.
 * @param onProgress the block for convertVideoFormats progress
 * @return promise of URL of a converted movie file.
 */
export declare function convertVideoFormats(fileUrl: string, toLowResolution: boolean, applyTopBottomCorrection: boolean, onProgress?: (completion: number) => void): Promise<string>;
/**
 * Cancels the movie format conversion.
 *
 * @function cancelVideoConvert
 * @return promise of boolean result
 */
export declare function cancelVideoConvert(): Promise<boolean>;
/**
 * Turns the wireless LAN off.
 *
 * @function finishWlan
 * @return promise of boolean result
 */
export declare function finishWlan(): Promise<boolean>;
/**
 * Registers identification information (UUID) of a BLE device.
 *
 * @function setBluetoothDevice
 * @param {string} uuid UUID of the BLE device to set.
 * @return promise of String result
 */
export declare function setBluetoothDevice(uuid: string): Promise<String>;
/**
 * Returns the connected THETA model.
 *
 * @function getThetaModel
 * @return promise of THETA model
 **/
export declare function getThetaModel(): Promise<ThetaModel | undefined>;
/**
 * Get basic information about Theta.
 *
 * @function getThetaInfo
 * @return promise of ThetaInfo
 **/
export declare function getThetaInfo(): Promise<ThetaInfo>;
/**
 * Acquires open source license information related to the camera.
 *
 * @function getThetaLicense
 * @return Promise of string result, HTML string of the license.
 */
export declare function getThetaLicense(): Promise<string>;
/**
 * Get current state of Theta.
 *
 * @function getThetaState
 * @return promise of ThetaState
 **/
export declare function getThetaState(): Promise<ThetaState>;
/**
 * Lists information of images and videos in Theta.
 *
 * @function listFiles
 * @param {FileTypeEnum} fileType Type of the files to be listed.
 * @param {number} startPosition The position of the first file to be
 *   returned in the list. 0 represents the first file.  If
 *   startPosition is larger than the position of the last file, an
 *   empty list is returned.
 * @param {number} entryCount Desired number of entries to return.  If
 *   entryCount is more than the number of remaining files, just
 *   return entries of actual remaining files.
 * @param {StorageEnum} storage Desired storage. If omitted, return current storage. (RICOH THETA X Version 2.00.0 or later)
 * @return promise with a list of file information and number of totalEntries.
 *   see [camera.listFiles](https://github.com/ricohapi/theta-api-specs/blob/main/theta-web-api-v2.1/commands/camera.list_files.md).
 */
export declare function listFiles(fileTypeEnum: FileTypeEnum, startPosition: number | undefined, entryCount: number, storage?: StorageEnum): Promise<ThetaFiles>;
/**
 * Delete files in Theta.
 *
 * @function deleteFiles
 * @param {string[]} fileUrls URLs of the file to be deleted.
 * @return promise of boolean result
 */
export declare function deleteFiles(fileUrls: string[]): Promise<boolean>;
/**
 * Delete all files in Theta.
 *
 * @function deleteAllFiles
 * @return promise of boolean result
 */
export declare function deleteAllFiles(): Promise<boolean>;
/**
 * Delete all image files in Theta.
 *
 * @function deleteAllImageFiles
 * @return promise of boolean result
 */
export declare function deleteAllImageFiles(): Promise<boolean>;
/**
 * Delete all video files in Theta.
 *
 * @function deleteAllVideoFiles
 * @return promise of boolean result
 */
export declare function deleteAllVideoFiles(): Promise<boolean>;
/**
 * Acquires the properties and property support specifications for
 * shooting, the camera, etc.
 *
 * @function getOptions
 * @param {OptionNameEnum[]} optionNames List of OptionNameEnum.
 * @return promise of Options acquired
 */
export declare function getOptions(optionNames: OptionNameEnum[]): Promise<Options>;
/**
 * Property settings for shooting, the camera, etc.
 *
 * @function setOptions
 * @param {Options} options Camera setting options.
 * @return promise of boolean result
 */
export declare function setOptions(options: Options): Promise<boolean>;
/**
 * Get metadata of a still image
 *
 * @function getMetadata
 * @param {string} fileUrl URL of a still image file to get metadata
 * @return promise of MetaInfo
 */
export declare function getMetadata(fileUrl: string): Promise<MetaInfo>;
/**
 * Acquires the access point list used in client mode.
 *
 * @function listAccessPoints
 * @return promise of AccessPoint list
 */
export declare function listAccessPoints(): Promise<AccessPoint[]>;
/**
 * Set access point. IP address is set dynamically.
 *
 * @function setAccessPointDynamically
 * @param {string} ssid SSID of the access point.
 * @param {} params - Optional parameters for additional configuration.
 * @param {boolean} params.ssidStealth true if SSID stealth is enabled.
 * @param {AuthModeEnum} params.authMode Authentication mode.
 * @param {string} params.password Password. Not set if authMode is “NONE”.
 * @param {number} params.connectionPriority Connection priority 1 to 5.
 * @param {Proxy} params.proxy Proxy information to be used for the access point.
 * @return promise of boolean result
 */
export declare function setAccessPointDynamically(ssid: string, params?: {
    ssidStealth?: boolean;
    authMode?: AuthModeEnum;
    password?: string;
    connectionPriority?: number;
    proxy?: Proxy;
}): Promise<boolean>;
/**
 * Set access point. IP address is set statically.
 *
 * @function setAccessPointStatically
 * @param {string} ssid SSID of the access point.
 * @param {string} ipAddress IP address assigns to Theta.
 * @param {string} subnetMask Subnet mask.
 * @param {string} defaultGateway Default gateway.
 * @param {} params - Optional parameters for additional configuration.
 * @param {boolean} params.ssidStealth True if SSID stealth is enabled.
 * @param {AuthModeEnum} params.authMode Authentication mode.
 * @param {string} params.password Password. Not set if authMode is “NONE”.
 * @param {number} params.connectionPriority Connection priority 1 to 5.
 * @param {string} params.dns1 Primary DNS server.
 * @param {string} params.dns2 Secondary DNS server.
 * @param {Proxy} params.proxy Proxy information to be used for the access point.
 * @return promise of boolean result
 */
export declare function setAccessPointStatically(ssid: string, ipAddress: string, subnetMask: string, defaultGateway: string, params?: {
    ssidStealth?: boolean;
    authMode?: AuthModeEnum;
    password?: string;
    connectionPriority?: number;
    dns1?: string;
    dns2?: string;
    proxy?: Proxy;
}): Promise<boolean>;
/**
 * Updates the connection priority of the access point.
 *
 * @function setAccessPointConnectionPriority
 * @param {string} ssid SSID of the access point.
 * @param {number} connectionPriority Connection priority 1 to 5.
 * @param {boolean} ssidStealth True if SSID stealth is enabled.
 * @return promise of boolean result
 */
export declare function setAccessPointConnectionPriority(ssid: string, connectionPriority: number, ssidStealth: boolean): Promise<boolean>;
/**
 * Deletes access point information used in client mode.
 *
 * @function deleteAccessPoint
 * @param {string} ssid SSID of the access point to delete.
 * @return promise of boolean result
 */
export declare function deleteAccessPoint(ssid: string): Promise<boolean>;
/**
 * Acquires the shooting properties set by the camera._setMySetting command.
 * Just for Theta V and later.
 *
 * @function getMySetting
 * @param captureMode The target shooting mode
 * @returns Options of my setting
 */
export declare function getMySetting(captureMode: CaptureModeEnum): Promise<Options>;
/**
 * Acquires the shooting properties set by the camera._setMySetting command.
 * Just for Theta S and SC.
 *
 * @function getMySetting
 * @param optionNames List of option names to acquire
 * @returns Options of my setting
 */
export declare function getMySettingFromOldModel(optionNames: OptionNameEnum[]): Promise<Options>;
/**
 * Registers shooting conditions in My Settings
 * @function setMySetting
 * @param captureMode The target shooting mode.  RICOH THETA S and SC do not support My Settings in video capture mode.
 * @param options registered to My Settings
 * @returns Promise of boolean result, always true
 */
export declare function setMySetting(captureMode: CaptureModeEnum, options: Options): Promise<boolean>;
/**
 * Delete shooting conditions in My Settings. Supported just by Theta X and Z1.
 * @param captureMode The target shooting mode
 * @returns Promise of boolean result, always true
 */
export declare function deleteMySetting(captureMode: CaptureModeEnum): Promise<boolean>;
/**
 * Acquires a list of installed plugins
 * @function listPlugins
 * @return A list of the plugins installed in Theta.
 */
export declare function listPlugins(): Promise<PluginInfo[]>;
/**
 * Sets the installed plugin for boot. Supported just by Theta V.
 * @function setPlugin
 * @param packageName Package name of the target plugin.
 * @return Promise of boolean result, always true.
 */
export declare function setPlugin(packageName: string): Promise<boolean>;
/**
 * Start the plugin specified by the [packageName].
 * @function startPlugin
 * @param packageName Package name of the target plugin.
 * @return Promise of boolean result, always true.
 */
export declare function startPlugin(packageName: string): Promise<boolean>;
/**
 * Stop the running plugin.
 * @function stopPlugin
 * @return Promise of boolean result, always true.
 */
export declare function stopPlugin(): Promise<boolean>;
/**
 * Acquires the license for the installed plugin.
 * @function getPluginLicense
 * @param packageName Package name of the target plugin.
 * @return Promise of string result, HTML string of the license.
 */
export declare function getPluginLicense(packageName: string): Promise<string>;
/**
 * Return the plugin orders.  Supported just by Theta X and Z1.
 * @function getPluginOrders
 * @return Promise of string[] result, list of package names of plugins.
 */
export declare function getPluginOrders(): Promise<string[]>;
/**
 * Sets the plugin orders.  Supported just by Theta X and Z1.
 * @function setPluginOrders
 * @param plugins list of package names of plugins.
 * For Z1, list size must be three. No restrictions for the size for X.
 * When not specifying, set an empty string.
 * If an empty string is placed mid-way, it will be moved to the front.
 * Specifying zero package name will result in an error
 * @return Promise of boolean result, always true.
 */
export declare function setPluginOrders(plugins: string[]): Promise<boolean>;
export declare function getEventWebSocket(): Promise<EventWebSocket>;
//# sourceMappingURL=theta-repository.d.ts.map