/**
 * @license
 * Copyright 2022-2026 Matter.js Authors
 * SPDX-License-Identifier: Apache-2.0
 */
import { Bytes, ChannelType, Duration, MaybePromise } from "@matter/general";
import { CommissionableDevice, CommissionableDeviceIdentifiers, Scanner } from "./Scanner.js";
export interface BlePeripheral {
    readonly address: string;
}
export interface BleScannerClient {
    setDiscoveryCallback(callback: (peripheral: BlePeripheral, data: Bytes) => void): void;
    startScanning(): Promise<void>;
    stopScanning(): Promise<void>;
}
export type CommissionableDeviceData = CommissionableDevice & {
    SD: number;
};
export type DiscoveredBleDevice = {
    deviceData: CommissionableDeviceData;
    peripheral: BlePeripheral;
    hasAdditionalAdvertisementData: boolean;
};
export declare class BleScanner implements Scanner {
    #private;
    readonly type = ChannelType.BLE;
    constructor(client: BleScannerClient);
    getDiscoveredDevice(address: string): DiscoveredBleDevice;
    cancelCommissionableDeviceDiscovery(identifier: CommissionableDeviceIdentifiers, resolvePromise?: boolean): void;
    findCommissionableDevices(identifier: CommissionableDeviceIdentifiers, timeout?: Duration, ignoreExistingRecords?: boolean): Promise<CommissionableDevice[]>;
    findCommissionableDevicesContinuously(identifier: CommissionableDeviceIdentifiers, callback: (device: CommissionableDevice) => void, timeout?: Duration, cancelSignal?: Promise<void>): Promise<CommissionableDevice[]>;
    getDiscoveredCommissionableDevices(identifier: CommissionableDeviceIdentifiers): CommissionableDevice[];
    protected closeClient(): MaybePromise<void>;
    close(): Promise<void>;
}
//# sourceMappingURL=BleScanner.d.ts.map