552 lines
20 KiB
TypeScript
552 lines
20 KiB
TypeScript
/// <reference path="./gio-2.0.d.ts" />
|
|
/// <reference path="./gobject-2.0.d.ts" />
|
|
/// <reference path="./glib-2.0.d.ts" />
|
|
/// <reference path="./gmodule-2.0.d.ts" />
|
|
|
|
/**
|
|
* Type Definitions for Gjs (https://gjs.guide/)
|
|
*
|
|
* These type definitions are automatically generated, do not edit them by hand.
|
|
* If you found a bug fix it in `ts-for-gir` or create a bug report on https://github.com/gjsify/ts-for-gir
|
|
*
|
|
* The based EJS template file is used for the generated .d.ts file of each GIR module like Gtk-4.0, GObject-2.0, ...
|
|
*/
|
|
|
|
declare module 'gi://AstalBluetooth?version=0.1' {
|
|
// Module dependencies
|
|
import type Gio from 'gi://Gio?version=2.0';
|
|
import type GObject from 'gi://GObject?version=2.0';
|
|
import type GLib from 'gi://GLib?version=2.0';
|
|
import type GModule from 'gi://GModule?version=2.0';
|
|
|
|
export namespace AstalBluetooth {
|
|
/**
|
|
* AstalBluetooth-0.1
|
|
*/
|
|
|
|
const MAJOR_VERSION: number;
|
|
const MINOR_VERSION: number;
|
|
const MICRO_VERSION: number;
|
|
const VERSION: string;
|
|
/**
|
|
* Gets the default singleton Bluetooth object.
|
|
*/
|
|
function get_default(): Bluetooth;
|
|
namespace Adapter {
|
|
// Constructor properties interface
|
|
|
|
interface ConstructorProps extends GObject.Object.ConstructorProps {
|
|
uuids: string[];
|
|
discovering: boolean;
|
|
modalias: string;
|
|
name: string;
|
|
class: number;
|
|
address: string;
|
|
discoverable: boolean;
|
|
pairable: boolean;
|
|
powered: boolean;
|
|
alias: string;
|
|
discoverable_timeout: number;
|
|
discoverableTimeout: number;
|
|
pairable_timeout: number;
|
|
pairableTimeout: number;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Object representing an [adapter](https://github.com/RadiusNetworks/bluez/blob/master/doc/adapter-api.txt).
|
|
*/
|
|
class Adapter extends GObject.Object {
|
|
static $gtype: GObject.GType<Adapter>;
|
|
|
|
// Properties
|
|
|
|
/**
|
|
* List of 128-bit UUIDs that represents the available local services.
|
|
*/
|
|
get uuids(): string[];
|
|
/**
|
|
* Indicates that a device discovery procedure is active.
|
|
*/
|
|
get discovering(): boolean;
|
|
/**
|
|
* Local Device ID information in modalias format used by the kernel and udev.
|
|
*/
|
|
get modalias(): string;
|
|
/**
|
|
* The Bluetooth system name (pretty hostname).
|
|
*/
|
|
get name(): string;
|
|
/**
|
|
* The Bluetooth class of device.
|
|
*/
|
|
get class(): number;
|
|
/**
|
|
* The Bluetooth device address.
|
|
*/
|
|
get address(): string;
|
|
/**
|
|
* Switch an adapter to discoverable or non-discoverable to either make it visible or hide it.
|
|
*/
|
|
get discoverable(): boolean;
|
|
set discoverable(val: boolean);
|
|
/**
|
|
* Switch an adapter to pairable or non-pairable.
|
|
*/
|
|
get pairable(): boolean;
|
|
set pairable(val: boolean);
|
|
/**
|
|
* Switch an adapter on or off.
|
|
*/
|
|
get powered(): boolean;
|
|
set powered(val: boolean);
|
|
/**
|
|
* The Bluetooth friendly name.
|
|
* In case no alias is set, it will return [property`AstalBluetooth`.Adapter:name].
|
|
*/
|
|
get alias(): string;
|
|
set alias(val: string);
|
|
/**
|
|
* The discoverable timeout in seconds. A value of zero means that the timeout is disabled and it will stay in discoverable/limited mode forever
|
|
* until [method`AstalBluetooth`.Adapter.stop_discovery] is invoked. The default value for the discoverable timeout should be `180`.
|
|
*/
|
|
get discoverable_timeout(): number;
|
|
set discoverable_timeout(val: number);
|
|
/**
|
|
* The discoverable timeout in seconds. A value of zero means that the timeout is disabled and it will stay in discoverable/limited mode forever
|
|
* until [method`AstalBluetooth`.Adapter.stop_discovery] is invoked. The default value for the discoverable timeout should be `180`.
|
|
*/
|
|
get discoverableTimeout(): number;
|
|
set discoverableTimeout(val: number);
|
|
/**
|
|
* The pairable timeout in seconds.
|
|
* A value of zero means that the timeout is disabled and it will stay in pairable mode forever. The default value for pairable timeout should be
|
|
* disabled `0`.
|
|
*/
|
|
get pairable_timeout(): number;
|
|
set pairable_timeout(val: number);
|
|
/**
|
|
* The pairable timeout in seconds.
|
|
* A value of zero means that the timeout is disabled and it will stay in pairable mode forever. The default value for pairable timeout should be
|
|
* disabled `0`.
|
|
*/
|
|
get pairableTimeout(): number;
|
|
set pairableTimeout(val: number);
|
|
|
|
// Constructors
|
|
|
|
constructor(properties?: Partial<Adapter.ConstructorProps>, ...args: any[]);
|
|
|
|
_init(...args: any[]): void;
|
|
|
|
// Methods
|
|
|
|
/**
|
|
* This removes the remote device and the pairing information.
|
|
* Possible errors: `InvalidArguments`, `Failed`.
|
|
* @param device
|
|
*/
|
|
remove_device(device: Device): void;
|
|
/**
|
|
* This method starts the device discovery procedure.
|
|
* Possible errors: `NotReady`, `Failed`.
|
|
*/
|
|
start_discovery(): void;
|
|
/**
|
|
* This method will cancel any previous [method`AstalBluetooth`.Adapter.start_discovery] procedure.
|
|
* Possible errors: `NotReady`, `Failed`, `NotAuthorized`.
|
|
*/
|
|
stop_discovery(): void;
|
|
get_uuids(): string[];
|
|
get_discovering(): boolean;
|
|
get_modalias(): string;
|
|
get_name(): string;
|
|
get_class(): number;
|
|
get_address(): string;
|
|
get_discoverable(): boolean;
|
|
set_discoverable(value: boolean): void;
|
|
get_pairable(): boolean;
|
|
set_pairable(value: boolean): void;
|
|
get_powered(): boolean;
|
|
set_powered(value: boolean): void;
|
|
get_alias(): string;
|
|
set_alias(value: string): void;
|
|
get_discoverable_timeout(): number;
|
|
set_discoverable_timeout(value: number): void;
|
|
get_pairable_timeout(): number;
|
|
set_pairable_timeout(value: number): void;
|
|
}
|
|
|
|
namespace Bluetooth {
|
|
// Signal callback interfaces
|
|
|
|
interface DeviceAdded {
|
|
(device: Device): void;
|
|
}
|
|
|
|
interface DeviceRemoved {
|
|
(device: Device): void;
|
|
}
|
|
|
|
interface AdapterAdded {
|
|
(adapter: Adapter): void;
|
|
}
|
|
|
|
interface AdapterRemoved {
|
|
(adapter: Adapter): void;
|
|
}
|
|
|
|
// Constructor properties interface
|
|
|
|
interface ConstructorProps extends GObject.Object.ConstructorProps {
|
|
is_powered: boolean;
|
|
isPowered: boolean;
|
|
is_connected: boolean;
|
|
isConnected: boolean;
|
|
adapter: Adapter;
|
|
adapters: Adapter[];
|
|
devices: Device[];
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Manager object for `org.bluez`.
|
|
*/
|
|
class Bluetooth extends GObject.Object {
|
|
static $gtype: GObject.GType<Bluetooth>;
|
|
|
|
// Properties
|
|
|
|
/**
|
|
* `true` if any of the [property`AstalBluetooth`.Bluetooth:adapters] are powered.
|
|
*/
|
|
get is_powered(): boolean;
|
|
set is_powered(val: boolean);
|
|
/**
|
|
* `true` if any of the [property`AstalBluetooth`.Bluetooth:adapters] are powered.
|
|
*/
|
|
get isPowered(): boolean;
|
|
set isPowered(val: boolean);
|
|
/**
|
|
* `true` if any of the [property`AstalBluetooth`.Bluetooth:devices] is connected.
|
|
*/
|
|
get is_connected(): boolean;
|
|
set is_connected(val: boolean);
|
|
/**
|
|
* `true` if any of the [property`AstalBluetooth`.Bluetooth:devices] is connected.
|
|
*/
|
|
get isConnected(): boolean;
|
|
set isConnected(val: boolean);
|
|
/**
|
|
* The first registered adapter which is usually the only adapter.
|
|
*/
|
|
get adapter(): Adapter;
|
|
/**
|
|
* List of adapters available on the host device.
|
|
*/
|
|
get adapters(): Adapter[];
|
|
/**
|
|
* List of registered devices on the `org.bluez` bus.
|
|
*/
|
|
get devices(): Device[];
|
|
|
|
// Constructors
|
|
|
|
constructor(properties?: Partial<Bluetooth.ConstructorProps>, ...args: any[]);
|
|
|
|
_init(...args: any[]): void;
|
|
|
|
static ['new'](): Bluetooth;
|
|
|
|
// Signals
|
|
|
|
connect(id: string, callback: (...args: any[]) => any): number;
|
|
connect_after(id: string, callback: (...args: any[]) => any): number;
|
|
emit(id: string, ...args: any[]): void;
|
|
connect(signal: 'device-added', callback: (_source: this, device: Device) => void): number;
|
|
connect_after(signal: 'device-added', callback: (_source: this, device: Device) => void): number;
|
|
emit(signal: 'device-added', device: Device): void;
|
|
connect(signal: 'device-removed', callback: (_source: this, device: Device) => void): number;
|
|
connect_after(signal: 'device-removed', callback: (_source: this, device: Device) => void): number;
|
|
emit(signal: 'device-removed', device: Device): void;
|
|
connect(signal: 'adapter-added', callback: (_source: this, adapter: Adapter) => void): number;
|
|
connect_after(signal: 'adapter-added', callback: (_source: this, adapter: Adapter) => void): number;
|
|
emit(signal: 'adapter-added', adapter: Adapter): void;
|
|
connect(signal: 'adapter-removed', callback: (_source: this, adapter: Adapter) => void): number;
|
|
connect_after(signal: 'adapter-removed', callback: (_source: this, adapter: Adapter) => void): number;
|
|
emit(signal: 'adapter-removed', adapter: Adapter): void;
|
|
|
|
// Static methods
|
|
|
|
/**
|
|
* Gets the default singleton Bluetooth object.
|
|
*/
|
|
static get_default(): Bluetooth;
|
|
|
|
// Methods
|
|
|
|
/**
|
|
* Toggle the [property`AstalBluetooth`.Adapter:powered] property of the [property`AstalBluetooth`.Bluetooth:adapter].
|
|
*/
|
|
toggle(): void;
|
|
get_is_powered(): boolean;
|
|
get_is_connected(): boolean;
|
|
get_adapter(): Adapter | null;
|
|
get_adapters(): Adapter[];
|
|
get_devices(): Device[];
|
|
}
|
|
|
|
namespace Device {
|
|
// Constructor properties interface
|
|
|
|
interface ConstructorProps extends GObject.Object.ConstructorProps {
|
|
uuids: string[];
|
|
connected: boolean;
|
|
legacy_pairing: boolean;
|
|
legacyPairing: boolean;
|
|
paired: boolean;
|
|
rssi: number;
|
|
adapter: never;
|
|
address: string;
|
|
icon: string;
|
|
modalias: string;
|
|
name: string;
|
|
appearance: number;
|
|
class: number;
|
|
connecting: boolean;
|
|
blocked: boolean;
|
|
trusted: boolean;
|
|
battery_percentage: number;
|
|
batteryPercentage: number;
|
|
alias: string;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Object representing a [device](https://github.com/luetzel/bluez/blob/master/doc/device-api.txt).
|
|
*/
|
|
class Device extends GObject.Object {
|
|
static $gtype: GObject.GType<Device>;
|
|
|
|
// Properties
|
|
|
|
/**
|
|
* List of 128-bit UUIDs that represents the available remote services.
|
|
*/
|
|
get uuids(): string[];
|
|
/**
|
|
* Indicates if the remote device is currently connected.
|
|
*/
|
|
get connected(): boolean;
|
|
/**
|
|
* `true` if the device only supports the pre-2.1 pairing mechanism.
|
|
*/
|
|
get legacy_pairing(): boolean;
|
|
/**
|
|
* `true` if the device only supports the pre-2.1 pairing mechanism.
|
|
*/
|
|
get legacyPairing(): boolean;
|
|
/**
|
|
* Indicates if the remote device is paired.
|
|
*/
|
|
get paired(): boolean;
|
|
/**
|
|
* Received Signal Strength Indicator of the remote device (inquiry or advertising).
|
|
*/
|
|
get rssi(): number;
|
|
/**
|
|
* The object path of the adapter the device belongs to.
|
|
*/
|
|
get adapter(): never;
|
|
/**
|
|
* The Bluetooth device address of the remote device.
|
|
*/
|
|
get address(): string;
|
|
/**
|
|
* Proposed icon name.
|
|
*/
|
|
get icon(): string;
|
|
/**
|
|
* Remote Device ID information in modalias format used by the kernel and udev.
|
|
*/
|
|
get modalias(): string;
|
|
/**
|
|
* The Bluetooth remote name.
|
|
* It is always better to use [property`AstalBluetooth`.Device:alias].
|
|
*/
|
|
get name(): string;
|
|
/**
|
|
* External appearance of device, as found on GAP service.
|
|
*/
|
|
get appearance(): number;
|
|
/**
|
|
* The Bluetooth class of device of the remote device.
|
|
*/
|
|
get class(): number;
|
|
/**
|
|
* Indicates if this device is currently trying to be connected.
|
|
*/
|
|
get connecting(): boolean;
|
|
set connecting(val: boolean);
|
|
/**
|
|
* If set to `true` any incoming connections from the device will be immediately rejected.
|
|
*/
|
|
get blocked(): boolean;
|
|
set blocked(val: boolean);
|
|
/**
|
|
* Indicates if the remote is seen as trusted.
|
|
*/
|
|
get trusted(): boolean;
|
|
set trusted(val: boolean);
|
|
/**
|
|
* The percentage of battery left on the device if it has one, else -1.
|
|
*/
|
|
get battery_percentage(): number;
|
|
/**
|
|
* The percentage of battery left on the device if it has one, else -1.
|
|
*/
|
|
get batteryPercentage(): number;
|
|
/**
|
|
* The name alias for the remote device.
|
|
* In case no alias is set, it will return the remote device [property`AstalBluetooth`.Device:name].
|
|
*/
|
|
get alias(): string;
|
|
set alias(val: string);
|
|
|
|
// Constructors
|
|
|
|
constructor(properties?: Partial<Device.ConstructorProps>, ...args: any[]);
|
|
|
|
_init(...args: any[]): void;
|
|
|
|
// Methods
|
|
|
|
/**
|
|
* This is a generic method to connect any profiles the remote device supports that can be connected to.
|
|
* Possible errors: `NotReady`, `Failed`, `InProgress`, `AlreadyConnected`.
|
|
*/
|
|
connect_device(): Promise<void>;
|
|
/**
|
|
* This is a generic method to connect any profiles the remote device supports that can be connected to.
|
|
* Possible errors: `NotReady`, `Failed`, `InProgress`, `AlreadyConnected`.
|
|
* @param _callback_
|
|
*/
|
|
connect_device(_callback_: Gio.AsyncReadyCallback<this> | null): void;
|
|
/**
|
|
* This is a generic method to connect any profiles the remote device supports that can be connected to.
|
|
* Possible errors: `NotReady`, `Failed`, `InProgress`, `AlreadyConnected`.
|
|
* @param _callback_
|
|
*/
|
|
connect_device(_callback_?: Gio.AsyncReadyCallback<this> | null): Promise<void> | void;
|
|
connect_device_finish(_res_: Gio.AsyncResult): void;
|
|
/**
|
|
* This method gracefully disconnects all connected profiles.
|
|
* Possible errors: `NotConnected`.
|
|
*/
|
|
disconnect_device(): Promise<void>;
|
|
/**
|
|
* This method gracefully disconnects all connected profiles.
|
|
* Possible errors: `NotConnected`.
|
|
* @param _callback_
|
|
*/
|
|
disconnect_device(_callback_: Gio.AsyncReadyCallback<this> | null): void;
|
|
/**
|
|
* This method gracefully disconnects all connected profiles.
|
|
* Possible errors: `NotConnected`.
|
|
* @param _callback_
|
|
*/
|
|
disconnect_device(_callback_?: Gio.AsyncReadyCallback<this> | null): Promise<void> | void;
|
|
disconnect_device_finish(_res_: Gio.AsyncResult): void;
|
|
/**
|
|
* This method connects a specific profile of this device. The UUID provided is the remote service UUID for the profile.
|
|
* Possible errors: `Failed`, `InProgress`, `InvalidArguments`, `NotAvailable`, `NotReady`.
|
|
* @param uuid the remote service UUID.
|
|
*/
|
|
connect_profile(uuid: string): void;
|
|
/**
|
|
* This method disconnects a specific profile of this device.
|
|
* Possible errors: `Failed`, `InProgress`, `InvalidArguments`, `NotSupported`.
|
|
* @param uuid the remote service UUID.
|
|
*/
|
|
disconnect_profile(uuid: string): void;
|
|
/**
|
|
* This method will connect to the remote device and initiate pairing.
|
|
* Possible errors: `InvalidArguments`, `Failed`, `AlreadyExists`, `AuthenticationCanceled`, `AuthenticationFailed`, `AuthenticationRejected`,
|
|
* `AuthenticationTimeout`, `ConnectionAttemptFailed`.
|
|
*/
|
|
pair(): void;
|
|
/**
|
|
* This method can be used to cancel a pairing operation initiated by [method`AstalBluetooth`.Device.pair].
|
|
* Possible errors: `DoesNotExist`, `Failed`.
|
|
*/
|
|
cancel_pairing(): void;
|
|
get_uuids(): string[];
|
|
get_connected(): boolean;
|
|
get_legacy_pairing(): boolean;
|
|
get_paired(): boolean;
|
|
get_rssi(): number;
|
|
get_adapter(): never;
|
|
get_address(): string;
|
|
get_icon(): string;
|
|
get_modalias(): string;
|
|
get_name(): string;
|
|
get_appearance(): number;
|
|
get_class(): number;
|
|
get_connecting(): boolean;
|
|
get_blocked(): boolean;
|
|
set_blocked(value: boolean): void;
|
|
get_trusted(): boolean;
|
|
set_trusted(value: boolean): void;
|
|
get_battery_percentage(): number;
|
|
get_alias(): string;
|
|
set_alias(value: string): void;
|
|
}
|
|
|
|
type AdapterClass = typeof Adapter;
|
|
abstract class AdapterPrivate {
|
|
static $gtype: GObject.GType<AdapterPrivate>;
|
|
|
|
// Constructors
|
|
|
|
_init(...args: any[]): void;
|
|
}
|
|
|
|
type BluetoothClass = typeof Bluetooth;
|
|
abstract class BluetoothPrivate {
|
|
static $gtype: GObject.GType<BluetoothPrivate>;
|
|
|
|
// Constructors
|
|
|
|
_init(...args: any[]): void;
|
|
}
|
|
|
|
type DeviceClass = typeof Device;
|
|
abstract class DevicePrivate {
|
|
static $gtype: GObject.GType<DevicePrivate>;
|
|
|
|
// Constructors
|
|
|
|
_init(...args: any[]): void;
|
|
}
|
|
|
|
/**
|
|
* Name of the imported GIR library
|
|
* `see` https://gitlab.gnome.org/GNOME/gjs/-/blob/master/gi/ns.cpp#L188
|
|
*/
|
|
const __name__: string;
|
|
/**
|
|
* Version of the imported GIR library
|
|
* `see` https://gitlab.gnome.org/GNOME/gjs/-/blob/master/gi/ns.cpp#L189
|
|
*/
|
|
const __version__: string;
|
|
}
|
|
|
|
export default AstalBluetooth;
|
|
}
|
|
|
|
declare module 'gi://AstalBluetooth' {
|
|
import AstalBluetooth01 from 'gi://AstalBluetooth?version=0.1';
|
|
export default AstalBluetooth01;
|
|
}
|
|
// END
|