import type { OperationOptions, OperationTerminalRecord, WriteMode } from './operations.js'; import type { ConnectionId, GenerationId } from './primitives.js'; import type { CleanupRecord } from './errors.js'; import type { BoundedAsyncStream } from './streams.js'; /** BLE's mandatory lower ATT MTU bound, including opcode and attribute handle bytes. */ export declare const MINIMUM_ATT_MTU = 23; /** Android's documented maximum request value; a peer may negotiate a lower value. */ export declare const MAXIMUM_REQUESTED_ATT_MTU = 517; /** Android's supported caller-directed connection link-priority requests. */ export type ConnectionPriority = 'low-power' | 'balanced' | 'high-throughput'; export type BlePhy = 'le-1m' | 'le-2m' | 'le-coded'; export type PhyPreference = Readonly<{ readonly tx?: BlePhy; readonly rx?: BlePhy; }>; /** Whether a platform boundary can truthfully dispatch a connection-control operation. */ export type ConnectionControlSupport = 'available' | 'unavailable'; /** Per-platform dispatch capabilities for the canonical connection-control surface. */ export interface ConnectionControlCapabilities { readonly rssi: ConnectionControlSupport; readonly requestMtu: ConnectionControlSupport; readonly effectiveMtu?: ConnectionControlSupport; readonly priority?: ConnectionControlSupport; readonly phy?: ConnectionControlSupport; } export interface RssiMeasurement { readonly rssi: number; readonly observedAtMonotonicMs: number; readonly terminal: OperationTerminalRecord; } export interface MtuNegotiation { readonly requestedMtu: number; readonly negotiatedMtu: number; readonly observedAtMonotonicMs: number; readonly terminal: OperationTerminalRecord; } /** Backend observation of the currently measured ATT MTU for this connection generation. */ export interface EffectiveMtuMeasurement { readonly connectionId: ConnectionId; readonly connectionGeneration: GenerationId<'connection-generation', string>; readonly attMtu: number | null; readonly payloadBytes: number | null; readonly platformPduBytes: number | null; readonly observedAtMonotonicMs: number; readonly terminal: OperationTerminalRecord; } /** Backend result for a priority request; it does not assert observed link parameters. */ export interface ConnectionPriorityRequest { readonly requested: ConnectionPriority; readonly accepted: boolean; readonly observedAtMonotonicMs: number; readonly terminal: OperationTerminalRecord; } export interface ConnectionPhyObservation { readonly txPhy: BlePhy; readonly rxPhy: BlePhy; readonly observedAtMonotonicMs: number; readonly terminal: OperationTerminalRecord; } export interface ConnectionPhyRequest { readonly requested: PhyPreference; readonly accepted: boolean; readonly observation: ConnectionPhyObservation | null; readonly observedAtMonotonicMs: number; readonly terminal: OperationTerminalRecord; } export interface ConnectionWriteReadinessObservation { readonly connectionId: ConnectionId; readonly connectionGeneration: GenerationId<'connection-generation', string>; readonly ready: boolean; readonly observedAtMonotonicMs: number; readonly ordinal: number; } export interface ConnectionWriteReadinessWatch { readonly events: BoundedAsyncStream>; close(): Promise; } /** Backend result for the connection-level write-length boundary. */ export interface ConnectionMaximumWriteLengthMeasurement { readonly connectionId: ConnectionId; readonly connectionGeneration: GenerationId<'connection-generation', string>; readonly mode: WriteMode; readonly maximumWriteLength: number; readonly observedAtMonotonicMs: number; readonly terminal: OperationTerminalRecord; } export interface ReadRssiRequest { readonly operation: OperationOptions; } export interface RequestMtuRequest { readonly operation: OperationOptions; readonly requestedMtu: number; } export interface EffectiveMtuRequest { readonly operation: OperationOptions; } export interface RequestPriorityRequest { readonly operation: OperationOptions; readonly priority: ConnectionPriority; } export interface ReadPhyRequest { readonly operation: OperationOptions; } export interface RequestPhyRequest { readonly operation: OperationOptions; readonly preference: PhyPreference; } export interface ConnectionMaximumWriteLengthRequest { readonly operation: OperationOptions; readonly mode: WriteMode; } //# sourceMappingURL=connection-controls.d.ts.map