import * as DBus from "dbus-next";
import { LooselyTypedEmitter, EventListenerSignature } from "../utilts";
/***** Signals for org.bluez.Device1 *****/
interface OrgBluezDevice1Events {
    PropertiesChanged: (iface: string, changedProperties: {
        [key: string]: any;
    }, invalidatedProperties: string[]) => void;
}
/***** Properties of org.bluez.Device1 *****/
export interface OrgBluezDevice1Props {
    Address: string;
    AddressType: string;
    Name: string;
    Alias: string;
    Class: number;
    Appearance: number;
    Icon: string;
    Paired: boolean;
    Trusted: boolean;
    Blocked: boolean;
    LegacyPairing: boolean;
    RSSI: number;
    Connected: boolean;
    UUIDs: Array<string>;
    Modalias: string;
    Adapter: DBus.ObjectPath;
    ManufacturerData: {
        [key: number]: any;
    };
    ServiceData: {
        [key: string]: any;
    };
    TxPower: number;
    ServicesResolved: boolean;
}
/**
 * Service: org.bluez
 * ObjectPath: /org/bluez/hci0/-
 * Interface: org.bluez.Device1
 */
export declare class OrgBluezDevice1<L extends EventListenerSignature<L> = Record<string, never>> extends LooselyTypedEmitter<OrgBluezDevice1Events & L> {
    static readonly DbusInterfaceName = "org.bluez.Device1";
    dbusObject: DBus.ProxyObject;
    propertiesDBusInterface: DBus.ClientInterface;
    thisDBusInterface: DBus.ClientInterface;
    static Connect(bus: DBus.MessageBus, objectPath: string, xml?: string): Promise<OrgBluezDevice1>;
    constructor(dbusObject: DBus.ProxyObject);
    /***** Properties *****/
    getProperties(): Promise<Partial<OrgBluezDevice1Props>>;
    getProperty<T extends keyof OrgBluezDevice1Props>(name: T): Promise<OrgBluezDevice1Props[T]>;
    setProperty<T extends keyof OrgBluezDevice1Props>(name: T, value: OrgBluezDevice1Props[T]): Promise<void>;
    Address(): Promise<string>;
    AddressType(): Promise<string>;
    Name(): Promise<string>;
    Alias(): Promise<string>;
    Alias(value: string): Promise<void>;
    Class(): Promise<number>;
    Appearance(): Promise<number>;
    Icon(): Promise<string>;
    Paired(): Promise<boolean>;
    Trusted(): Promise<boolean>;
    Trusted(value: boolean): Promise<void>;
    Blocked(): Promise<boolean>;
    Blocked(value: boolean): Promise<void>;
    LegacyPairing(): Promise<boolean>;
    RSSI(): Promise<number>;
    Connected(): Promise<boolean>;
    UUIDs(): Promise<Array<string>>;
    Modalias(): Promise<string>;
    Adapter(): Promise<DBus.ObjectPath>;
    ManufacturerData(): Promise<{
        [key: number]: any;
    }>;
    ServiceData(): Promise<{
        [key: string]: any;
    }>;
    TxPower(): Promise<number>;
    ServicesResolved(): Promise<boolean>;
    /***** Methods *****/
    Disconnect(): Promise<void>;
    Connect(): Promise<void>;
    ConnectProfile(UUID: string): Promise<void>;
    DisconnectProfile(UUID: string): Promise<void>;
    Pair(): Promise<void>;
    CancelPairing(): Promise<void>;
}
export {};
