import { type NamespaceEvents } from "./utils.js";
/**
 * @public
 */
export declare type PowerMonitorEvents = NamespaceEvents<{
    suspend: () => void;
    resume: () => void;
    "on-ac": () => void;
    "on-battery": () => void;
    "thermal-state-change": (details: {
        state: string;
    }) => void;
    "speed-limit-change": (details: {
        limit: number;
    }) => void;
    shutdown: (event: {
        preventDefault: () => void;
    }) => void;
    "lock-screen": () => void;
    "unlock-screen": () => void;
    "user-did-become-active": () => void;
    "user-did-resign-active": () => void;
}>;
/**
 * Calculate the system idle state.
 * @param idleThreshold - The amount of time (in seconds) before considered idle.
 * @returns The system's current idle state. Can be active, idle, locked or unknown.
 * @public
 */
export declare function getSystemIdleState(idleThreshold: number): Promise<"active" | "idle" | "locked" | "unknown">;
/**
 * Calculate system idle time in seconds.
 * @returns Idle time in seconds.
 * @public
 */
export declare function getSystemIdleTime(): Promise<number>;
/**
 * Get the system's current thermal state. (macOS only)
 * @returns The system's current thermal state. Can be unknown, nominal, fair, serious, or critical.
 * @public
 */
export declare function getCurrentThermalState(): Promise<"critical" | "unknown" | "nominal" | "fair" | "serious">;
/**
 * Check if the system is on battery power.
 * @returns Whether the system is on battery power.
 * @public
 */
export declare function isOnBatteryPower(): Promise<boolean>;
/**
 * Listen for powerMonitor events.
 * @public
 */
export declare const on: <E extends "suspend" | "resume" | "on-ac" | "on-battery" | "thermal-state-change" | "speed-limit-change" | "shutdown" | "lock-screen" | "unlock-screen" | "user-did-become-active" | "user-did-resign-active">(eventName: E, callback: NamespaceEvents<{
    suspend: () => void;
    resume: () => void;
    "on-ac": () => void;
    "on-battery": () => void;
    "thermal-state-change": (details: {
        state: string;
    }) => void;
    "speed-limit-change": (details: {
        limit: number;
    }) => void;
    shutdown: (event: {
        preventDefault: () => void;
    }) => void;
    "lock-screen": () => void;
    "unlock-screen": () => void;
    "user-did-become-active": () => void;
    "user-did-resign-active": () => void;
}>[E], args_0?: {
    ref?: import("@todesktop/client-util").InstanceRefObject;
    preventDefault?: boolean;
}) => Promise<() => Promise<void>>;
/**
 * Remove all listeners for powerMonitor events.
 * @public
 */
export declare const removeAllListeners: <E extends "suspend" | "resume" | "on-ac" | "on-battery" | "thermal-state-change" | "speed-limit-change" | "shutdown" | "lock-screen" | "unlock-screen" | "user-did-become-active" | "user-did-resign-active">(eventName: E, args_0?: {
    ref?: import("@todesktop/client-util").InstanceRefObject;
}) => Promise<void>;
