/**
 * @license
 * Copyright 2022-2026 Matter.js Authors
 * SPDX-License-Identifier: Apache-2.0
 */
import { Bytes, Channel, ChannelType, ConnectionlessTransport, Duration, MatterError } from "@matter/general";
import { Scanner } from "../common/Scanner.js";
export declare class BleError extends MatterError {
}
/** Thrown when a BLE write or subscribe operation fails because the peripheral disconnected. */
export declare class BleDisconnectedError extends BleError {
}
export declare abstract class Ble {
    abstract get peripheralInterface(): BlePeripheralInterface;
    abstract get centralInterface(): ConnectionlessTransport;
    abstract get scanner(): Scanner;
}
export interface BlePeripheralInterface extends ConnectionlessTransport {
    advertise(advertiseData: Bytes, additionalAdvertisementData?: Bytes, interval?: Duration): Promise<void>;
    stopAdvertising(): Promise<void>;
}
export declare abstract class BleChannel<T> implements Channel<T> {
    readonly maxPayloadSize: number;
    readonly isReliable = true;
    readonly supportsLargeMessages = false;
    readonly type = ChannelType.BLE;
    abstract name: string;
    abstract send(data: T): Promise<void>;
    abstract close(): Promise<void>;
}
//# sourceMappingURL=Ble.d.ts.map