/**
 * @license
 * Copyright 2022-2026 Matter.js Authors
 * SPDX-License-Identifier: Apache-2.0
 */
import { Bytes, Channel, ChannelType, ConnectionlessTransport, ServerAddress } from "#general";
import { BleChannel, BtpSessionHandler } from "#protocol";
import type { Characteristic, Peripheral } from "@stoprocent/noble";
import { BleScanner } from "./BleScanner.js";
export declare class NobleBleCentralInterface implements ConnectionlessTransport {
    #private;
    constructor(bleScanner: BleScanner);
    openChannel(address: ServerAddress, tryCount?: number): Promise<Channel<Bytes>>;
    onData(listener: (socket: Channel<Bytes>, data: Bytes) => void): ConnectionlessTransport.Listener;
    close(): Promise<void>;
    supports(type: ChannelType, _address?: string): boolean;
}
export declare class NobleBleChannel extends BleChannel<Bytes> {
    #private;
    private readonly peripheral;
    private readonly btpSession;
    static create(peripheral: Peripheral, characteristicC1ForWrite: Characteristic, characteristicC2ForSubscribe: Characteristic, onMatterMessageListener: (socket: Channel<Bytes>, data: Bytes) => void, _additionalCommissioningRelatedData?: Bytes): Promise<NobleBleChannel>;
    constructor(peripheral: Peripheral, btpSession: BtpSessionHandler);
    get connected(): boolean;
    /**
     * Send a Matter message to the connected device - need to do BTP assembly first.
     *
     * @param data
     */
    send(data: Bytes): Promise<void>;
    get name(): string;
    close(): Promise<void>;
}
//# sourceMappingURL=NobleBleChannel.d.ts.map