import { Subscription } from "react-native-ble-plx"; import { BluetoothDevice as ClassicDevice } from "react-native-bluetooth-classic"; export type PrinterType = "labelPrinter" | "rfidPrinter"; export type DeviceRole = "scanner" | "printer" | "unknown"; export type ConnectionProtocol = "ble" | "classic" | "other"; export type CharacteristicData = { uuid: string; serviceUUID: string; value?: string; rawBase64?: string; decoded?: string; }; export type BleDevice = { id: string; name?: string | null; connected: boolean; role: DeviceRole; connectionProtocol: ConnectionProtocol; rssi?: number | null; serviceUUIDs?: string[] | null; characteristics: Record; manuallyDisconnected?: boolean; classicConnection?: ClassicDevice; printerType?: PrinterType; }; export interface ExtendedSubscription extends Subscription { transactionId?: number; } export type BleState = { devices: Record; connectedDevices: Record; showNamedOnly: boolean; trigger: boolean; subscriptions: ExtendedSubscription[]; rfidReady: boolean; barcodeReady: boolean; setShowNamedOnly: (value: boolean) => void; setTrigger: (value: boolean) => void; setSubscriptions: (subscriptions: Subscription[]) => void; setRfidReady: (value: boolean) => void; setBarcodeReady: (value: boolean) => void; addDevice: (device: Partial & { id: string; }) => void; addConnectedDevice: (device: BleDevice) => void; removeConnectedDevice: (id: string) => void; removeDevice: (id: string) => void; updateDevice: (id: string, patch: Partial) => void; updateConnectedDevice: (id: string, patch: Partial) => void; clear: () => void; resetConnections: () => void; setPrinterType: (id: string, printerType: PrinterType) => void; }; declare const useBleStore: import("zustand").UseBoundStore, "subscribe"> & { subscribe: { (listener: (selectedState: BleState, previousSelectedState: BleState) => void): () => void; (selector: (state: BleState) => U, listener: (selectedState: U, previousSelectedState: U) => void, options?: { equalityFn?: ((a: U, b: U) => boolean) | undefined; fireImmediately?: boolean; } | undefined): () => void; }; }, "setState" | "persist"> & { setState(partial: BleState | Partial | ((state: BleState) => BleState | Partial), replace?: false | undefined): unknown; setState(state: BleState | ((state: BleState) => BleState), replace: true): unknown; persist: { setOptions: (options: Partial>) => void; clearStorage: () => void; rehydrate: () => Promise | void; hasHydrated: () => boolean; onHydrate: (fn: (state: BleState) => void) => () => void; onFinishHydration: (fn: (state: BleState) => void) => () => void; getOptions: () => Partial>; }; }>; export default useBleStore; export declare const selectDevices: (s: BleState) => Record; export declare const selectConnectedDevices: (s: BleState) => Record; export declare const selectShowNamedOnly: (s: BleState) => boolean; export declare const selectSetShowNamedOnly: (s: BleState) => (value: boolean) => void; export declare const selectTrigger: (s: BleState) => boolean; export declare const selectSetTrigger: (s: BleState) => (value: boolean) => void; export declare const selectSubscriptions: (s: BleState) => ExtendedSubscription[]; export declare const selectSetSubscriptions: (s: BleState) => (subscriptions: Subscription[]) => void; //# sourceMappingURL=ExpoBleStore.d.ts.map