import type { AutoUpdaterEvents, UpdateCheckResult } from "@todesktop/client-todesktop-runtime-types/dist/AutoUpdater.js";
import type { CheckForUpdatesInput, RestartAndInstallInput } from "@todesktop/client-todesktop-runtime-types/dist/types";
import { type NamespaceEvents } from "./utils.js";
/**
 * Checks for update and downloads if available.
 * @public
 */
export declare function checkForUpdates(options?: CheckForUpdatesInput): Promise<UpdateCheckResult>;
/**
 * Restarts the app and installs the update after it has been downloaded. It should only be called after update-downloaded has been emitted.
 *
 * @param options - isSilent: *windows-only* Runs the installer in silent mode. Defaults to `false`; isForceRunAfter: Run the app after finish even on silent install. Not applicable for macOS. Ignored if `isSilent` is set to `false`.
 * @public
 */
export declare function restartAndInstall(options?: RestartAndInstallInput): Promise<void>;
/**
 * @public
 */
export declare type ToDesktopUpdaterEvents = NamespaceEvents<AutoUpdaterEvents>;
/**
 * Subcribes to an todesktopUpdater event.
 *
 * @param eventName - The event name to subscribe to.
 * @param callback - The callback function to execute when the event occurs.
 * @returns unsubscribe callback.
 * @public
 */
export declare const on: <E extends keyof AutoUpdaterEvents>(eventName: E, callback: NamespaceEvents<AutoUpdaterEvents>[E], args_0?: {
    ref?: import("@todesktop/client-util").InstanceRefObject;
    preventDefault?: boolean;
}) => Promise<() => Promise<void>>;
/**
 * Unsubscribes all todesktopUpdater listeners from a target event.
 *
 * @param options - eventName: The event name to unsubscribe from;
 * @public
 */
export declare const removeAllListeners: <E extends keyof AutoUpdaterEvents>(eventName: E, args_0?: {
    ref?: import("@todesktop/client-util").InstanceRefObject;
}) => Promise<void>;
