import type { BackendConnection, GattBackend } from '../backend-contract/backend.js'; import type { CleanupFailure, CleanupRecord } from '../backend-contract/errors.js'; import type { AttachmentRecord } from '../backend-contract/identity.js'; import { type CharacteristicPath, type DescriptorPath } from '../backend-contract/gatt.js'; import type { PublicOperationOptions, SubscriptionOptions, WritePolicy, WriteReceipt } from '../backend-contract/operations.js'; import type { AttachmentBoundIdFactory, Deadline, OwnedBytes } from '../backend-contract/primitives.js'; import { WebGattDatabase } from './web-bluetooth-handles.js'; import type { WebConnectionRecord, WebGattDatabaseHost } from './web-bluetooth-handles.js'; export interface WebGattHost extends WebGattDatabaseHost { readonly attachment: AttachmentRecord; identifiers(): AttachmentBoundIdFactory; requireConnection(connection: BackendConnection, operation: string): WebConnectionRecord; requireDatabase(path: CharacteristicPath | DescriptorPath, operation: string): WebGattDatabase; runAbortable(record: WebConnectionRecord | null, operation: { readonly signal: AbortSignal | null; readonly deadline: Deadline | null; }, start: () => Promise, fallbackCode: import('../backend-contract/errors.js').BleErrorCode, domain: 'chooser' | 'connection' | 'gatt', operationName: string, onLateSuccess?: ((result: Result) => Promise | void) | null): Promise; staleGattError(operation: string): import('../backend-contract/errors.js').BackendContractError; } export declare class WebBluetoothGattRuntime { private readonly host; readonly gatt: GattBackend; private nextDatabase; private nextSubscription; private nextOperation; private readonly subscriptions; constructor(host: WebGattHost); subscriptionCount(): number; retainedSubscriptionCount(): number; destroySubscriptions(): Promise; invalidateConnection(record: WebConnectionRecord, reason: 'connection-lost' | 'owner-released'): void; stopConnectionSubscriptions(record: WebConnectionRecord): Promise; readDirect(database: WebGattDatabase, path: CharacteristicPath, options: PublicOperationOptions): Promise; writeDirect(database: WebGattDatabase, path: CharacteristicPath, value: Readonly, options: WritePolicy): Promise>; readDescriptorDirect(database: WebGattDatabase, path: DescriptorPath, options: PublicOperationOptions): Promise; writeDescriptorDirect(database: WebGattDatabase, path: DescriptorPath, value: Readonly, options: WritePolicy): Promise>; subscribeDirect(database: WebGattDatabase, path: CharacteristicPath, options: SubscriptionOptions): Promise>; private createGattBackend; private discover; private buildDatabase; private readCharacteristic; private writeCharacteristic; private readDescriptorValue; private writeDescriptorValue; private enableSubscription; private removeManagedSubscription; private stopManagedSubscription; private beginLogicalSubscriptionStop; private finishStoppedSubscription; private stopDatabaseSubscriptions; private readResult; private writeResult; private readDescriptorResult; private writeDescriptorResult; private subscribeResult; private unsubscribeResult; private requireCharacteristic; private requireDescriptor; private dispatch; private operationCorrelation; } //# sourceMappingURL=web-bluetooth-gatt.d.ts.map