///
import type { Configuration } from './core/items/configuration';
import type { MonitorInfo } from './core/items/monitorInfo';
declare type Unpromisify any> = (...args: Parameters) => ReturnType extends PromiseLike ? U : ReturnType;
declare type UnpromisifyWindowsSS = Unpromisify;
export declare class WindowsSS {
constructor();
}
export interface WindowsSS {
/**
* Captures a screenshot of the monitor matching the device index.
* @param deviceIndex Index of monitor according to Windows.
* @param config Additional options for capturing the screenshot.
* @returns The binary image data of the screenshot, with the format specified in `options.format`. `null` is returned instead if `save` was passed into the `config` parameter.
* @throws `NoMatchError`
* @throws `InvalidArgumentCountError`
* @throws `InvalidConfigurationError`
*/
captureMonitorByIndex(deviceIndex: number, config?: Configuration): Promise;
/**
* Captures a screenshot of the monitor matching the device index.
* @param deviceIndex Index of monitor according to Windows.
* @param config Additional options for capturing the screenshot.
* @returns The binary image data of the screenshot, with the format specified in `options.format`. `null` is returned instead if `save` was passed into the `config` parameter.
* @throws `NoMatchError`
* @throws `InvalidArgumentCountError`
* @throws `InvalidConfigurationError`
*/
captureMonitorByIndexSync: UnpromisifyWindowsSS<'captureMonitorByIndex'>;
/**
* Captures a screenshot of the monitor matching the device name.
* @param deviceName Name of monitor according to Windows.
* @param config Additional options for capturing the screenshot.
* @returns The binary image data of the screenshot, with the format specified in `options.format`. `null` is returned instead if `save` was passed into the `config` parameter.
* @throws `NoMatchError`
* @throws `InvalidArgumentCountError`
* @throws `InvalidConfigurationError`
*/
captureMonitorByName(deviceName: string, config?: Configuration): Promise;
/**
* Captures a screenshot of the monitor matching the device name.
* @param deviceName Name of monitor according to Windows.
* @param config Additional options for capturing the screenshot.
* @returns The binary image data of the screenshot, with the format specified in `options.format`. `null` is returned instead if `save` was passed into the `config` parameter.
* @throws `NoMatchError`
* @throws `InvalidArgumentCountError`
* @throws `InvalidConfigurationError`
*/
captureMonitorByNameSync: UnpromisifyWindowsSS<'captureMonitorByName'>;
/**
* Captures a screenshot of the primary monitor.
* @param config Additional options for capturing the screenshot.
* @returns The binary image data of the screenshot, with the format specified in `options.format`. `null` is returned instead if `save` was passed into the `config` parameter.
* @throws `InvalidConfigurationError`
*/
capturePrimaryMonitor(config: Configuration): Promise;
/**
* Captures a screenshot of the primary monitor.
* @param config Additional options for capturing the screenshot.
* @returns The binary image data of the screenshot, with the format specified in `options.format`. `null` is returned instead if `save` was passed into the `config` parameter.
* @throws `InvalidConfigurationError`
*/
capturePrimaryMonitorSync: UnpromisifyWindowsSS<'capturePrimaryMonitor'>;
/**
* Captures a screenshot of the window matching the title.
* @param title Title of window.
* @param config Additional options for capturing the screenshot.
* @returns The binary image data of the screenshot, with the format specified in `options.format`. `null` is returned instead if `save` was passed into the `config` parameter.
* @throws `InvalidConfigurationError`
*/
captureWindowByTitle(title: string, config?: Configuration): Promise;
/**
* Captures a screenshot of the window matching the title.
* @param title Title of window.
* @param config Additional options for capturing the screenshot.
* @returns The binary image data of the screenshot, with the format specified in `options.format`. `null` is returned instead if `save` was passed into the `config` parameter.
* @throws `InvalidConfigurationError`
*/
captureWindowByTitleSync: UnpromisifyWindowsSS<'captureWindowByTitle'>;
/**
* Captures a screenshot of the currently active/focused window.
* @param config Additional options for capturing the screenshot.
* @returns The binary image data of the screenshot, with the format specified in `options.format`. `null` is returned instead if `save` was passed into the `config` parameter.
* @throws `InvalidConfigurationError`
*/
captureActiveWindow(config?: Configuration): Promise;
/**
* Captures a screenshot of the currently active/focused window.
* @param config Additional options for capturing the screenshot.
* @returns The binary image data of the screenshot, with the format specified in `options.format`. `null` is returned instead if `save` was passed into the `config` parameter.
* @throws `InvalidConfigurationError`
*/
captureActiveWindowSync: UnpromisifyWindowsSS<'captureActiveWindow'>;
/**
* Returns information about the the currently connected monitors.
* @returns An array of [`MonitorInfo`](#monitorinfo)s gotten from the current system.
*/
getMonitorInfos(): Promise;
/**
* Returns information about the the currently connected monitors.
* @returns An array of [`MonitorInfo`](#monitorinfo)s gotten from the current system.
*/
getMonitorInfosSync: UnpromisifyWindowsSS<'getMonitorInfos'>;
}
export declare const captureMonitorByIndex: (deviceIndex: number, config?: Configuration | undefined) => Promise, captureMonitorByIndexSync: UnpromisifyWindowsSS<"captureMonitorByIndex">, captureMonitorByName: (deviceName: string, config?: Configuration | undefined) => Promise, captureMonitorByNameSync: UnpromisifyWindowsSS<"captureMonitorByName">, capturePrimaryMonitor: (config: Configuration) => Promise, capturePrimaryMonitorSync: UnpromisifyWindowsSS<"capturePrimaryMonitor">, captureWindowByTitle: (title: string, config?: Configuration | undefined) => Promise, captureWindowByTitleSync: UnpromisifyWindowsSS<"captureWindowByTitle">, captureActiveWindow: (config?: Configuration | undefined) => Promise, captureActiveWindowSync: UnpromisifyWindowsSS<"captureActiveWindow">, getMonitorInfos: () => Promise, getMonitorInfosSync: UnpromisifyWindowsSS<"getMonitorInfos">;
export {};