import { OrgBluezAdapter1 } from "./dbus/Adapter1";
import { Device } from "./device";
import { ProxyObject } from "dbus-next";
import { Bluez } from "./bluez";
import { OrgBluezDevice1Props } from "./dbus/Device1";
interface AdapterEvents {
    DeviceAdded: (address: string, props: Partial<OrgBluezDevice1Props>) => void;
    DeviceRemoved: (address: string) => void;
}
export declare class Adapter extends OrgBluezAdapter1<AdapterEvents> {
    private bluez;
    constructor(dbusObject: ProxyObject, bluez: Bluez);
    /**
     * Find a Device by its address
     * @param address
     * @throws {DBusError} org.bluez.Error.DoesNotExist
     */
    getDevice(address: string): Promise<Device>;
    /**
     * Returns a list of known devices
     * It returns key value pairs for each device.
     * The key is the object path and the value is a snapshot of the properties of the device.
     * To get the full device interface use `Bluez.getDeviceFromObject(key)`
     */
    listDevices(): Promise<{
        [key: string]: Partial<OrgBluezDevice1Props>;
    }>;
}
export {};
