import { DisplayMediaRequestHandlerHandlerRequest, FromPartitionOptions, SerialPort, SerialPortRevokedDetails, WebContents } from "@todesktop/client-electron-types";
import type { InstanceRefObject } from "@todesktop/client-util";
import { type Ref } from "./invoke.js";
import { type NamespaceEvents } from "./utils.js";
/**
 * @public
 */
export declare type SessionEvents = NamespaceEvents<{
    "select-serial-port": (portList: SerialPort[], webContents: WebContents, callback: (portId: SerialPort["portId"]) => void) => void;
    "serial-port-added": (port: SerialPort, webContents: WebContents) => void;
    "serial-port-removed": (port: SerialPort, webContents: WebContents) => void;
    "serial-port-revoked": (details: SerialPortRevokedDetails) => void;
}>;
export declare function getAvailableSpellCheckerLanguages(): Promise<string[]>;
export declare function getSpellCheckerEnabled(): Promise<boolean>;
export declare function getDefaultSession(): Promise<InstanceRefObject>;
export declare function setSpellCheckerEnabled(enable: boolean): Promise<void>;
export declare function setSpellCheckerLanguages(languages: string[]): Promise<void>;
export declare function getSpellCheckerLanguages(): Promise<string[]>;
export declare function listWordsInSpellCheckerDictionary(): Promise<string[]>;
export declare function addWordToSpellCheckerDictionary(word: string): Promise<boolean>;
export declare function removeWordFromSpellCheckerDictionary(word: string): Promise<boolean>;
export declare function fromPartition(partition: string, options: FromPartitionOptions): Promise<InstanceRefObject>;
export declare function setDisplayMediaRequestHandler(ref: Ref | null, handler: (request: DisplayMediaRequestHandlerHandlerRequest, callback: (streams: unknown) => void) => void): Promise<void>;
export declare const on: <E extends "select-serial-port" | "serial-port-added" | "serial-port-removed" | "serial-port-revoked">(eventName: E, callback: NamespaceEvents<{
    "select-serial-port": (portList: SerialPort[], webContents: WebContents, callback: (portId: SerialPort["portId"]) => void) => void;
    "serial-port-added": (port: SerialPort, webContents: WebContents) => void;
    "serial-port-removed": (port: SerialPort, webContents: WebContents) => void;
    "serial-port-revoked": (details: SerialPortRevokedDetails) => void;
}>[E], args_0?: {
    ref?: InstanceRefObject;
    preventDefault?: boolean;
}) => Promise<() => Promise<void>>;
export declare const removeAllListeners: <E extends "select-serial-port" | "serial-port-added" | "serial-port-removed" | "serial-port-revoked">(eventName: E, args_0?: {
    ref?: InstanceRefObject;
}) => Promise<void>;
