/**
 * @license
 * Copyright 2025-2026 Open Home Foundation
 * SPDX-License-Identifier: Apache-2.0
 */
import { type Bytes, type Channel, ChannelType, ServerAddress, type Transport } from "@matter/main";
import { BleChannel, BtpSessionHandler } from "@matter/main/protocol";
import type { BleProxyHandler } from "./BleProxyHandler.js";
import type { ProxyBleScanner } from "./ProxyBleScanner.js";
/**
 * ConnectionlessTransport implementation that opens BLE channels through the proxy WebSocket.
 * Replaces NobleBleCentralInterface from @matter/nodejs-ble.
 */
export declare class ProxyBleCentralInterface implements Transport {
    #private;
    constructor(bleScanner: ProxyBleScanner, handler: BleProxyHandler);
    openChannel(address: ServerAddress): Promise<Channel<Bytes>>;
    onData(listener: (socket: Channel<Bytes>, data: Bytes) => void): Transport.Listener;
    close(): Promise<void>;
    supports(type: ChannelType, _address?: string): type is ChannelType.BLE;
}
/**
 * BLE channel that communicates through the proxy WebSocket.
 * Replaces NobleBleChannel from @matter/nodejs-ble.
 */
export declare class ProxyBleChannel extends BleChannel<Bytes> {
    #private;
    constructor(peripheralAddress: string, btpSession: BtpSessionHandler, cleanupObservers: () => void);
    get connected(): boolean;
    markDisconnected(): void;
    pushMessage(data: Bytes): void;
    onClose(listener: () => void): Transport.Listener;
    [Symbol.asyncIterator](): AsyncIterator<Bytes>;
    send(data: Bytes): Promise<void>;
    get name(): string;
    close(): Promise<void>;
}
//# sourceMappingURL=ProxyBleChannel.d.ts.map