import type { _CBCharacteristic } from "./CBCharacteristic.js";
import type { _CBDescriptor } from "./CBDescriptor.js";
import type { _CBPeer } from "./CBPeer.js";
import type { _CBPeripheralDelegate } from "./CBPeripheralDelegate.js";
import type { _CBService } from "./CBService.js";
import type { _NSArray } from "../Foundation/NSArray.js";
import type { _NSData } from "../Foundation/NSData.js";
import type { _NSNumber } from "../Foundation/NSNumber.js";
import type { _NSString } from "../Foundation/NSString.js";
import type { CBCharacteristicWriteType } from "./CBCharacteristicWriteType.js";
import type { CBPeripheralState } from "./CBPeripheralState.js";
export declare class _CBPeripheral extends _CBPeer {
    static alloc(): _CBPeripheral;
    static new(): _CBPeripheral;
    init(): _CBPeripheral;
    /**
     * @method readRSSI @discussion While connected, retrieves the current RSSI of the link. @see peripheral:didReadRSSI:error:
     */
    readRSSI(): void;
    /**
     * @method discoverServices: @param serviceUUIDs A list of <code>CBUUID</code> objects representing the service types to be discovered. If <i>nil</i>, all services will be discovered. @discussion Discovers available service(s) on the peripheral. @see peripheral:didDiscoverServices:
     */
    discoverServices$(serviceUUIDs: _NSArray | null): void;
    /**
     * @method discoverIncludedServices:forService: @param includedServiceUUIDs A list of <code>CBUUID</code> objects representing the included service types to be discovered. If <i>nil</i>, all of <i>service</i>s included services will be discovered, which is considerably slower and not recommended. @param service A GATT service. @discussion Discovers the specified included service(s) of <i>service</i>. @see peripheral:didDiscoverIncludedServicesForService:error:
     */
    discoverIncludedServices$forService$(includedServiceUUIDs: _NSArray | null, service: _CBService): void;
    /**
     * @method discoverCharacteristics:forService: @param characteristicUUIDs A list of <code>CBUUID</code> objects representing the characteristic types to be discovered. If <i>nil</i>, all characteristics of <i>service</i> will be discovered. @param service A GATT service. @discussion Discovers the specified characteristic(s) of <i>service</i>. @see peripheral:didDiscoverCharacteristicsForService:error:
     */
    discoverCharacteristics$forService$(characteristicUUIDs: _NSArray | null, service: _CBService): void;
    /**
     * @method readValueForCharacteristic: @param characteristic A GATT characteristic. @discussion Reads the characteristic value for <i>characteristic</i>. @see peripheral:didUpdateValueForCharacteristic:error:
     */
    readValueForCharacteristic$(characteristic: _CBCharacteristic): void;
    /**
     * @method maximumWriteValueLengthForType: @discussion The maximum amount of data, in bytes, that can be sent to a characteristic in a single write type. @see writeValue:forCharacteristic:type:
     */
    maximumWriteValueLengthForType$(type: CBCharacteristicWriteType): number;
    /**
     * @method writeValue:forCharacteristic:type: @param data The value to write. @param characteristic The characteristic whose characteristic value will be written. @param type The type of write to be executed. @discussion Writes <i>value</i> to <i>characteristic</i>'s characteristic value. If the <code>CBCharacteristicWriteWithResponse</code> type is specified, {@link peripheral:didWriteValueForCharacteristic:error:} is called with the result of the write request. If the <code>CBCharacteristicWriteWithoutResponse</code> type is specified, and canSendWriteWithoutResponse is false, the delivery of the data is best-effort and may not be guaranteed. @see peripheral:didWriteValueForCharacteristic:error: @see peripheralIsReadyToSendWriteWithoutResponse: @see canSendWriteWithoutResponse @see CBCharacteristicWriteType
     */
    writeValue$forCharacteristic$type$(data: _NSData, characteristic: _CBCharacteristic, type: CBCharacteristicWriteType): void;
    /**
     * @method setNotifyValue:forCharacteristic: @param enabled Whether or not notifications/indications should be enabled. @param characteristic The characteristic containing the client characteristic configuration descriptor. @discussion Enables or disables notifications/indications for the characteristic value of <i>characteristic</i>. If <i>characteristic</i> allows both, notifications will be used. When notifications/indications are enabled, updates to the characteristic value will be received via delegate method @link peripheral:didUpdateValueForCharacteristic:error: @/link. Since it is the peripheral that chooses when to send an update, the application should be prepared to handle them as long as notifications/indications remain enabled. @see peripheral:didUpdateNotificationStateForCharacteristic:error: @seealso CBConnectPeripheralOptionNotifyOnNotificationKey
     */
    setNotifyValue$forCharacteristic$(enabled: boolean, characteristic: _CBCharacteristic): void;
    /**
     * @method discoverDescriptorsForCharacteristic: @param characteristic A GATT characteristic. @discussion Discovers the characteristic descriptor(s) of <i>characteristic</i>. @see peripheral:didDiscoverDescriptorsForCharacteristic:error:
     */
    discoverDescriptorsForCharacteristic$(characteristic: _CBCharacteristic): void;
    /**
     * @method readValueForDescriptor: @param descriptor A GATT characteristic descriptor. @discussion Reads the value of <i>descriptor</i>. @see peripheral:didUpdateValueForDescriptor:error:
     */
    readValueForDescriptor$(descriptor: _CBDescriptor): void;
    /**
     * @method writeValue:forDescriptor: @param data The value to write. @param descriptor A GATT characteristic descriptor. @discussion Writes <i>data</i> to <i>descriptor</i>'s value. Client characteristic configuration descriptors cannot be written using this method, and should instead use @link setNotifyValue:forCharacteristic: @/link. @see peripheral:didWriteValueForCharacteristic:error:
     */
    writeValue$forDescriptor$(data: _NSData, descriptor: _CBDescriptor): void;
    /**
     * @method openL2CAPChannel: @param PSM The PSM of the channel to open @discussion Attempt to open an L2CAP channel to the peripheral using the supplied PSM. @see peripheral:didWriteValueForCharacteristic:error:
     */
    openL2CAPChannel$(PSM: number): void;
    /**
     * @property delegate @discussion The delegate object that will receive peripheral events.
     */
    delegate(): _CBPeripheralDelegate | null;
    setDelegate$(value: _CBPeripheralDelegate | null): void;
    /** @property name @discussion The name of the peripheral. */
    name(): _NSString | null;
    /**
     * @property RSSI @discussion The most recently read RSSI, in decibels. @deprecated Use {@link peripheral:didReadRSSI:error:} instead.
     * @deprecated
     */
    RSSI(): _NSNumber;
    /** @property state @discussion The current connection state of the peripheral. */
    state(): CBPeripheralState;
    /**
     * @property services @discussion A list of <code>CBService</code> objects that have been discovered on the peripheral.
     */
    services(): _NSArray | null;
    /**
     * @property canSendWriteWithoutResponse @discussion YES if the remote device has space to send a write without response. If this value is NO, the value will be set to YES after the current writes have been flushed, and <link>peripheralIsReadyToSendWriteWithoutResponse:</link> will be called.
     */
    canSendWriteWithoutResponse(): boolean;
    /**
     * @property ancsAuthorized @discussion YES if the remote device has been authorized to receive data over ANCS (Apple Notification Service Center) protocol. If this value is NO, the value will be set to YES after a user authorization occurs and <link>didUpdateANCSAuthorizationForPeripheral:</link> will be called.
     */
    ancsAuthorized(): boolean;
}
