@teincfood/core 0.7.8 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (198) hide show
  1. package/README.md +26 -21
  2. package/dist/adapters/auth.d.ts +10 -0
  3. package/dist/adapters/auth.js +43 -0
  4. package/dist/adapters/devices.d.ts +3 -1
  5. package/dist/adapters/devices.js +187 -3
  6. package/dist/adapters/filesystem.d.ts +4 -0
  7. package/dist/adapters/kv.d.ts +10 -0
  8. package/dist/adapters/kv.js +23 -7
  9. package/dist/adapters/local-node.d.ts +4 -6
  10. package/dist/adapters/local-node.js +9 -32
  11. package/dist/adapters/notify.d.ts +12 -0
  12. package/dist/adapters/notify.js +33 -0
  13. package/dist/adapters/query-keys.d.ts +4 -0
  14. package/dist/adapters/query-keys.js +4 -0
  15. package/dist/adapters/services.d.ts +99 -15
  16. package/dist/adapters/services.js +244 -4
  17. package/dist/auth/session.d.ts +66 -0
  18. package/dist/auth/session.js +172 -0
  19. package/dist/catalog/hooks.d.ts +10 -0
  20. package/dist/catalog/hooks.js +82 -11
  21. package/dist/db/migrations.js +274 -0
  22. package/dist/db/operations.d.ts +53 -2
  23. package/dist/db/operations.js +177 -8
  24. package/dist/domain/business/index.d.ts +5 -0
  25. package/dist/domain/business/index.js +5 -0
  26. package/dist/domain/orders/lifecycle.d.ts +6 -0
  27. package/dist/domain/orders/lifecycle.js +6 -0
  28. package/dist/domain/orders/service.d.ts +24 -0
  29. package/dist/domain/orders/service.js +242 -0
  30. package/dist/domain/payments/index.d.ts +6 -0
  31. package/dist/domain/payments/index.js +5 -0
  32. package/dist/domain/reference/index.d.ts +8 -0
  33. package/dist/domain/reference/index.js +8 -0
  34. package/dist/e2e/harness.d.ts +1 -0
  35. package/dist/e2e/harness.js +61 -0
  36. package/dist/hooks/analytics.hooks.d.ts +25 -0
  37. package/dist/hooks/analytics.hooks.js +214 -0
  38. package/dist/hooks/business-hours.hooks.d.ts +8 -0
  39. package/dist/hooks/business-hours.hooks.js +45 -0
  40. package/dist/hooks/dashboard.hooks.d.ts +30 -0
  41. package/dist/hooks/dashboard.hooks.js +132 -0
  42. package/dist/hooks/delivery.hooks.d.ts +225 -0
  43. package/dist/hooks/delivery.hooks.js +80 -0
  44. package/dist/hooks/fleet.hooks.d.ts +37 -0
  45. package/dist/hooks/fleet.hooks.js +229 -0
  46. package/dist/hooks/image.hooks.d.ts +20 -0
  47. package/dist/hooks/image.hooks.js +62 -0
  48. package/dist/hooks/kiosk.hooks.d.ts +22 -5
  49. package/dist/hooks/kiosk.hooks.js +74 -5
  50. package/dist/hooks/members.hooks.d.ts +48 -0
  51. package/dist/hooks/members.hooks.js +302 -0
  52. package/dist/hooks/offline-orders.hooks.d.ts +9 -0
  53. package/dist/hooks/offline-orders.hooks.js +51 -0
  54. package/dist/hooks/orders.hooks.d.ts +19 -39
  55. package/dist/hooks/orders.hooks.js +126 -321
  56. package/dist/hooks/places.hooks.d.ts +21 -0
  57. package/dist/hooks/places.hooks.js +112 -0
  58. package/dist/hooks/realtime-stubs.d.ts +28 -0
  59. package/dist/hooks/realtime-stubs.js +85 -0
  60. package/dist/hooks/rider.hooks.d.ts +470 -0
  61. package/dist/hooks/rider.hooks.js +373 -0
  62. package/dist/hooks/use-infinite-list.d.ts +243 -0
  63. package/dist/hooks/use-infinite-list.js +58 -0
  64. package/dist/hooks/wallet.hooks.d.ts +219 -0
  65. package/dist/hooks/wallet.hooks.js +56 -0
  66. package/dist/image-cache/service.d.ts +8 -0
  67. package/dist/image-cache/service.js +15 -3
  68. package/dist/index.d.ts +60 -5
  69. package/dist/index.js +78 -5
  70. package/dist/local-node/adapters.d.ts +87 -0
  71. package/dist/local-node/adapters.js +4 -0
  72. package/dist/local-node/index.d.ts +5 -0
  73. package/dist/local-node/index.js +5 -0
  74. package/dist/local-node/security.d.ts +25 -0
  75. package/dist/local-node/security.js +149 -0
  76. package/dist/local-node/service.d.ts +83 -0
  77. package/dist/local-node/service.js +706 -0
  78. package/dist/local-node/store.d.ts +50 -0
  79. package/dist/local-node/store.js +284 -0
  80. package/dist/local-node/types.d.ts +92 -0
  81. package/dist/local-node/types.js +4 -0
  82. package/dist/printer/receipt.d.ts +4 -0
  83. package/dist/printer/receipt.js +75 -0
  84. package/dist/printer/service.js +1 -1
  85. package/dist/providers/query-client.d.ts +13 -0
  86. package/dist/providers/query-client.js +58 -0
  87. package/dist/realtime/events.service.d.ts +18 -0
  88. package/dist/realtime/events.service.js +76 -0
  89. package/dist/realtime/order-events.service.d.ts +6 -0
  90. package/dist/realtime/order-events.service.js +17 -0
  91. package/dist/realtime/phoenix-socket.d.ts +55 -0
  92. package/dist/realtime/phoenix-socket.js +269 -0
  93. package/dist/realtime/useEventsConnection.d.ts +1 -0
  94. package/dist/realtime/useEventsConnection.js +50 -0
  95. package/dist/reference/api.d.ts +2 -0
  96. package/dist/reference/api.js +2 -0
  97. package/dist/reference/capabilities.d.ts +12 -7
  98. package/dist/reference/capabilities.js +28 -13
  99. package/dist/reference/hooks.d.ts +34 -0
  100. package/dist/reference/hooks.js +124 -0
  101. package/dist/reference/menu-apply.d.ts +29 -0
  102. package/dist/reference/menu-apply.js +289 -0
  103. package/dist/reference/menu-record.d.ts +69 -0
  104. package/dist/reference/menu-record.js +163 -0
  105. package/dist/reference/operations.d.ts +3 -0
  106. package/dist/reference/operations.js +35 -1
  107. package/dist/reference/service.js +36 -9
  108. package/dist/reference/types.d.ts +1 -1
  109. package/dist/repositories/order.repository.d.ts +8 -0
  110. package/dist/repositories/order.repository.js +24 -2
  111. package/dist/repositories/pos.repository.d.ts +4 -0
  112. package/dist/repositories/pos.repository.js +4 -0
  113. package/dist/sync/backoff.d.ts +21 -0
  114. package/dist/sync/backoff.js +42 -0
  115. package/dist/sync/command-builder.js +10 -2
  116. package/dist/sync/command-queue.service.d.ts +12 -0
  117. package/dist/sync/command-queue.service.js +115 -18
  118. package/dist/sync/device-lease.service.d.ts +3 -3
  119. package/dist/sync/device-lease.service.js +80 -20
  120. package/dist/sync/engine.d.ts +3 -1
  121. package/dist/sync/engine.js +44 -4
  122. package/dist/sync/full-sync.d.ts +6 -0
  123. package/dist/sync/full-sync.js +72 -0
  124. package/dist/sync/health-probe.d.ts +24 -0
  125. package/dist/sync/health-probe.js +138 -0
  126. package/dist/sync/offline-capable.js +25 -0
  127. package/dist/sync/online-gates.d.ts +17 -0
  128. package/dist/sync/online-gates.js +55 -0
  129. package/dist/sync/order-number.d.ts +4 -4
  130. package/dist/sync/order-number.js +33 -13
  131. package/dist/sync/order-snapshots.service.d.ts +1 -0
  132. package/dist/sync/order-snapshots.service.js +47 -2
  133. package/dist/sync/pending-orders.service.d.ts +18 -0
  134. package/dist/sync/pending-orders.service.js +148 -3
  135. package/dist/sync/reconciliation/index.d.ts +5 -0
  136. package/dist/sync/reconciliation/index.js +5 -0
  137. package/dist/sync/snapshots/entity.d.ts +6 -0
  138. package/dist/sync/snapshots/entity.js +6 -0
  139. package/dist/sync/sync-jobs.service.d.ts +18 -0
  140. package/dist/sync/sync-jobs.service.js +539 -0
  141. package/dist/sync/transition-endpoints.d.ts +11 -0
  142. package/dist/sync/transition-endpoints.js +30 -0
  143. package/dist/sync/transport-local-node.js +3 -2
  144. package/dist/sync/transport-rest.d.ts +7 -0
  145. package/dist/sync/transport-rest.js +90 -25
  146. package/dist/sync/use-sync-reconciliation.js +58 -16
  147. package/dist/test-helpers/memory-driver.js +182 -4
  148. package/dist/test-helpers/seed-hours.d.ts +1 -0
  149. package/dist/test-helpers/seed-hours.js +23 -0
  150. package/dist/types/api/business.api.d.ts +42 -0
  151. package/dist/types/api/menu.api.d.ts +15 -0
  152. package/dist/types/api/seller.api.d.ts +20 -0
  153. package/dist/types/places.d.ts +19 -0
  154. package/dist/types/places.js +2 -0
  155. package/dist/types/rider.d.ts +67 -0
  156. package/dist/types/rider.js +2 -0
  157. package/dist/utils/attempt-stats.d.ts +23 -0
  158. package/dist/utils/attempt-stats.js +61 -0
  159. package/dist/utils/business-hours.d.ts +37 -0
  160. package/dist/utils/business-hours.js +96 -0
  161. package/dist/utils/debug-log.d.ts +23 -0
  162. package/dist/utils/debug-log.js +153 -0
  163. package/dist/utils/order-filter.d.ts +1 -1
  164. package/dist/utils/order-filter.js +1 -1
  165. package/dist/utils/order-transitions.d.ts +30 -0
  166. package/dist/utils/order-transitions.js +185 -0
  167. package/dist/utils/sync-logger.js +5 -4
  168. package/dist/validation/offline.d.ts +46 -0
  169. package/dist/validation/offline.js +79 -0
  170. package/package.json +6 -1
  171. package/dist/pricing/engine.test.d.ts +0 -1
  172. package/dist/pricing/engine.test.js +0 -142
  173. package/dist/reference/lww.test.d.ts +0 -1
  174. package/dist/reference/lww.test.js +0 -23
  175. package/dist/reference/operations.test.d.ts +0 -1
  176. package/dist/reference/operations.test.js +0 -66
  177. package/dist/standalone.integration.test.d.ts +0 -1
  178. package/dist/standalone.integration.test.js +0 -235
  179. package/dist/sync/device-lease.test.d.ts +0 -1
  180. package/dist/sync/device-lease.test.js +0 -38
  181. package/dist/sync/offline-integration.test.d.ts +0 -1
  182. package/dist/sync/offline-integration.test.js +0 -52
  183. package/dist/sync/order-number.test.d.ts +0 -1
  184. package/dist/sync/order-number.test.js +0 -51
  185. package/dist/sync/perms.test.d.ts +0 -1
  186. package/dist/sync/perms.test.js +0 -15
  187. package/dist/utils/currency.test.d.ts +0 -1
  188. package/dist/utils/currency.test.js +0 -17
  189. package/dist/utils/hlc.test.d.ts +0 -1
  190. package/dist/utils/hlc.test.js +0 -29
  191. package/dist/utils/phone.test.d.ts +0 -1
  192. package/dist/utils/phone.test.js +0 -19
  193. package/dist/utils/responsive.d.ts +0 -13
  194. package/dist/utils/responsive.js +0 -18
  195. package/dist/utils/uuid.test.d.ts +0 -1
  196. package/dist/utils/uuid.test.js +0 -13
  197. package/dist/utils/validation.test.d.ts +0 -1
  198. package/dist/utils/validation.test.js +0 -23
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Realtime invalidation hooks — bridge Phoenix WebSocket events into the
3
+ * Sync Engine so useSyncReconciliation fires and React Query caches refresh.
4
+ *
5
+ * Both hooks are idempotent-safe and can be called from multiple screens.
6
+ * Invalidations are debounced: a reconnect/replay burst can deliver dozens
7
+ * of events at once, and an immediate invalidate-per-event forces repeated
8
+ * full re-renders of boards/grids — a major CPU spike source on low-power
9
+ * POS hardware. Coalescing into one invalidation per ~400ms window keeps
10
+ * the UI fresh without the render storm.
11
+ */
12
+ /**
13
+ * Subscribe to real-time order events and invalidate all queries under the
14
+ * given root key prefix (e.g. ['seller'], ['pos'], ['kiosk']).
15
+ *
16
+ * Each event is also persisted to the durable offline read model so order
17
+ * history and states survive a restart while offline, and published through
18
+ * the Sync Engine so useSyncReconciliation + LAN relay fire without polling.
19
+ *
20
+ * Call once per screen that needs live updates (POS, Orders, Kitchen, etc.).
21
+ */
22
+ export declare function useOrderRealtimeUpdates(rootKey: readonly string[]): void;
23
+ /**
24
+ * Global realtime invalidation — currently handled entirely by
25
+ * useOrderRealtimeUpdates + useSyncReconciliation. Kept as a no-op for
26
+ * backward compatibility with any lingering call sites.
27
+ */
28
+ export declare function useRealtimeInvalidation(): void;
@@ -0,0 +1,85 @@
1
+ /**
2
+ * Realtime invalidation hooks — bridge Phoenix WebSocket events into the
3
+ * Sync Engine so useSyncReconciliation fires and React Query caches refresh.
4
+ *
5
+ * Both hooks are idempotent-safe and can be called from multiple screens.
6
+ * Invalidations are debounced: a reconnect/replay burst can deliver dozens
7
+ * of events at once, and an immediate invalidate-per-event forces repeated
8
+ * full re-renders of boards/grids — a major CPU spike source on low-power
9
+ * POS hardware. Coalescing into one invalidation per ~400ms window keeps
10
+ * the UI fresh without the render storm.
11
+ */
12
+ import { useEffect } from "react";
13
+ import { useQueryClient } from "@tanstack/react-query";
14
+ import { orderEventsService } from "../realtime/order-events.service";
15
+ import { orderSnapshotsService } from "../sync/order-snapshots.service";
16
+ import { syncEngine } from "../sync/engine";
17
+ import { generateEventId } from "../utils/uuid";
18
+ import { getAppInstanceId } from "../adapters/devices";
19
+ const INVALIDATE_DEBOUNCE_MS = 400;
20
+ /**
21
+ * Subscribe to real-time order events and invalidate all queries under the
22
+ * given root key prefix (e.g. ['seller'], ['pos'], ['kiosk']).
23
+ *
24
+ * Each event is also persisted to the durable offline read model so order
25
+ * history and states survive a restart while offline, and published through
26
+ * the Sync Engine so useSyncReconciliation + LAN relay fire without polling.
27
+ *
28
+ * Call once per screen that needs live updates (POS, Orders, Kitchen, etc.).
29
+ */
30
+ export function useOrderRealtimeUpdates(rootKey) {
31
+ const queryClient = useQueryClient();
32
+ useEffect(() => {
33
+ let timer;
34
+ const pendingOrderIds = new Set();
35
+ const pending = { rootKey: false };
36
+ const ownDeviceId = getAppInstanceId();
37
+ const flush = () => {
38
+ timer = undefined;
39
+ if (pending.rootKey)
40
+ queryClient.invalidateQueries({ queryKey: rootKey });
41
+ for (const oid of pendingOrderIds) {
42
+ queryClient.invalidateQueries({ queryKey: [...rootKey, "order", oid] });
43
+ }
44
+ pendingOrderIds.clear();
45
+ pending.rootKey = false;
46
+ };
47
+ const unsub = orderEventsService.onOrderUpdates((event) => {
48
+ pending.rootKey = true;
49
+ if (event.order_id)
50
+ pendingOrderIds.add(event.order_id);
51
+ const payload = { ...event };
52
+ const domainEvent = {
53
+ event_id: payload.event_id ?? generateEventId(),
54
+ event_type: event.type,
55
+ event_version: payload.event_version ?? "1.0",
56
+ timestamp: payload.timestamp ?? new Date().toISOString(),
57
+ device_id: payload.device_id ?? ownDeviceId,
58
+ user_id: payload.user_id ?? "system",
59
+ entity_id: event.order_id ?? "",
60
+ payload,
61
+ };
62
+ // Persist to durable offline read model (entity_snapshots table).
63
+ orderSnapshotsService.persistOrderEvent(domainEvent, "cloud").catch(() => { });
64
+ // Publish through the Sync Engine so useSyncReconciliation + LAN relay
65
+ // fire without waiting for the next poll.
66
+ try {
67
+ syncEngine.publish(domainEvent);
68
+ }
69
+ catch { }
70
+ if (!timer)
71
+ timer = setTimeout(flush, INVALIDATE_DEBOUNCE_MS);
72
+ });
73
+ return () => {
74
+ if (timer)
75
+ clearTimeout(timer);
76
+ unsub();
77
+ };
78
+ }, [queryClient, rootKey]);
79
+ }
80
+ /**
81
+ * Global realtime invalidation — currently handled entirely by
82
+ * useOrderRealtimeUpdates + useSyncReconciliation. Kept as a no-op for
83
+ * backward compatibility with any lingering call sites.
84
+ */
85
+ export function useRealtimeInvalidation() { }
@@ -0,0 +1,470 @@
1
+ /**
2
+ * Rider hooks — single source for both apps (previously verbatim copies).
3
+ * Reads serve cache instantly; network refreshes silently when online.
4
+ */
5
+ import type { RiderDelivery } from "../types/api/rider.api";
6
+ import type { DeliveryZone, NavigationSettings } from "../types/rider";
7
+ export declare const RIDER_KEYS: {
8
+ all: readonly ["rider"];
9
+ profile: () => readonly ["rider", "profile"];
10
+ metrics: () => readonly ["rider", "metrics"];
11
+ activeDelivery: () => readonly ["rider", "active-delivery"];
12
+ deliveries: () => readonly ["rider", "deliveries"];
13
+ deliveryDetail: (id: string) => readonly ["rider", "delivery", string];
14
+ earnings: () => readonly ["rider", "earnings"];
15
+ earningsBreakdown: () => readonly ["rider", "earnings-breakdown"];
16
+ earningsSummary: (period: string) => readonly ["rider", "earnings-summary", string];
17
+ transactions: () => readonly ["rider", "transactions"];
18
+ statistics: () => readonly ["rider", "statistics"];
19
+ vehicleInfo: () => readonly ["rider", "vehicle"];
20
+ deliveryZones: () => readonly ["rider", "zones"];
21
+ navigationSettings: () => readonly ["rider", "navigation"];
22
+ navigationApps: () => readonly ["rider", "navigation-apps"];
23
+ };
24
+ export declare function useAvailableOrdersQuery(enabled?: boolean): import("@tanstack/react-query").UseQueryResult<unknown, Error>;
25
+ export declare function useClaimOrderMutation(): import("@tanstack/react-query").UseMutationResult<unknown, Error, string, unknown>;
26
+ export declare function useSelfAssignMutation(): import("@tanstack/react-query").UseMutationResult<unknown, Error, string, unknown>;
27
+ export declare function useRiderProfileQuery(enabled?: boolean): import("@tanstack/react-query").UseQueryResult<unknown, Error>;
28
+ export declare function useRiderMetricsQuery(enabled?: boolean): import("@tanstack/react-query").UseQueryResult<unknown, Error>;
29
+ export declare function useActiveDeliveryQuery(enabled?: boolean): import("@tanstack/react-query").UseQueryResult<unknown, Error>;
30
+ export declare function useRiderDeliveriesQuery(enabled?: boolean, filters?: {
31
+ q?: string;
32
+ status?: string;
33
+ order_number?: string;
34
+ date_from?: string;
35
+ date_to?: string;
36
+ }): {
37
+ dataUpdatedAt: number;
38
+ errorUpdatedAt: number;
39
+ failureCount: number;
40
+ failureReason: Error | null;
41
+ errorUpdateCount: number;
42
+ isFetched: boolean;
43
+ isFetchedAfterMount: boolean;
44
+ isFetching: boolean;
45
+ isInitialLoading: boolean;
46
+ isPaused: boolean;
47
+ isRefetching: boolean;
48
+ isStale: boolean;
49
+ isEnabled: boolean;
50
+ refetch: (options?: import("@tanstack/react-query").RefetchOptions) => Promise<import("@tanstack/react-query").QueryObserverResult<import("@tanstack/react-query").InfiniteData<import("./use-infinite-list").ListPage<RiderDelivery>, unknown>, Error>>;
51
+ fetchStatus: import("@tanstack/react-query").FetchStatus;
52
+ fetchNextPage: (options?: import("@tanstack/react-query").FetchNextPageOptions) => Promise<import("@tanstack/react-query").InfiniteQueryObserverResult<import("@tanstack/react-query").InfiniteData<import("./use-infinite-list").ListPage<RiderDelivery>, unknown>, Error>>;
53
+ fetchPreviousPage: (options?: import("@tanstack/react-query").FetchPreviousPageOptions) => Promise<import("@tanstack/react-query").InfiniteQueryObserverResult<import("@tanstack/react-query").InfiniteData<import("./use-infinite-list").ListPage<RiderDelivery>, unknown>, Error>>;
54
+ hasNextPage: boolean;
55
+ hasPreviousPage: boolean;
56
+ isFetchingNextPage: boolean;
57
+ isFetchingPreviousPage: boolean;
58
+ error: Error;
59
+ isError: true;
60
+ isPending: false;
61
+ isLoading: false;
62
+ isLoadingError: true;
63
+ isRefetchError: false;
64
+ isFetchNextPageError: false;
65
+ isFetchPreviousPageError: false;
66
+ isSuccess: false;
67
+ isPlaceholderData: false;
68
+ status: 'error';
69
+ data: RiderDelivery[] | undefined;
70
+ } | {
71
+ dataUpdatedAt: number;
72
+ errorUpdatedAt: number;
73
+ failureCount: number;
74
+ failureReason: Error | null;
75
+ errorUpdateCount: number;
76
+ isFetched: boolean;
77
+ isFetchedAfterMount: boolean;
78
+ isFetching: boolean;
79
+ isInitialLoading: boolean;
80
+ isPaused: boolean;
81
+ isRefetching: boolean;
82
+ isStale: boolean;
83
+ isEnabled: boolean;
84
+ refetch: (options?: import("@tanstack/react-query").RefetchOptions) => Promise<import("@tanstack/react-query").QueryObserverResult<import("@tanstack/react-query").InfiniteData<import("./use-infinite-list").ListPage<RiderDelivery>, unknown>, Error>>;
85
+ fetchStatus: import("@tanstack/react-query").FetchStatus;
86
+ fetchNextPage: (options?: import("@tanstack/react-query").FetchNextPageOptions) => Promise<import("@tanstack/react-query").InfiniteQueryObserverResult<import("@tanstack/react-query").InfiniteData<import("./use-infinite-list").ListPage<RiderDelivery>, unknown>, Error>>;
87
+ fetchPreviousPage: (options?: import("@tanstack/react-query").FetchPreviousPageOptions) => Promise<import("@tanstack/react-query").InfiniteQueryObserverResult<import("@tanstack/react-query").InfiniteData<import("./use-infinite-list").ListPage<RiderDelivery>, unknown>, Error>>;
88
+ hasNextPage: boolean;
89
+ hasPreviousPage: boolean;
90
+ isFetchingNextPage: boolean;
91
+ isFetchingPreviousPage: boolean;
92
+ error: null;
93
+ isError: false;
94
+ isPending: true;
95
+ isLoading: true;
96
+ isLoadingError: false;
97
+ isRefetchError: false;
98
+ isFetchNextPageError: false;
99
+ isFetchPreviousPageError: false;
100
+ isSuccess: false;
101
+ isPlaceholderData: false;
102
+ status: 'pending';
103
+ data: RiderDelivery[] | undefined;
104
+ } | {
105
+ dataUpdatedAt: number;
106
+ errorUpdatedAt: number;
107
+ failureCount: number;
108
+ failureReason: Error | null;
109
+ errorUpdateCount: number;
110
+ isFetched: boolean;
111
+ isFetchedAfterMount: boolean;
112
+ isFetching: boolean;
113
+ isLoading: boolean;
114
+ isInitialLoading: boolean;
115
+ isPaused: boolean;
116
+ isRefetching: boolean;
117
+ isStale: boolean;
118
+ isEnabled: boolean;
119
+ refetch: (options?: import("@tanstack/react-query").RefetchOptions) => Promise<import("@tanstack/react-query").QueryObserverResult<import("@tanstack/react-query").InfiniteData<import("./use-infinite-list").ListPage<RiderDelivery>, unknown>, Error>>;
120
+ fetchStatus: import("@tanstack/react-query").FetchStatus;
121
+ fetchNextPage: (options?: import("@tanstack/react-query").FetchNextPageOptions) => Promise<import("@tanstack/react-query").InfiniteQueryObserverResult<import("@tanstack/react-query").InfiniteData<import("./use-infinite-list").ListPage<RiderDelivery>, unknown>, Error>>;
122
+ fetchPreviousPage: (options?: import("@tanstack/react-query").FetchPreviousPageOptions) => Promise<import("@tanstack/react-query").InfiniteQueryObserverResult<import("@tanstack/react-query").InfiniteData<import("./use-infinite-list").ListPage<RiderDelivery>, unknown>, Error>>;
123
+ hasNextPage: boolean;
124
+ hasPreviousPage: boolean;
125
+ isFetchingNextPage: boolean;
126
+ isFetchingPreviousPage: boolean;
127
+ error: null;
128
+ isError: false;
129
+ isPending: true;
130
+ isLoadingError: false;
131
+ isRefetchError: false;
132
+ isFetchNextPageError: false;
133
+ isFetchPreviousPageError: false;
134
+ isSuccess: false;
135
+ isPlaceholderData: false;
136
+ status: 'pending';
137
+ data: RiderDelivery[] | undefined;
138
+ } | {
139
+ dataUpdatedAt: number;
140
+ errorUpdatedAt: number;
141
+ failureCount: number;
142
+ failureReason: Error | null;
143
+ errorUpdateCount: number;
144
+ isFetched: boolean;
145
+ isFetchedAfterMount: boolean;
146
+ isFetching: boolean;
147
+ isInitialLoading: boolean;
148
+ isPaused: boolean;
149
+ isRefetching: boolean;
150
+ isStale: boolean;
151
+ isEnabled: boolean;
152
+ refetch: (options?: import("@tanstack/react-query").RefetchOptions) => Promise<import("@tanstack/react-query").QueryObserverResult<import("@tanstack/react-query").InfiniteData<import("./use-infinite-list").ListPage<RiderDelivery>, unknown>, Error>>;
153
+ fetchStatus: import("@tanstack/react-query").FetchStatus;
154
+ fetchNextPage: (options?: import("@tanstack/react-query").FetchNextPageOptions) => Promise<import("@tanstack/react-query").InfiniteQueryObserverResult<import("@tanstack/react-query").InfiniteData<import("./use-infinite-list").ListPage<RiderDelivery>, unknown>, Error>>;
155
+ fetchPreviousPage: (options?: import("@tanstack/react-query").FetchPreviousPageOptions) => Promise<import("@tanstack/react-query").InfiniteQueryObserverResult<import("@tanstack/react-query").InfiniteData<import("./use-infinite-list").ListPage<RiderDelivery>, unknown>, Error>>;
156
+ hasNextPage: boolean;
157
+ hasPreviousPage: boolean;
158
+ isFetchingNextPage: boolean;
159
+ isFetchingPreviousPage: boolean;
160
+ isError: false;
161
+ error: null;
162
+ isPending: false;
163
+ isLoading: false;
164
+ isLoadingError: false;
165
+ isRefetchError: false;
166
+ isSuccess: true;
167
+ isPlaceholderData: true;
168
+ isFetchNextPageError: false;
169
+ isFetchPreviousPageError: false;
170
+ status: 'success';
171
+ data: RiderDelivery[] | undefined;
172
+ } | {
173
+ dataUpdatedAt: number;
174
+ errorUpdatedAt: number;
175
+ failureCount: number;
176
+ failureReason: Error | null;
177
+ errorUpdateCount: number;
178
+ isFetched: boolean;
179
+ isFetchedAfterMount: boolean;
180
+ isFetching: boolean;
181
+ isInitialLoading: boolean;
182
+ isPaused: boolean;
183
+ isRefetching: boolean;
184
+ isStale: boolean;
185
+ isEnabled: boolean;
186
+ refetch: (options?: import("@tanstack/react-query").RefetchOptions) => Promise<import("@tanstack/react-query").QueryObserverResult<import("@tanstack/react-query").InfiniteData<import("./use-infinite-list").ListPage<RiderDelivery>, unknown>, Error>>;
187
+ fetchStatus: import("@tanstack/react-query").FetchStatus;
188
+ fetchNextPage: (options?: import("@tanstack/react-query").FetchNextPageOptions) => Promise<import("@tanstack/react-query").InfiniteQueryObserverResult<import("@tanstack/react-query").InfiniteData<import("./use-infinite-list").ListPage<RiderDelivery>, unknown>, Error>>;
189
+ fetchPreviousPage: (options?: import("@tanstack/react-query").FetchPreviousPageOptions) => Promise<import("@tanstack/react-query").InfiniteQueryObserverResult<import("@tanstack/react-query").InfiniteData<import("./use-infinite-list").ListPage<RiderDelivery>, unknown>, Error>>;
190
+ hasNextPage: boolean;
191
+ hasPreviousPage: boolean;
192
+ isFetchNextPageError: boolean;
193
+ isFetchingNextPage: boolean;
194
+ isFetchPreviousPageError: boolean;
195
+ isFetchingPreviousPage: boolean;
196
+ error: Error;
197
+ isError: true;
198
+ isPending: false;
199
+ isLoading: false;
200
+ isLoadingError: false;
201
+ isRefetchError: true;
202
+ isSuccess: false;
203
+ isPlaceholderData: false;
204
+ status: 'error';
205
+ data: RiderDelivery[] | undefined;
206
+ } | {
207
+ dataUpdatedAt: number;
208
+ errorUpdatedAt: number;
209
+ failureCount: number;
210
+ failureReason: Error | null;
211
+ errorUpdateCount: number;
212
+ isFetched: boolean;
213
+ isFetchedAfterMount: boolean;
214
+ isFetching: boolean;
215
+ isInitialLoading: boolean;
216
+ isPaused: boolean;
217
+ isRefetching: boolean;
218
+ isStale: boolean;
219
+ isEnabled: boolean;
220
+ refetch: (options?: import("@tanstack/react-query").RefetchOptions) => Promise<import("@tanstack/react-query").QueryObserverResult<import("@tanstack/react-query").InfiniteData<import("./use-infinite-list").ListPage<RiderDelivery>, unknown>, Error>>;
221
+ fetchStatus: import("@tanstack/react-query").FetchStatus;
222
+ fetchNextPage: (options?: import("@tanstack/react-query").FetchNextPageOptions) => Promise<import("@tanstack/react-query").InfiniteQueryObserverResult<import("@tanstack/react-query").InfiniteData<import("./use-infinite-list").ListPage<RiderDelivery>, unknown>, Error>>;
223
+ fetchPreviousPage: (options?: import("@tanstack/react-query").FetchPreviousPageOptions) => Promise<import("@tanstack/react-query").InfiniteQueryObserverResult<import("@tanstack/react-query").InfiniteData<import("./use-infinite-list").ListPage<RiderDelivery>, unknown>, Error>>;
224
+ hasNextPage: boolean;
225
+ hasPreviousPage: boolean;
226
+ isFetchingNextPage: boolean;
227
+ isFetchingPreviousPage: boolean;
228
+ error: null;
229
+ isError: false;
230
+ isPending: false;
231
+ isLoading: false;
232
+ isLoadingError: false;
233
+ isRefetchError: false;
234
+ isFetchNextPageError: false;
235
+ isFetchPreviousPageError: false;
236
+ isSuccess: true;
237
+ isPlaceholderData: false;
238
+ status: 'success';
239
+ data: RiderDelivery[] | undefined;
240
+ };
241
+ export declare function useRiderDeliveryDetailQuery(deliveryId: string, enabled?: boolean): import("@tanstack/react-query").UseQueryResult<unknown, Error>;
242
+ export declare function useUpdateDeliveryStatusMutation(): import("@tanstack/react-query").UseMutationResult<unknown, Error, {
243
+ deliveryId: string;
244
+ action: string;
245
+ }, unknown>;
246
+ export declare function useAcceptDeliveryMutation(): import("@tanstack/react-query").UseMutationResult<unknown, Error, string, unknown>;
247
+ export declare function useRiderEarningsQuery(enabled?: boolean): import("@tanstack/react-query").UseQueryResult<unknown, Error>;
248
+ export declare function useEarningsBreakdownQuery(enabled?: boolean): import("@tanstack/react-query").UseQueryResult<unknown, Error>;
249
+ export declare function useRiderEarningsSummaryQuery(period: "today" | "this_week" | "this_month", enabled?: boolean): import("@tanstack/react-query").UseQueryResult<unknown, Error>;
250
+ export declare function useRiderWalletHistoryQuery(enabled?: boolean): {
251
+ dataUpdatedAt: number;
252
+ errorUpdatedAt: number;
253
+ failureCount: number;
254
+ failureReason: Error | null;
255
+ errorUpdateCount: number;
256
+ isFetched: boolean;
257
+ isFetchedAfterMount: boolean;
258
+ isFetching: boolean;
259
+ isInitialLoading: boolean;
260
+ isPaused: boolean;
261
+ isRefetching: boolean;
262
+ isStale: boolean;
263
+ isEnabled: boolean;
264
+ refetch: (options?: import("@tanstack/react-query").RefetchOptions) => Promise<import("@tanstack/react-query").QueryObserverResult<import("@tanstack/react-query").InfiniteData<import("./use-infinite-list").ListPage<Record<string, unknown>>, unknown>, Error>>;
265
+ fetchStatus: import("@tanstack/react-query").FetchStatus;
266
+ fetchNextPage: (options?: import("@tanstack/react-query").FetchNextPageOptions) => Promise<import("@tanstack/react-query").InfiniteQueryObserverResult<import("@tanstack/react-query").InfiniteData<import("./use-infinite-list").ListPage<Record<string, unknown>>, unknown>, Error>>;
267
+ fetchPreviousPage: (options?: import("@tanstack/react-query").FetchPreviousPageOptions) => Promise<import("@tanstack/react-query").InfiniteQueryObserverResult<import("@tanstack/react-query").InfiniteData<import("./use-infinite-list").ListPage<Record<string, unknown>>, unknown>, Error>>;
268
+ hasNextPage: boolean;
269
+ hasPreviousPage: boolean;
270
+ isFetchingNextPage: boolean;
271
+ isFetchingPreviousPage: boolean;
272
+ error: Error;
273
+ isError: true;
274
+ isPending: false;
275
+ isLoading: false;
276
+ isLoadingError: true;
277
+ isRefetchError: false;
278
+ isFetchNextPageError: false;
279
+ isFetchPreviousPageError: false;
280
+ isSuccess: false;
281
+ isPlaceholderData: false;
282
+ status: 'error';
283
+ data: Record<string, unknown>[] | undefined;
284
+ } | {
285
+ dataUpdatedAt: number;
286
+ errorUpdatedAt: number;
287
+ failureCount: number;
288
+ failureReason: Error | null;
289
+ errorUpdateCount: number;
290
+ isFetched: boolean;
291
+ isFetchedAfterMount: boolean;
292
+ isFetching: boolean;
293
+ isInitialLoading: boolean;
294
+ isPaused: boolean;
295
+ isRefetching: boolean;
296
+ isStale: boolean;
297
+ isEnabled: boolean;
298
+ refetch: (options?: import("@tanstack/react-query").RefetchOptions) => Promise<import("@tanstack/react-query").QueryObserverResult<import("@tanstack/react-query").InfiniteData<import("./use-infinite-list").ListPage<Record<string, unknown>>, unknown>, Error>>;
299
+ fetchStatus: import("@tanstack/react-query").FetchStatus;
300
+ fetchNextPage: (options?: import("@tanstack/react-query").FetchNextPageOptions) => Promise<import("@tanstack/react-query").InfiniteQueryObserverResult<import("@tanstack/react-query").InfiniteData<import("./use-infinite-list").ListPage<Record<string, unknown>>, unknown>, Error>>;
301
+ fetchPreviousPage: (options?: import("@tanstack/react-query").FetchPreviousPageOptions) => Promise<import("@tanstack/react-query").InfiniteQueryObserverResult<import("@tanstack/react-query").InfiniteData<import("./use-infinite-list").ListPage<Record<string, unknown>>, unknown>, Error>>;
302
+ hasNextPage: boolean;
303
+ hasPreviousPage: boolean;
304
+ isFetchingNextPage: boolean;
305
+ isFetchingPreviousPage: boolean;
306
+ error: null;
307
+ isError: false;
308
+ isPending: true;
309
+ isLoading: true;
310
+ isLoadingError: false;
311
+ isRefetchError: false;
312
+ isFetchNextPageError: false;
313
+ isFetchPreviousPageError: false;
314
+ isSuccess: false;
315
+ isPlaceholderData: false;
316
+ status: 'pending';
317
+ data: Record<string, unknown>[] | undefined;
318
+ } | {
319
+ dataUpdatedAt: number;
320
+ errorUpdatedAt: number;
321
+ failureCount: number;
322
+ failureReason: Error | null;
323
+ errorUpdateCount: number;
324
+ isFetched: boolean;
325
+ isFetchedAfterMount: boolean;
326
+ isFetching: boolean;
327
+ isLoading: boolean;
328
+ isInitialLoading: boolean;
329
+ isPaused: boolean;
330
+ isRefetching: boolean;
331
+ isStale: boolean;
332
+ isEnabled: boolean;
333
+ refetch: (options?: import("@tanstack/react-query").RefetchOptions) => Promise<import("@tanstack/react-query").QueryObserverResult<import("@tanstack/react-query").InfiniteData<import("./use-infinite-list").ListPage<Record<string, unknown>>, unknown>, Error>>;
334
+ fetchStatus: import("@tanstack/react-query").FetchStatus;
335
+ fetchNextPage: (options?: import("@tanstack/react-query").FetchNextPageOptions) => Promise<import("@tanstack/react-query").InfiniteQueryObserverResult<import("@tanstack/react-query").InfiniteData<import("./use-infinite-list").ListPage<Record<string, unknown>>, unknown>, Error>>;
336
+ fetchPreviousPage: (options?: import("@tanstack/react-query").FetchPreviousPageOptions) => Promise<import("@tanstack/react-query").InfiniteQueryObserverResult<import("@tanstack/react-query").InfiniteData<import("./use-infinite-list").ListPage<Record<string, unknown>>, unknown>, Error>>;
337
+ hasNextPage: boolean;
338
+ hasPreviousPage: boolean;
339
+ isFetchingNextPage: boolean;
340
+ isFetchingPreviousPage: boolean;
341
+ error: null;
342
+ isError: false;
343
+ isPending: true;
344
+ isLoadingError: false;
345
+ isRefetchError: false;
346
+ isFetchNextPageError: false;
347
+ isFetchPreviousPageError: false;
348
+ isSuccess: false;
349
+ isPlaceholderData: false;
350
+ status: 'pending';
351
+ data: Record<string, unknown>[] | undefined;
352
+ } | {
353
+ dataUpdatedAt: number;
354
+ errorUpdatedAt: number;
355
+ failureCount: number;
356
+ failureReason: Error | null;
357
+ errorUpdateCount: number;
358
+ isFetched: boolean;
359
+ isFetchedAfterMount: boolean;
360
+ isFetching: boolean;
361
+ isInitialLoading: boolean;
362
+ isPaused: boolean;
363
+ isRefetching: boolean;
364
+ isStale: boolean;
365
+ isEnabled: boolean;
366
+ refetch: (options?: import("@tanstack/react-query").RefetchOptions) => Promise<import("@tanstack/react-query").QueryObserverResult<import("@tanstack/react-query").InfiniteData<import("./use-infinite-list").ListPage<Record<string, unknown>>, unknown>, Error>>;
367
+ fetchStatus: import("@tanstack/react-query").FetchStatus;
368
+ fetchNextPage: (options?: import("@tanstack/react-query").FetchNextPageOptions) => Promise<import("@tanstack/react-query").InfiniteQueryObserverResult<import("@tanstack/react-query").InfiniteData<import("./use-infinite-list").ListPage<Record<string, unknown>>, unknown>, Error>>;
369
+ fetchPreviousPage: (options?: import("@tanstack/react-query").FetchPreviousPageOptions) => Promise<import("@tanstack/react-query").InfiniteQueryObserverResult<import("@tanstack/react-query").InfiniteData<import("./use-infinite-list").ListPage<Record<string, unknown>>, unknown>, Error>>;
370
+ hasNextPage: boolean;
371
+ hasPreviousPage: boolean;
372
+ isFetchingNextPage: boolean;
373
+ isFetchingPreviousPage: boolean;
374
+ isError: false;
375
+ error: null;
376
+ isPending: false;
377
+ isLoading: false;
378
+ isLoadingError: false;
379
+ isRefetchError: false;
380
+ isSuccess: true;
381
+ isPlaceholderData: true;
382
+ isFetchNextPageError: false;
383
+ isFetchPreviousPageError: false;
384
+ status: 'success';
385
+ data: Record<string, unknown>[] | undefined;
386
+ } | {
387
+ dataUpdatedAt: number;
388
+ errorUpdatedAt: number;
389
+ failureCount: number;
390
+ failureReason: Error | null;
391
+ errorUpdateCount: number;
392
+ isFetched: boolean;
393
+ isFetchedAfterMount: boolean;
394
+ isFetching: boolean;
395
+ isInitialLoading: boolean;
396
+ isPaused: boolean;
397
+ isRefetching: boolean;
398
+ isStale: boolean;
399
+ isEnabled: boolean;
400
+ refetch: (options?: import("@tanstack/react-query").RefetchOptions) => Promise<import("@tanstack/react-query").QueryObserverResult<import("@tanstack/react-query").InfiniteData<import("./use-infinite-list").ListPage<Record<string, unknown>>, unknown>, Error>>;
401
+ fetchStatus: import("@tanstack/react-query").FetchStatus;
402
+ fetchNextPage: (options?: import("@tanstack/react-query").FetchNextPageOptions) => Promise<import("@tanstack/react-query").InfiniteQueryObserverResult<import("@tanstack/react-query").InfiniteData<import("./use-infinite-list").ListPage<Record<string, unknown>>, unknown>, Error>>;
403
+ fetchPreviousPage: (options?: import("@tanstack/react-query").FetchPreviousPageOptions) => Promise<import("@tanstack/react-query").InfiniteQueryObserverResult<import("@tanstack/react-query").InfiniteData<import("./use-infinite-list").ListPage<Record<string, unknown>>, unknown>, Error>>;
404
+ hasNextPage: boolean;
405
+ hasPreviousPage: boolean;
406
+ isFetchNextPageError: boolean;
407
+ isFetchingNextPage: boolean;
408
+ isFetchPreviousPageError: boolean;
409
+ isFetchingPreviousPage: boolean;
410
+ error: Error;
411
+ isError: true;
412
+ isPending: false;
413
+ isLoading: false;
414
+ isLoadingError: false;
415
+ isRefetchError: true;
416
+ isSuccess: false;
417
+ isPlaceholderData: false;
418
+ status: 'error';
419
+ data: Record<string, unknown>[] | undefined;
420
+ } | {
421
+ dataUpdatedAt: number;
422
+ errorUpdatedAt: number;
423
+ failureCount: number;
424
+ failureReason: Error | null;
425
+ errorUpdateCount: number;
426
+ isFetched: boolean;
427
+ isFetchedAfterMount: boolean;
428
+ isFetching: boolean;
429
+ isInitialLoading: boolean;
430
+ isPaused: boolean;
431
+ isRefetching: boolean;
432
+ isStale: boolean;
433
+ isEnabled: boolean;
434
+ refetch: (options?: import("@tanstack/react-query").RefetchOptions) => Promise<import("@tanstack/react-query").QueryObserverResult<import("@tanstack/react-query").InfiniteData<import("./use-infinite-list").ListPage<Record<string, unknown>>, unknown>, Error>>;
435
+ fetchStatus: import("@tanstack/react-query").FetchStatus;
436
+ fetchNextPage: (options?: import("@tanstack/react-query").FetchNextPageOptions) => Promise<import("@tanstack/react-query").InfiniteQueryObserverResult<import("@tanstack/react-query").InfiniteData<import("./use-infinite-list").ListPage<Record<string, unknown>>, unknown>, Error>>;
437
+ fetchPreviousPage: (options?: import("@tanstack/react-query").FetchPreviousPageOptions) => Promise<import("@tanstack/react-query").InfiniteQueryObserverResult<import("@tanstack/react-query").InfiniteData<import("./use-infinite-list").ListPage<Record<string, unknown>>, unknown>, Error>>;
438
+ hasNextPage: boolean;
439
+ hasPreviousPage: boolean;
440
+ isFetchingNextPage: boolean;
441
+ isFetchingPreviousPage: boolean;
442
+ error: null;
443
+ isError: false;
444
+ isPending: false;
445
+ isLoading: false;
446
+ isLoadingError: false;
447
+ isRefetchError: false;
448
+ isFetchNextPageError: false;
449
+ isFetchPreviousPageError: false;
450
+ isSuccess: true;
451
+ isPlaceholderData: false;
452
+ status: 'success';
453
+ data: Record<string, unknown>[] | undefined;
454
+ };
455
+ export declare function useRequestPayoutMutation(): import("@tanstack/react-query").UseMutationResult<never, Error, number, unknown>;
456
+ export declare function useRiderStatisticsQuery(enabled?: boolean): import("@tanstack/react-query").UseQueryResult<unknown, Error>;
457
+ export declare function useVehicleInfoQuery(enabled?: boolean): import("@tanstack/react-query").UseQueryResult<unknown, Error>;
458
+ export declare function useCreateVehicleMutation(): import("@tanstack/react-query").UseMutationResult<unknown, Error, unknown, unknown>;
459
+ export declare function useDeliveryZonesQuery(enabled?: boolean): import("@tanstack/react-query").UseQueryResult<unknown, Error>;
460
+ export declare function useUpdateDeliveryZonesMutation(): import("@tanstack/react-query").UseMutationResult<unknown, Error, DeliveryZone[], unknown>;
461
+ export declare function useToggleDeliveryZoneMutation(): import("@tanstack/react-query").UseMutationResult<unknown, Error, {
462
+ zoneId: string;
463
+ enabled: boolean;
464
+ }, unknown>;
465
+ export declare function useNavigationSettingsQuery(enabled?: boolean): import("@tanstack/react-query").UseQueryResult<unknown, Error>;
466
+ export declare function useUpdateNavigationSettingsMutation(): import("@tanstack/react-query").UseMutationResult<unknown, Error, Partial<NavigationSettings>, unknown>;
467
+ export declare function useUpdateOnlineStatusMutation(): import("@tanstack/react-query").UseMutationResult<unknown, Error, boolean, unknown>;
468
+ export declare function useNavigationAppsQuery(enabled?: boolean): import("@tanstack/react-query").UseQueryResult<unknown, Error>;
469
+ export declare function useVehicleTypesQuery(enabled?: boolean): import("@tanstack/react-query").UseQueryResult<unknown, Error>;
470
+ export declare function useToggleOnlineMutation(): import("@tanstack/react-query").UseMutationResult<unknown, Error, boolean, unknown>;