@thelacanians/vue-native-runtime 0.4.15 → 0.6.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.
package/dist/index.d.cts CHANGED
@@ -1,5 +1,5 @@
1
1
  import * as _vue_runtime_core from '@vue/runtime-core';
2
- import { PropType, VNode, Directive, Ref, ComputedRef, App, Component } from '@vue/runtime-core';
2
+ import { PropType, VNode, Ref, Component, Directive, ComputedRef, App } from '@vue/runtime-core';
3
3
  export * from '@vue/runtime-core';
4
4
  import * as _vue_reactivity from '@vue/reactivity';
5
5
 
@@ -151,8 +151,8 @@ interface ViewStyle {
151
151
  accessibilityLabel?: string;
152
152
  accessibilityRole?: string;
153
153
  accessibilityHint?: string;
154
- accessibilityState?: Record<string, any>;
155
- accessibilityValue?: Record<string, any>;
154
+ accessibilityState?: Record<string, unknown>;
155
+ accessibilityValue?: Record<string, unknown>;
156
156
  accessible?: boolean;
157
157
  importantForAccessibility?: ImportantForAccessibility;
158
158
  }
@@ -194,12 +194,12 @@ declare const validStyleProperties: ReadonlySet<string>;
194
194
  * Can be a ViewStyle, TextStyle, or ImageStyle from the typed interfaces,
195
195
  * or a plain record for backwards compatibility.
196
196
  */
197
- type StyleProp = Record<string, any>;
197
+ type StyleProp = Record<string, unknown>;
198
198
  /**
199
199
  * The result type of createStyleSheet — keys are the same as the input,
200
200
  * values are frozen style objects.
201
201
  */
202
- type StyleSheet<T extends Record<string, StyleProp>> = Readonly<{
202
+ type StyleSheet<T extends Record<string, object>> = Readonly<{
203
203
  [K in keyof T]: Readonly<T[K]>;
204
204
  }>;
205
205
 
@@ -231,7 +231,7 @@ type AnyStyle = ViewStyle | TextStyle | ImageStyle;
231
231
  * })
232
232
  * ```
233
233
  */
234
- declare function createStyleSheet<T extends Record<string, StyleProp>>(styles: T): StyleSheet<T>;
234
+ declare function createStyleSheet<T extends Record<string, object>>(styles: T): StyleSheet<T>;
235
235
 
236
236
  /**
237
237
  * TypeScript prop interfaces for Vue Native components.
@@ -245,7 +245,7 @@ interface AccessibilityProps {
245
245
  accessibilityLabel?: string;
246
246
  accessibilityRole?: string;
247
247
  accessibilityHint?: string;
248
- accessibilityState?: Record<string, any>;
248
+ accessibilityState?: Record<string, unknown>;
249
249
  }
250
250
  interface VViewProps extends AccessibilityProps {
251
251
  style?: ViewStyle;
@@ -314,9 +314,9 @@ interface VSliderProps extends AccessibilityProps {
314
314
  max?: number;
315
315
  style?: ViewStyle;
316
316
  }
317
- interface VListProps {
318
- data: any[];
319
- keyExtractor?: (item: any, index: number) => string;
317
+ interface VListProps<T = unknown> {
318
+ data: T[];
319
+ keyExtractor?: (item: T, index: number) => string;
320
320
  estimatedItemHeight?: number;
321
321
  showsScrollIndicator?: boolean;
322
322
  bounces?: boolean;
@@ -451,18 +451,59 @@ interface VVideoProps extends AccessibilityProps {
451
451
  style?: ViewStyle;
452
452
  testID?: string;
453
453
  }
454
- interface VSectionListProps {
455
- sections: Array<{
456
- title: string;
457
- data: any[];
458
- }>;
459
- keyExtractor?: (item: any, index: number) => string;
454
+ interface VSectionListSection<T = unknown> {
455
+ title: string;
456
+ data: T[];
457
+ }
458
+ interface VSectionListProps<T = unknown> {
459
+ sections: VSectionListSection<T>[];
460
+ keyExtractor?: (item: T, index: number) => string;
460
461
  estimatedItemHeight?: number;
461
462
  stickySectionHeaders?: boolean;
462
463
  showsScrollIndicator?: boolean;
463
464
  bounces?: boolean;
464
465
  style?: ViewStyle;
465
466
  }
467
+ interface VFlatListProps<T = unknown, TRendered = unknown> {
468
+ data: T[];
469
+ renderItem?: (info: {
470
+ item: T;
471
+ index: number;
472
+ }) => TRendered;
473
+ keyExtractor?: (item: T, index: number) => string | number;
474
+ itemHeight: number;
475
+ windowSize?: number;
476
+ style?: ViewStyle;
477
+ showsScrollIndicator?: boolean;
478
+ bounces?: boolean;
479
+ headerHeight?: number;
480
+ endReachedThreshold?: number;
481
+ }
482
+ interface VTabBarProps {
483
+ tabs: Array<{
484
+ id: string;
485
+ label: string;
486
+ icon?: string;
487
+ badge?: number | string;
488
+ }>;
489
+ activeTab: string;
490
+ position?: 'top' | 'bottom';
491
+ }
492
+ interface VDrawerProps {
493
+ open?: boolean;
494
+ position?: 'left' | 'right';
495
+ width?: number;
496
+ closeOnPress?: boolean;
497
+ }
498
+ interface VDrawerItemProps extends AccessibilityProps {
499
+ icon?: string;
500
+ label: string;
501
+ badge?: number | string | null;
502
+ disabled?: boolean;
503
+ }
504
+ interface VDrawerSectionProps {
505
+ title?: string;
506
+ }
466
507
 
467
508
  /**
468
509
  * VView — the fundamental container component in Vue Native.
@@ -976,10 +1017,10 @@ declare const VImage: _vue_runtime_core.DefineComponent<_vue_runtime_core.Extrac
976
1017
  accessibilityHint: StringConstructor;
977
1018
  accessibilityState: ObjectConstructor;
978
1019
  }>> & Readonly<{
979
- onLoad?: ((...args: any[]) => any) | undefined;
980
1020
  onError?: ((...args: any[]) => any) | undefined;
1021
+ onLoad?: ((...args: any[]) => any) | undefined;
981
1022
  }>, {
982
- resizeMode: "cover" | "contain" | "stretch" | "center";
1023
+ resizeMode: "center" | "stretch" | "cover" | "contain";
983
1024
  }, {}, {}, {}, string, _vue_runtime_core.ComponentProvideOptions, true, {}, any>;
984
1025
 
985
1026
  /**
@@ -1099,13 +1140,13 @@ declare const VSlider: _vue_runtime_core.DefineComponent<_vue_runtime_core.Extra
1099
1140
  declare const VList: _vue_runtime_core.DefineComponent<_vue_runtime_core.ExtractPropTypes<{
1100
1141
  /** Array of data items to render */
1101
1142
  data: {
1102
- type: () => any[];
1143
+ type: PropType<unknown[]>;
1103
1144
  required: true;
1104
1145
  };
1105
1146
  /** Extract a unique key from each item. Defaults to index as string. */
1106
1147
  keyExtractor: {
1107
- type: () => (item: any, index: number) => string;
1108
- default: (_item: any, index: number) => string;
1148
+ type: PropType<(item: unknown, index: number) => string>;
1149
+ default: (_item: unknown, index: number) => string;
1109
1150
  };
1110
1151
  /** Estimated height per row in points. Used before layout runs. Default: 44 */
1111
1152
  estimatedItemHeight: {
@@ -1131,18 +1172,18 @@ declare const VList: _vue_runtime_core.DefineComponent<_vue_runtime_core.Extract
1131
1172
  type: PropType<ViewStyle>;
1132
1173
  default: () => {};
1133
1174
  };
1134
- }>, () => _vue_runtime_core.VNode<_vue_runtime_core.RendererNode, _vue_runtime_core.RendererElement, {
1175
+ }>, () => VNode<_vue_runtime_core.RendererNode, _vue_runtime_core.RendererElement, {
1135
1176
  [key: string]: any;
1136
1177
  }>, {}, {}, {}, _vue_runtime_core.ComponentOptionsMixin, _vue_runtime_core.ComponentOptionsMixin, ("scroll" | "endReached")[], "scroll" | "endReached", _vue_runtime_core.PublicProps, Readonly<_vue_runtime_core.ExtractPropTypes<{
1137
1178
  /** Array of data items to render */
1138
1179
  data: {
1139
- type: () => any[];
1180
+ type: PropType<unknown[]>;
1140
1181
  required: true;
1141
1182
  };
1142
1183
  /** Extract a unique key from each item. Defaults to index as string. */
1143
1184
  keyExtractor: {
1144
- type: () => (item: any, index: number) => string;
1145
- default: (_item: any, index: number) => string;
1185
+ type: PropType<(item: unknown, index: number) => string>;
1186
+ default: (_item: unknown, index: number) => string;
1146
1187
  };
1147
1188
  /** Estimated height per row in points. Used before layout runs. Default: 44 */
1148
1189
  estimatedItemHeight: {
@@ -1175,7 +1216,7 @@ declare const VList: _vue_runtime_core.DefineComponent<_vue_runtime_core.Extract
1175
1216
  style: ViewStyle;
1176
1217
  horizontal: boolean;
1177
1218
  bounces: boolean;
1178
- keyExtractor: (item: any, index: number) => string;
1219
+ keyExtractor: (item: unknown, index: number) => string;
1179
1220
  estimatedItemHeight: number;
1180
1221
  showsScrollIndicator: boolean;
1181
1222
  }, {}, {}, {}, string, _vue_runtime_core.ComponentProvideOptions, true, {}, any>;
@@ -1260,7 +1301,7 @@ declare const VAlertDialog: _vue_runtime_core.DefineComponent<_vue_runtime_core.
1260
1301
  };
1261
1302
  }>, () => _vue_runtime_core.VNode<_vue_runtime_core.RendererNode, _vue_runtime_core.RendererElement, {
1262
1303
  [key: string]: any;
1263
- }>, {}, {}, {}, _vue_runtime_core.ComponentOptionsMixin, _vue_runtime_core.ComponentOptionsMixin, ("confirm" | "cancel" | "action")[], "confirm" | "cancel" | "action", _vue_runtime_core.PublicProps, Readonly<_vue_runtime_core.ExtractPropTypes<{
1304
+ }>, {}, {}, {}, _vue_runtime_core.ComponentOptionsMixin, _vue_runtime_core.ComponentOptionsMixin, ("cancel" | "confirm" | "action")[], "cancel" | "confirm" | "action", _vue_runtime_core.PublicProps, Readonly<_vue_runtime_core.ExtractPropTypes<{
1264
1305
  visible: {
1265
1306
  type: BooleanConstructor;
1266
1307
  default: boolean;
@@ -1286,12 +1327,12 @@ declare const VAlertDialog: _vue_runtime_core.DefineComponent<_vue_runtime_core.
1286
1327
  default: string;
1287
1328
  };
1288
1329
  }>> & Readonly<{
1289
- onConfirm?: ((...args: any[]) => any) | undefined;
1290
1330
  onCancel?: ((...args: any[]) => any) | undefined;
1331
+ onConfirm?: ((...args: any[]) => any) | undefined;
1291
1332
  onAction?: ((...args: any[]) => any) | undefined;
1292
1333
  }>, {
1293
- visible: boolean;
1294
1334
  title: string;
1335
+ visible: boolean;
1295
1336
  message: string;
1296
1337
  buttons: AlertButton[];
1297
1338
  confirmText: string;
@@ -1334,8 +1375,8 @@ declare const VStatusBar: _vue_runtime_core.DefineComponent<_vue_runtime_core.Ex
1334
1375
  default: boolean;
1335
1376
  };
1336
1377
  }>> & Readonly<{}>, {
1337
- barStyle: StatusBarStyle;
1338
1378
  hidden: boolean;
1379
+ barStyle: StatusBarStyle;
1339
1380
  animated: boolean;
1340
1381
  }, {}, {}, {}, string, _vue_runtime_core.ComponentProvideOptions, true, {}, any>;
1341
1382
 
@@ -1381,8 +1422,8 @@ declare const VWebView: _vue_runtime_core.DefineComponent<_vue_runtime_core.Extr
1381
1422
  default: boolean;
1382
1423
  };
1383
1424
  }>> & Readonly<{
1384
- onLoad?: ((...args: any[]) => any) | undefined;
1385
1425
  onError?: ((...args: any[]) => any) | undefined;
1426
+ onLoad?: ((...args: any[]) => any) | undefined;
1386
1427
  onMessage?: ((...args: any[]) => any) | undefined;
1387
1428
  }>, {
1388
1429
  style: ViewStyle;
@@ -1574,8 +1615,8 @@ declare const VSegmentedControl: _vue_runtime_core.DefineComponent<_vue_runtime_
1574
1615
  onChange?: ((...args: any[]) => any) | undefined;
1575
1616
  }>, {
1576
1617
  style: ViewStyle;
1577
- selectedIndex: number;
1578
1618
  tintColor: string;
1619
+ selectedIndex: number;
1579
1620
  enabled: boolean;
1580
1621
  }, {}, {}, {}, string, _vue_runtime_core.ComponentProvideOptions, true, {}, any>;
1581
1622
 
@@ -1639,8 +1680,8 @@ declare const VActionSheet: _vue_runtime_core.DefineComponent<_vue_runtime_core.
1639
1680
  onCancel?: ((...args: any[]) => any) | undefined;
1640
1681
  onAction?: ((...args: any[]) => any) | undefined;
1641
1682
  }>, {
1642
- visible: boolean;
1643
1683
  title: string;
1684
+ visible: boolean;
1644
1685
  message: string;
1645
1686
  actions: ActionSheetAction[];
1646
1687
  }, {}, {}, {}, string, _vue_runtime_core.ComponentProvideOptions, true, {}, any>;
@@ -1784,18 +1825,18 @@ declare const VPressable: _vue_runtime_core.DefineComponent<_vue_runtime_core.Ex
1784
1825
  */
1785
1826
  interface Section {
1786
1827
  title: string;
1787
- data: any[];
1828
+ data: unknown[];
1788
1829
  }
1789
1830
  declare const VSectionList: _vue_runtime_core.DefineComponent<_vue_runtime_core.ExtractPropTypes<{
1790
1831
  /** Array of section objects, each with a title and data array */
1791
1832
  sections: {
1792
- type: () => Section[];
1833
+ type: PropType<Section[]>;
1793
1834
  required: true;
1794
1835
  };
1795
1836
  /** Extract a unique key from each item. Defaults to index as string. */
1796
1837
  keyExtractor: {
1797
- type: () => (item: any, index: number) => string;
1798
- default: (_item: any, index: number) => string;
1838
+ type: PropType<(item: unknown, index: number) => string>;
1839
+ default: (_item: unknown, index: number) => string;
1799
1840
  };
1800
1841
  /** Estimated height per row in points. Default: 44 */
1801
1842
  estimatedItemHeight: {
@@ -1821,18 +1862,18 @@ declare const VSectionList: _vue_runtime_core.DefineComponent<_vue_runtime_core.
1821
1862
  type: ObjectConstructor;
1822
1863
  default: () => {};
1823
1864
  };
1824
- }>, () => _vue_runtime_core.VNode<_vue_runtime_core.RendererNode, _vue_runtime_core.RendererElement, {
1865
+ }>, () => VNode<_vue_runtime_core.RendererNode, _vue_runtime_core.RendererElement, {
1825
1866
  [key: string]: any;
1826
1867
  }>, {}, {}, {}, _vue_runtime_core.ComponentOptionsMixin, _vue_runtime_core.ComponentOptionsMixin, ("scroll" | "endReached")[], "scroll" | "endReached", _vue_runtime_core.PublicProps, Readonly<_vue_runtime_core.ExtractPropTypes<{
1827
1868
  /** Array of section objects, each with a title and data array */
1828
1869
  sections: {
1829
- type: () => Section[];
1870
+ type: PropType<Section[]>;
1830
1871
  required: true;
1831
1872
  };
1832
1873
  /** Extract a unique key from each item. Defaults to index as string. */
1833
1874
  keyExtractor: {
1834
- type: () => (item: any, index: number) => string;
1835
- default: (_item: any, index: number) => string;
1875
+ type: PropType<(item: unknown, index: number) => string>;
1876
+ default: (_item: unknown, index: number) => string;
1836
1877
  };
1837
1878
  /** Estimated height per row in points. Default: 44 */
1838
1879
  estimatedItemHeight: {
@@ -1864,7 +1905,7 @@ declare const VSectionList: _vue_runtime_core.DefineComponent<_vue_runtime_core.
1864
1905
  }>, {
1865
1906
  style: Record<string, any>;
1866
1907
  bounces: boolean;
1867
- keyExtractor: (item: any, index: number) => string;
1908
+ keyExtractor: (item: unknown, index: number) => string;
1868
1909
  estimatedItemHeight: number;
1869
1910
  showsScrollIndicator: boolean;
1870
1911
  stickySectionHeaders: boolean;
@@ -1923,9 +1964,9 @@ declare const VCheckbox: _vue_runtime_core.DefineComponent<_vue_runtime_core.Ext
1923
1964
  "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
1924
1965
  onChange?: ((...args: any[]) => any) | undefined;
1925
1966
  }>, {
1967
+ label: string;
1926
1968
  disabled: boolean;
1927
1969
  modelValue: boolean;
1928
- label: string;
1929
1970
  }, {}, {}, {}, string, _vue_runtime_core.ComponentProvideOptions, true, {}, any>;
1930
1971
 
1931
1972
  interface RadioOption {
@@ -2168,7 +2209,7 @@ declare const VVideo: _vue_runtime_core.DefineComponent<_vue_runtime_core.Extrac
2168
2209
  onPause?: ((...args: any[]) => any) | undefined;
2169
2210
  onEnd?: ((...args: any[]) => any) | undefined;
2170
2211
  }>, {
2171
- resizeMode: "cover" | "contain" | "stretch" | "center";
2212
+ resizeMode: "center" | "stretch" | "cover" | "contain";
2172
2213
  autoplay: boolean;
2173
2214
  loop: boolean;
2174
2215
  muted: boolean;
@@ -2180,10 +2221,11 @@ declare const VVideo: _vue_runtime_core.DefineComponent<_vue_runtime_core.Extrac
2180
2221
  /**
2181
2222
  * Information provided to the renderItem function.
2182
2223
  */
2183
- interface FlatListRenderItemInfo<T = any> {
2224
+ interface FlatListRenderItemInfo<T = unknown> {
2184
2225
  item: T;
2185
2226
  index: number;
2186
2227
  }
2228
+ declare function getDefaultItemKey(item: unknown, index: number): string | number;
2187
2229
  /**
2188
2230
  * VFlatList — A high-performance virtualized list for large datasets.
2189
2231
  *
@@ -2231,7 +2273,7 @@ interface FlatListRenderItemInfo<T = any> {
2231
2273
  declare const VFlatList: _vue_runtime_core.DefineComponent<_vue_runtime_core.ExtractPropTypes<{
2232
2274
  /** Array of data items to render. */
2233
2275
  data: {
2234
- type: PropType<any[]>;
2276
+ type: PropType<unknown[]>;
2235
2277
  required: true;
2236
2278
  };
2237
2279
  /**
@@ -2239,13 +2281,13 @@ declare const VFlatList: _vue_runtime_core.DefineComponent<_vue_runtime_core.Ext
2239
2281
  * If not provided, the `#item` slot is used instead.
2240
2282
  */
2241
2283
  renderItem: {
2242
- type: PropType<(info: FlatListRenderItemInfo) => VNode>;
2284
+ type: PropType<(info: FlatListRenderItemInfo<unknown>) => VNode>;
2243
2285
  default: undefined;
2244
2286
  };
2245
2287
  /** Extract a unique key from each item. Defaults to item.id, item.key, or index. */
2246
2288
  keyExtractor: {
2247
- type: PropType<(item: any, index: number) => string | number>;
2248
- default: (item: any, index: number) => any;
2289
+ type: PropType<(item: unknown, index: number) => string | number>;
2290
+ default: typeof getDefaultItemKey;
2249
2291
  };
2250
2292
  /** Fixed height for each item in points. Required for virtualization math. */
2251
2293
  itemHeight: {
@@ -2294,7 +2336,7 @@ declare const VFlatList: _vue_runtime_core.DefineComponent<_vue_runtime_core.Ext
2294
2336
  }>, {}, {}, {}, _vue_runtime_core.ComponentOptionsMixin, _vue_runtime_core.ComponentOptionsMixin, ("scroll" | "endReached")[], "scroll" | "endReached", _vue_runtime_core.PublicProps, Readonly<_vue_runtime_core.ExtractPropTypes<{
2295
2337
  /** Array of data items to render. */
2296
2338
  data: {
2297
- type: PropType<any[]>;
2339
+ type: PropType<unknown[]>;
2298
2340
  required: true;
2299
2341
  };
2300
2342
  /**
@@ -2302,13 +2344,13 @@ declare const VFlatList: _vue_runtime_core.DefineComponent<_vue_runtime_core.Ext
2302
2344
  * If not provided, the `#item` slot is used instead.
2303
2345
  */
2304
2346
  renderItem: {
2305
- type: PropType<(info: FlatListRenderItemInfo) => VNode>;
2347
+ type: PropType<(info: FlatListRenderItemInfo<unknown>) => VNode>;
2306
2348
  default: undefined;
2307
2349
  };
2308
2350
  /** Extract a unique key from each item. Defaults to item.id, item.key, or index. */
2309
2351
  keyExtractor: {
2310
- type: PropType<(item: any, index: number) => string | number>;
2311
- default: (item: any, index: number) => any;
2352
+ type: PropType<(item: unknown, index: number) => string | number>;
2353
+ default: typeof getDefaultItemKey;
2312
2354
  };
2313
2355
  /** Fixed height for each item in points. Required for virtualization math. */
2314
2356
  itemHeight: {
@@ -2358,30 +2400,350 @@ declare const VFlatList: _vue_runtime_core.DefineComponent<_vue_runtime_core.Ext
2358
2400
  }>, {
2359
2401
  style: ViewStyle;
2360
2402
  bounces: boolean;
2361
- keyExtractor: (item: any, index: number) => string | number;
2403
+ keyExtractor: (item: unknown, index: number) => string | number;
2362
2404
  showsScrollIndicator: boolean;
2363
- renderItem: (info: FlatListRenderItemInfo) => VNode;
2405
+ renderItem: (info: FlatListRenderItemInfo<unknown>) => VNode;
2364
2406
  windowSize: number;
2365
2407
  headerHeight: number;
2366
2408
  endReachedThreshold: number;
2367
2409
  }, {}, {}, {}, string, _vue_runtime_core.ComponentProvideOptions, true, {}, any>;
2368
2410
 
2411
+ interface TabConfig {
2412
+ id: string;
2413
+ label: string;
2414
+ icon?: string;
2415
+ badge?: number | string;
2416
+ }
2417
+ /**
2418
+ * VTabBar - Tab bar navigation component
2419
+ *
2420
+ * @example
2421
+ * ```vue
2422
+ * <VTabBar
2423
+ * :tabs="tabs"
2424
+ * :activeTab="activeTab"
2425
+ * @change="handleTabChange"
2426
+ * />
2427
+ * ```
2428
+ */
2429
+ declare const VTabBar: _vue_runtime_core.DefineComponent<_vue_runtime_core.ExtractPropTypes<{
2430
+ /** Array of tab configurations */
2431
+ tabs: {
2432
+ type: PropType<TabConfig[]>;
2433
+ required: true;
2434
+ };
2435
+ /** Currently active tab ID */
2436
+ activeTab: {
2437
+ type: StringConstructor;
2438
+ required: true;
2439
+ };
2440
+ /** Position: 'top' | 'bottom' */
2441
+ position: {
2442
+ type: PropType<"top" | "bottom">;
2443
+ default: string;
2444
+ };
2445
+ }>, () => _vue_runtime_core.VNode<_vue_runtime_core.RendererNode, _vue_runtime_core.RendererElement, {
2446
+ [key: string]: any;
2447
+ }>, {}, {}, {}, _vue_runtime_core.ComponentOptionsMixin, _vue_runtime_core.ComponentOptionsMixin, "change"[], "change", _vue_runtime_core.PublicProps, Readonly<_vue_runtime_core.ExtractPropTypes<{
2448
+ /** Array of tab configurations */
2449
+ tabs: {
2450
+ type: PropType<TabConfig[]>;
2451
+ required: true;
2452
+ };
2453
+ /** Currently active tab ID */
2454
+ activeTab: {
2455
+ type: StringConstructor;
2456
+ required: true;
2457
+ };
2458
+ /** Position: 'top' | 'bottom' */
2459
+ position: {
2460
+ type: PropType<"top" | "bottom">;
2461
+ default: string;
2462
+ };
2463
+ }>> & Readonly<{
2464
+ onChange?: ((...args: any[]) => any) | undefined;
2465
+ }>, {
2466
+ position: "top" | "bottom";
2467
+ }, {}, {}, {}, string, _vue_runtime_core.ComponentProvideOptions, true, {}, any>;
2468
+
2469
+ /**
2470
+ * VDrawer - Drawer navigation component (side menu)
2471
+ *
2472
+ * @example
2473
+ * ```vue
2474
+ * <VDrawer v-model:open="drawerOpen">
2475
+ * <template #header>
2476
+ * <VText>Menu Header</VText>
2477
+ * </template>
2478
+ * <VDrawer.Item
2479
+ * icon="🏠"
2480
+ * label="Home"
2481
+ * @press="navigateTo('home')"
2482
+ * />
2483
+ * </VDrawer>
2484
+ * ```
2485
+ */
2486
+ declare const VDrawer: _vue_runtime_core.DefineComponent<_vue_runtime_core.ExtractPropTypes<{
2487
+ /** Whether the drawer is open */
2488
+ open: {
2489
+ type: BooleanConstructor;
2490
+ default: boolean;
2491
+ };
2492
+ /** Drawer position: 'left' | 'right' */
2493
+ position: {
2494
+ type: PropType<"left" | "right">;
2495
+ default: string;
2496
+ };
2497
+ /** Drawer width */
2498
+ width: {
2499
+ type: NumberConstructor;
2500
+ default: number;
2501
+ };
2502
+ /** Close on item press */
2503
+ closeOnPress: {
2504
+ type: BooleanConstructor;
2505
+ default: boolean;
2506
+ };
2507
+ }>, () => (VNode<_vue_runtime_core.RendererNode, _vue_runtime_core.RendererElement, {
2508
+ [key: string]: any;
2509
+ }> | null)[] | null, {}, {}, {}, _vue_runtime_core.ComponentOptionsMixin, _vue_runtime_core.ComponentOptionsMixin, ("update:open" | "close")[], "update:open" | "close", _vue_runtime_core.PublicProps, Readonly<_vue_runtime_core.ExtractPropTypes<{
2510
+ /** Whether the drawer is open */
2511
+ open: {
2512
+ type: BooleanConstructor;
2513
+ default: boolean;
2514
+ };
2515
+ /** Drawer position: 'left' | 'right' */
2516
+ position: {
2517
+ type: PropType<"left" | "right">;
2518
+ default: string;
2519
+ };
2520
+ /** Drawer width */
2521
+ width: {
2522
+ type: NumberConstructor;
2523
+ default: number;
2524
+ };
2525
+ /** Close on item press */
2526
+ closeOnPress: {
2527
+ type: BooleanConstructor;
2528
+ default: boolean;
2529
+ };
2530
+ }>> & Readonly<{
2531
+ "onUpdate:open"?: ((...args: any[]) => any) | undefined;
2532
+ onClose?: ((...args: any[]) => any) | undefined;
2533
+ }>, {
2534
+ position: "left" | "right";
2535
+ open: boolean;
2536
+ width: number;
2537
+ closeOnPress: boolean;
2538
+ }, {}, {}, {}, string, _vue_runtime_core.ComponentProvideOptions, true, {}, any>;
2539
+ /**
2540
+ * VDrawer.Item - Drawer menu item component
2541
+ */
2542
+ declare const VDrawerItem: _vue_runtime_core.DefineComponent<_vue_runtime_core.ExtractPropTypes<{
2543
+ /** Icon (emoji or icon name) */
2544
+ icon: {
2545
+ type: StringConstructor;
2546
+ default: string;
2547
+ };
2548
+ /** Label text */
2549
+ label: {
2550
+ type: StringConstructor;
2551
+ required: true;
2552
+ };
2553
+ /** Badge count */
2554
+ badge: {
2555
+ type: (StringConstructor | NumberConstructor)[];
2556
+ default: null;
2557
+ };
2558
+ /** Disabled state */
2559
+ disabled: {
2560
+ type: BooleanConstructor;
2561
+ default: boolean;
2562
+ };
2563
+ }>, () => VNode<_vue_runtime_core.RendererNode, _vue_runtime_core.RendererElement, {
2564
+ [key: string]: any;
2565
+ }>, {}, {}, {}, _vue_runtime_core.ComponentOptionsMixin, _vue_runtime_core.ComponentOptionsMixin, "press"[], "press", _vue_runtime_core.PublicProps, Readonly<_vue_runtime_core.ExtractPropTypes<{
2566
+ /** Icon (emoji or icon name) */
2567
+ icon: {
2568
+ type: StringConstructor;
2569
+ default: string;
2570
+ };
2571
+ /** Label text */
2572
+ label: {
2573
+ type: StringConstructor;
2574
+ required: true;
2575
+ };
2576
+ /** Badge count */
2577
+ badge: {
2578
+ type: (StringConstructor | NumberConstructor)[];
2579
+ default: null;
2580
+ };
2581
+ /** Disabled state */
2582
+ disabled: {
2583
+ type: BooleanConstructor;
2584
+ default: boolean;
2585
+ };
2586
+ }>> & Readonly<{
2587
+ onPress?: ((...args: any[]) => any) | undefined;
2588
+ }>, {
2589
+ icon: string;
2590
+ badge: string | number;
2591
+ disabled: boolean;
2592
+ }, {}, {}, {}, string, _vue_runtime_core.ComponentProvideOptions, true, {}, any>;
2593
+ /**
2594
+ * VDrawer.Section - Drawer section divider
2595
+ */
2596
+ declare const VDrawerSection: _vue_runtime_core.DefineComponent<_vue_runtime_core.ExtractPropTypes<{
2597
+ /** Section title */
2598
+ title: {
2599
+ type: StringConstructor;
2600
+ default: string;
2601
+ };
2602
+ }>, () => VNode<_vue_runtime_core.RendererNode, _vue_runtime_core.RendererElement, {
2603
+ [key: string]: any;
2604
+ }>, {}, {}, {}, _vue_runtime_core.ComponentOptionsMixin, _vue_runtime_core.ComponentOptionsMixin, {}, string, _vue_runtime_core.PublicProps, Readonly<_vue_runtime_core.ExtractPropTypes<{
2605
+ /** Section title */
2606
+ title: {
2607
+ type: StringConstructor;
2608
+ default: string;
2609
+ };
2610
+ }>> & Readonly<{}>, {
2611
+ title: string;
2612
+ }, {}, {}, {}, string, _vue_runtime_core.ComponentProvideOptions, true, {}, any>;
2613
+
2614
+ declare const Easing: {
2615
+ readonly linear: "linear";
2616
+ readonly ease: "ease";
2617
+ readonly easeIn: "easeIn";
2618
+ readonly easeOut: "easeOut";
2619
+ readonly easeInOut: "easeInOut";
2620
+ };
2621
+ type EasingType = typeof Easing[keyof typeof Easing];
2622
+ interface TimingConfig {
2623
+ duration?: number;
2624
+ easing?: EasingType;
2625
+ delay?: number;
2626
+ }
2627
+ interface SpringConfig {
2628
+ tension?: number;
2629
+ friction?: number;
2630
+ mass?: number;
2631
+ velocity?: number;
2632
+ delay?: number;
2633
+ }
2634
+ interface KeyframeStep {
2635
+ offset: number;
2636
+ opacity?: number;
2637
+ translateX?: number;
2638
+ translateY?: number;
2639
+ scale?: number;
2640
+ scaleX?: number;
2641
+ scaleY?: number;
2642
+ }
2643
+ interface SequenceAnimation {
2644
+ type: 'timing' | 'spring';
2645
+ viewId: number;
2646
+ toStyles: Record<string, unknown>;
2647
+ options: TimingConfig | SpringConfig;
2648
+ }
2649
+ type TimingOptions = TimingConfig;
2650
+ type SpringOptions = SpringConfig;
2651
+ /**
2652
+ * Accepted view target for animation methods.
2653
+ * - `number` — raw node ID (backward compatible)
2654
+ * - `Ref` — a Vue template ref whose `.value` has an `id` (NativeNode)
2655
+ * - `NativeNode` — a node object directly
2656
+ *
2657
+ * @example
2658
+ * const myView = ref() // template ref
2659
+ * await timing(myView, { opacity: 1 }, { duration: 300 })
2660
+ */
2661
+ type AnimatableNode$1 = NativeNode | {
2662
+ id: number;
2663
+ };
2664
+ type AnimationTargetRef = Ref<AnimatableNode$1 | null | undefined>;
2665
+ type AnimationTarget = number | AnimationTargetRef | AnimatableNode$1;
2666
+ /**
2667
+ * Imperative animation API backed by native UIView/CALayer animations.
2668
+ *
2669
+ * All methods accept either a raw node ID (number), a template ref, or
2670
+ * a NativeNode object as the first argument.
2671
+ *
2672
+ * @example
2673
+ * const myView = ref() // <VView ref="myView" ...>
2674
+ * const { timing, spring, fadeIn } = useAnimation()
2675
+ *
2676
+ * // Using template ref (recommended)
2677
+ * await timing(myView, { opacity: 1 }, { duration: 300 })
2678
+ *
2679
+ * // Using raw node ID (still works)
2680
+ * await timing(42, { opacity: 1 }, { duration: 300 })
2681
+ *
2682
+ * // Spring bounce
2683
+ * await spring(myView, { translateY: 0 }, { tension: 40, friction: 7 })
2684
+ *
2685
+ * // Keyframe flash
2686
+ * await keyframe(myView, [
2687
+ * { offset: 0, opacity: 1 },
2688
+ * { offset: 0.5, opacity: 0 },
2689
+ * { offset: 1, opacity: 1 },
2690
+ * ], { duration: 600 })
2691
+ *
2692
+ * // Sequence: fade then slide
2693
+ * await sequence([
2694
+ * { type: 'timing', viewId: resolveId(myView), toStyles: { opacity: 0 }, options: { duration: 200 } },
2695
+ * { type: 'timing', viewId: resolveId(myView), toStyles: { translateX: 100 }, options: { duration: 300 } },
2696
+ * ])
2697
+ */
2698
+ declare function useAnimation(): {
2699
+ timing: (target: AnimationTarget, toStyles: Record<string, unknown>, config?: TimingConfig) => Promise<void>;
2700
+ spring: (target: AnimationTarget, toStyles: Record<string, unknown>, config?: SpringConfig) => Promise<void>;
2701
+ keyframe: (target: AnimationTarget, steps: KeyframeStep[], config?: {
2702
+ duration?: number;
2703
+ }) => Promise<void>;
2704
+ sequence: (animations: SequenceAnimation[]) => Promise<void>;
2705
+ parallel: (animations: SequenceAnimation[]) => Promise<void>;
2706
+ fadeIn: (target: AnimationTarget, duration?: number) => Promise<void>;
2707
+ fadeOut: (target: AnimationTarget, duration?: number) => Promise<void>;
2708
+ slideInFromRight: (target: AnimationTarget, duration?: number) => Promise<void>;
2709
+ slideOutToRight: (target: AnimationTarget, duration?: number) => Promise<void>;
2710
+ resolveId: (target: AnimationTarget) => number;
2711
+ Easing: {
2712
+ readonly linear: "linear";
2713
+ readonly ease: "ease";
2714
+ readonly easeIn: "easeIn";
2715
+ readonly easeOut: "easeOut";
2716
+ readonly easeInOut: "easeInOut";
2717
+ };
2718
+ };
2719
+
2720
+ /**
2721
+ * Built-in Vue Native components.
2722
+ *
2723
+ * These components are automatically registered when using createApp()
2724
+ * from @thelacanians/vue-native-runtime, so they can be used directly in templates
2725
+ * without explicit imports. They can also be imported individually for
2726
+ * use in render functions or JSX.
2727
+ */
2728
+
2729
+ declare const builtInComponents: Record<string, Component>;
2730
+
2369
2731
  declare const ErrorBoundary: _vue_runtime_core.DefineComponent<_vue_runtime_core.ExtractPropTypes<{
2370
2732
  onError: PropType<(error: Error, info: string) => void>;
2371
2733
  resetKeys: {
2372
- type: PropType<any[]>;
2373
- default: () => never[];
2734
+ type: PropType<unknown[]>;
2735
+ default: () => unknown[];
2374
2736
  };
2375
2737
  }>, () => _vue_runtime_core.VNode<_vue_runtime_core.RendererNode, _vue_runtime_core.RendererElement, {
2376
2738
  [key: string]: any;
2377
2739
  }>[] | undefined, {}, {}, {}, _vue_runtime_core.ComponentOptionsMixin, _vue_runtime_core.ComponentOptionsMixin, {}, string, _vue_runtime_core.PublicProps, Readonly<_vue_runtime_core.ExtractPropTypes<{
2378
2740
  onError: PropType<(error: Error, info: string) => void>;
2379
2741
  resetKeys: {
2380
- type: PropType<any[]>;
2381
- default: () => never[];
2742
+ type: PropType<unknown[]>;
2743
+ default: () => unknown[];
2382
2744
  };
2383
2745
  }>> & Readonly<{}>, {
2384
- resetKeys: any[];
2746
+ resetKeys: unknown[];
2385
2747
  }, {}, {}, {}, string, _vue_runtime_core.ComponentProvideOptions, true, {}, any>;
2386
2748
 
2387
2749
  /**
@@ -2390,6 +2752,22 @@ declare const ErrorBoundary: _vue_runtime_core.DefineComponent<_vue_runtime_core
2390
2752
  */
2391
2753
  declare const vShow: Directive<NativeNode>;
2392
2754
 
2755
+ /**
2756
+ * v-model directive for native inputs.
2757
+ *
2758
+ * Provides two-way data binding for form elements like VInput, VSwitch, VSlider, etc.
2759
+ *
2760
+ * @example
2761
+ * ```vue
2762
+ * <VInput v-model="text" />
2763
+ * <VSwitch v-model="enabled" />
2764
+ * <VInput v-model.lazy="text" />
2765
+ * <VInput v-model.number="count" />
2766
+ * <VInput v-model.trim="text" />
2767
+ * ```
2768
+ */
2769
+ declare const vModel: Directive<NativeNode>;
2770
+
2393
2771
  /**
2394
2772
  * Haptic feedback composable.
2395
2773
  *
@@ -2491,110 +2869,6 @@ declare function useKeyboard(): {
2491
2869
  }>;
2492
2870
  };
2493
2871
 
2494
- declare const Easing: {
2495
- readonly linear: "linear";
2496
- readonly ease: "ease";
2497
- readonly easeIn: "easeIn";
2498
- readonly easeOut: "easeOut";
2499
- readonly easeInOut: "easeInOut";
2500
- };
2501
- type EasingType = typeof Easing[keyof typeof Easing];
2502
- interface TimingConfig {
2503
- duration?: number;
2504
- easing?: EasingType;
2505
- delay?: number;
2506
- }
2507
- interface SpringConfig {
2508
- tension?: number;
2509
- friction?: number;
2510
- mass?: number;
2511
- velocity?: number;
2512
- delay?: number;
2513
- }
2514
- interface KeyframeStep {
2515
- offset: number;
2516
- opacity?: number;
2517
- translateX?: number;
2518
- translateY?: number;
2519
- scale?: number;
2520
- scaleX?: number;
2521
- scaleY?: number;
2522
- }
2523
- interface SequenceAnimation {
2524
- type: 'timing' | 'spring';
2525
- viewId: number;
2526
- toStyles: Record<string, any>;
2527
- options: TimingConfig | SpringConfig;
2528
- }
2529
- type TimingOptions = TimingConfig;
2530
- type SpringOptions = SpringConfig;
2531
- /**
2532
- * Accepted view target for animation methods.
2533
- * - `number` — raw node ID (backward compatible)
2534
- * - `Ref` — a Vue template ref whose `.value` has an `id` (NativeNode)
2535
- * - `NativeNode` — a node object directly
2536
- *
2537
- * @example
2538
- * const myView = ref() // template ref
2539
- * await timing(myView, { opacity: 1 }, { duration: 300 })
2540
- */
2541
- type AnimationTarget = number | Ref<any> | NativeNode | {
2542
- id: number;
2543
- };
2544
- /**
2545
- * Imperative animation API backed by native UIView/CALayer animations.
2546
- *
2547
- * All methods accept either a raw node ID (number), a template ref, or
2548
- * a NativeNode object as the first argument.
2549
- *
2550
- * @example
2551
- * const myView = ref() // <VView ref="myView" ...>
2552
- * const { timing, spring, fadeIn } = useAnimation()
2553
- *
2554
- * // Using template ref (recommended)
2555
- * await timing(myView, { opacity: 1 }, { duration: 300 })
2556
- *
2557
- * // Using raw node ID (still works)
2558
- * await timing(42, { opacity: 1 }, { duration: 300 })
2559
- *
2560
- * // Spring bounce
2561
- * await spring(myView, { translateY: 0 }, { tension: 40, friction: 7 })
2562
- *
2563
- * // Keyframe flash
2564
- * await keyframe(myView, [
2565
- * { offset: 0, opacity: 1 },
2566
- * { offset: 0.5, opacity: 0 },
2567
- * { offset: 1, opacity: 1 },
2568
- * ], { duration: 600 })
2569
- *
2570
- * // Sequence: fade then slide
2571
- * await sequence([
2572
- * { type: 'timing', viewId: resolveId(myView), toStyles: { opacity: 0 }, options: { duration: 200 } },
2573
- * { type: 'timing', viewId: resolveId(myView), toStyles: { translateX: 100 }, options: { duration: 300 } },
2574
- * ])
2575
- */
2576
- declare function useAnimation(): {
2577
- timing: (target: AnimationTarget, toStyles: Record<string, any>, config?: TimingConfig) => Promise<void>;
2578
- spring: (target: AnimationTarget, toStyles: Record<string, any>, config?: SpringConfig) => Promise<void>;
2579
- keyframe: (target: AnimationTarget, steps: KeyframeStep[], config?: {
2580
- duration?: number;
2581
- }) => Promise<void>;
2582
- sequence: (animations: SequenceAnimation[]) => Promise<void>;
2583
- parallel: (animations: SequenceAnimation[]) => Promise<void>;
2584
- fadeIn: (target: AnimationTarget, duration?: number) => Promise<void>;
2585
- fadeOut: (target: AnimationTarget, duration?: number) => Promise<void>;
2586
- slideInFromRight: (target: AnimationTarget, duration?: number) => Promise<void>;
2587
- slideOutToRight: (target: AnimationTarget, duration?: number) => Promise<void>;
2588
- resolveId: (target: AnimationTarget) => number;
2589
- Easing: {
2590
- readonly linear: "linear";
2591
- readonly ease: "ease";
2592
- readonly easeIn: "easeIn";
2593
- readonly easeOut: "easeOut";
2594
- readonly easeInOut: "easeInOut";
2595
- };
2596
- };
2597
-
2598
2872
  type ConnectionType = 'wifi' | 'cellular' | 'ethernet' | 'none' | 'unknown';
2599
2873
  interface NetworkState {
2600
2874
  isConnected: boolean;
@@ -2789,19 +3063,19 @@ interface LocalNotification {
2789
3063
  delay?: number;
2790
3064
  sound?: 'default' | null;
2791
3065
  badge?: number;
2792
- data?: Record<string, any>;
3066
+ data?: Record<string, unknown>;
2793
3067
  }
2794
3068
  interface NotificationPayload {
2795
3069
  id: string;
2796
3070
  title: string;
2797
3071
  body: string;
2798
- data: Record<string, any>;
3072
+ data: Record<string, unknown>;
2799
3073
  action?: string;
2800
3074
  }
2801
3075
  interface PushNotificationPayload {
2802
3076
  title: string;
2803
3077
  body: string;
2804
- data: Record<string, any>;
3078
+ data: Record<string, unknown>;
2805
3079
  remote: true;
2806
3080
  }
2807
3081
  /**
@@ -2855,6 +3129,9 @@ declare function useBiometry(): {
2855
3129
  isAvailable: () => Promise<boolean>;
2856
3130
  };
2857
3131
 
3132
+ declare global {
3133
+ var __VN_configurePins: ((pinsJson: string) => void) | undefined;
3134
+ }
2858
3135
  interface HttpRequestConfig {
2859
3136
  baseURL?: string;
2860
3137
  headers?: Record<string, string>;
@@ -2871,12 +3148,16 @@ interface HttpRequestConfig {
2871
3148
  */
2872
3149
  pins?: Record<string, string[]>;
2873
3150
  }
2874
- interface HttpResponse<T = any> {
3151
+ interface HttpResponse<T = unknown> {
2875
3152
  data: T;
2876
3153
  status: number;
2877
3154
  ok: boolean;
2878
3155
  headers: Record<string, string>;
2879
3156
  }
3157
+ interface QueryRequestOptions {
3158
+ params?: Record<string, string>;
3159
+ headers?: Record<string, string>;
3160
+ }
2880
3161
  /**
2881
3162
  * HTTP client composable with reactive loading/error state.
2882
3163
  * Uses the native fetch polyfill under the hood.
@@ -2888,17 +3169,11 @@ interface HttpResponse<T = any> {
2888
3169
  declare function useHttp(config?: HttpRequestConfig): {
2889
3170
  loading: _vue_reactivity.Ref<boolean, boolean>;
2890
3171
  error: _vue_reactivity.Ref<string | null, string | null>;
2891
- get: <T = any>(url: string, options?: {
2892
- params?: Record<string, string>;
2893
- headers?: Record<string, string>;
2894
- } | Record<string, string>) => Promise<HttpResponse<T>>;
2895
- post: <T = any>(url: string, body?: any, headers?: Record<string, string>) => Promise<HttpResponse<T>>;
2896
- put: <T = any>(url: string, body?: any, headers?: Record<string, string>) => Promise<HttpResponse<T>>;
2897
- patch: <T = any>(url: string, body?: any, headers?: Record<string, string>) => Promise<HttpResponse<T>>;
2898
- delete: <T = any>(url: string, options?: {
2899
- params?: Record<string, string>;
2900
- headers?: Record<string, string>;
2901
- } | Record<string, string>) => Promise<HttpResponse<T>>;
3172
+ get: <T = unknown>(url: string, options?: QueryRequestOptions | Record<string, string>) => Promise<HttpResponse<T>>;
3173
+ post: <T = unknown>(url: string, body?: unknown, headers?: Record<string, string>) => Promise<HttpResponse<T>>;
3174
+ put: <T = unknown>(url: string, body?: unknown, headers?: Record<string, string>) => Promise<HttpResponse<T>>;
3175
+ patch: <T = unknown>(url: string, body?: unknown, headers?: Record<string, string>) => Promise<HttpResponse<T>>;
3176
+ delete: <T = unknown>(url: string, options?: QueryRequestOptions | Record<string, string>) => Promise<HttpResponse<T>>;
2902
3177
  };
2903
3178
 
2904
3179
  type ColorScheme$1 = 'light' | 'dark';
@@ -2963,22 +3238,26 @@ declare function useI18n(): {
2963
3238
  locale: _vue_reactivity.Ref<string, string>;
2964
3239
  };
2965
3240
 
2966
- type Platform = 'ios' | 'android';
3241
+ type Platform = 'ios' | 'android' | 'macos';
2967
3242
  /**
2968
- * Returns the current platform ('ios' or 'android').
3243
+ * Returns the current platform and convenience boolean flags.
2969
3244
  *
2970
3245
  * Relies on the `__PLATFORM__` compile-time constant injected by the Vite plugin.
2971
3246
  * Falls back to 'ios' if not defined.
2972
3247
  *
2973
3248
  * @example
2974
3249
  * ```ts
2975
- * const { platform, isIOS, isAndroid } = usePlatform()
3250
+ * const { platform, isIOS, isAndroid, isMacOS, isApple, isDesktop, isMobile } = usePlatform()
2976
3251
  * ```
2977
3252
  */
2978
3253
  declare function usePlatform(): {
2979
3254
  platform: Platform;
2980
3255
  isIOS: boolean;
2981
3256
  isAndroid: boolean;
3257
+ isMacOS: boolean;
3258
+ isApple: boolean;
3259
+ isDesktop: boolean;
3260
+ isMobile: boolean;
2982
3261
  };
2983
3262
 
2984
3263
  interface Dimensions {
@@ -3169,10 +3448,10 @@ interface ExecuteResult {
3169
3448
  rowsAffected: number;
3170
3449
  insertId?: number;
3171
3450
  }
3172
- type Row = Record<string, any>;
3451
+ type Row = Record<string, unknown>;
3173
3452
  interface TransactionContext {
3174
- execute: (sql: string, params?: any[]) => Promise<ExecuteResult>;
3175
- query: <T extends Row = Row>(sql: string, params?: any[]) => Promise<T[]>;
3453
+ execute: (sql: string, params?: unknown[]) => Promise<ExecuteResult>;
3454
+ query: <T extends Row = Row>(sql: string, params?: unknown[]) => Promise<T[]>;
3176
3455
  }
3177
3456
  /**
3178
3457
  * Reactive SQLite database access. Opens a named database on first use
@@ -3199,8 +3478,8 @@ interface TransactionContext {
3199
3478
  * })
3200
3479
  */
3201
3480
  declare function useDatabase(name?: string): {
3202
- execute: (sql: string, params?: any[]) => Promise<ExecuteResult>;
3203
- query: <T extends Row = Row>(sql: string, params?: any[]) => Promise<T[]>;
3481
+ execute: (sql: string, params?: unknown[]) => Promise<ExecuteResult>;
3482
+ query: <T extends Row = Row>(sql: string, params?: unknown[]) => Promise<T[]>;
3204
3483
  transaction: (callback: (ctx: TransactionContext) => Promise<void>) => Promise<void>;
3205
3484
  close: () => Promise<void>;
3206
3485
  isOpen: _vue_reactivity.Ref<boolean, boolean>;
@@ -3700,10 +3979,272 @@ declare function useContacts(): {
3700
3979
  error: _vue_reactivity.Ref<string | null, string | null>;
3701
3980
  };
3702
3981
 
3982
+ interface WindowInfo {
3983
+ width: number;
3984
+ height: number;
3985
+ x: number;
3986
+ y: number;
3987
+ isFullScreen: boolean;
3988
+ isVisible: boolean;
3989
+ title: string;
3990
+ }
3991
+ /**
3992
+ * macOS-only composable for window management.
3993
+ * No-op on iOS and Android.
3994
+ *
3995
+ * @example
3996
+ * ```ts
3997
+ * const { setTitle, setSize, center, minimize, toggleFullScreen, getInfo } = useWindow()
3998
+ * setTitle('My App')
3999
+ * setSize(1024, 768)
4000
+ * ```
4001
+ */
4002
+ declare function useWindow(): {
4003
+ setTitle: (title: string) => Promise<void>;
4004
+ setSize: (width: number, height: number) => Promise<void>;
4005
+ center: () => Promise<void>;
4006
+ minimize: () => Promise<void>;
4007
+ toggleFullScreen: () => Promise<void>;
4008
+ close: () => Promise<void>;
4009
+ getInfo: () => Promise<WindowInfo | null>;
4010
+ };
4011
+
4012
+ interface MenuItem {
4013
+ id?: string;
4014
+ title: string;
4015
+ key?: string;
4016
+ disabled?: boolean;
4017
+ separator?: boolean;
4018
+ }
4019
+ interface MenuSection {
4020
+ title: string;
4021
+ items: MenuItem[];
4022
+ }
4023
+ /**
4024
+ * macOS-only composable for menu bar and context menu control.
4025
+ * No-op on iOS and Android.
4026
+ *
4027
+ * @example
4028
+ * ```ts
4029
+ * const { setAppMenu, showContextMenu, onMenuItemClick } = useMenu()
4030
+ *
4031
+ * setAppMenu([
4032
+ * { title: 'File', items: [{ id: 'new', title: 'New', key: 'n' }] },
4033
+ * { title: 'Edit', items: [{ id: 'copy', title: 'Copy', key: 'c' }] },
4034
+ * ])
4035
+ *
4036
+ * onMenuItemClick((id, title) => {
4037
+ * console.log('Clicked:', id, title)
4038
+ * })
4039
+ * ```
4040
+ */
4041
+ declare function useMenu(): {
4042
+ setAppMenu: (sections: MenuSection[]) => Promise<void>;
4043
+ showContextMenu: (items: MenuItem[]) => Promise<void>;
4044
+ onMenuItemClick: (callback: (id: string, title: string) => void) => () => void;
4045
+ };
4046
+
4047
+ interface OpenFileOptions {
4048
+ multiple?: boolean;
4049
+ allowedTypes?: string[];
4050
+ title?: string;
4051
+ }
4052
+ interface SaveFileOptions {
4053
+ title?: string;
4054
+ defaultName?: string;
4055
+ }
4056
+ /**
4057
+ * macOS-only composable for native file open/save dialogs.
4058
+ * No-op on iOS and Android.
4059
+ *
4060
+ * @example
4061
+ * ```ts
4062
+ * const { openFile, openDirectory, saveFile } = useFileDialog()
4063
+ *
4064
+ * const files = await openFile({ multiple: true, allowedTypes: ['png', 'jpg'] })
4065
+ * const dir = await openDirectory()
4066
+ * const savePath = await saveFile({ defaultName: 'export.json' })
4067
+ * ```
4068
+ */
4069
+ declare function useFileDialog(): {
4070
+ openFile: (options?: OpenFileOptions) => Promise<string[] | null>;
4071
+ openDirectory: (options?: {
4072
+ title?: string;
4073
+ }) => Promise<string | null>;
4074
+ saveFile: (options?: SaveFileOptions) => Promise<string | null>;
4075
+ };
4076
+
4077
+ /**
4078
+ * macOS-only composable for drag and drop.
4079
+ * No-op on iOS and Android.
4080
+ *
4081
+ * @example
4082
+ * ```ts
4083
+ * const { enableDropZone, onDrop, isDragging } = useDragDrop()
4084
+ *
4085
+ * enableDropZone()
4086
+ * onDrop((files) => {
4087
+ * console.log('Dropped files:', files)
4088
+ * })
4089
+ * ```
4090
+ */
4091
+ declare function useDragDrop(): {
4092
+ enableDropZone: () => Promise<void>;
4093
+ onDrop: (callback: (files: string[]) => void) => () => void;
4094
+ onDragEnter: (callback: () => void) => () => void;
4095
+ onDragLeave: (callback: () => void) => () => void;
4096
+ isDragging: Readonly<_vue_reactivity.Ref<boolean, boolean>>;
4097
+ };
4098
+
4099
+ /**
4100
+ * Composable for programmatic teleportation.
4101
+ * Allows moving native nodes to different containers (e.g., modal, root).
4102
+ *
4103
+ * @param target - Teleport target name ('modal', 'root', etc.)
4104
+ * @returns Object with teleport function
4105
+ *
4106
+ * @example
4107
+ * ```ts
4108
+ * import { useTeleport } from '@thelacanians/vue-native-runtime'
4109
+ *
4110
+ * const { teleport } = useTeleport('modal')
4111
+ * const node = createNativeNode('VView')
4112
+ * teleport(node)
4113
+ * ```
4114
+ */
4115
+ declare function useTeleport(target: string): {
4116
+ teleport: (node: NativeNode) => void;
4117
+ };
4118
+
4119
+ interface PanGestureState {
4120
+ translationX: number;
4121
+ translationY: number;
4122
+ velocityX: number;
4123
+ velocityY: number;
4124
+ state: 'began' | 'changed' | 'ended' | 'cancelled';
4125
+ }
4126
+ interface PinchGestureState {
4127
+ scale: number;
4128
+ velocity: number;
4129
+ state: 'began' | 'changed' | 'ended' | 'cancelled';
4130
+ }
4131
+ interface RotateGestureState {
4132
+ rotation: number;
4133
+ velocity: number;
4134
+ state: 'began' | 'changed' | 'ended' | 'cancelled';
4135
+ }
4136
+ interface SwipeGestureState {
4137
+ direction: 'left' | 'right' | 'up' | 'down';
4138
+ locationX: number;
4139
+ locationY: number;
4140
+ }
4141
+ interface TapGestureState {
4142
+ locationX: number;
4143
+ locationY: number;
4144
+ tapCount: number;
4145
+ }
4146
+ interface ForceTouchState {
4147
+ force: number;
4148
+ locationX: number;
4149
+ locationY: number;
4150
+ stage: number;
4151
+ }
4152
+ interface HoverState {
4153
+ locationX: number;
4154
+ locationY: number;
4155
+ state: 'entered' | 'moved' | 'exited';
4156
+ }
4157
+ type GestureState = PanGestureState | PinchGestureState | RotateGestureState | SwipeGestureState | TapGestureState | ForceTouchState | HoverState;
4158
+ interface GestureConfig {
4159
+ enabled?: boolean;
4160
+ simultaneousGestures?: string[];
4161
+ exclusiveGestures?: string[];
4162
+ threshold?: number;
4163
+ minPointers?: number;
4164
+ maxPointers?: number;
4165
+ waitFor?: Ref<GestureHandler | null>[];
4166
+ }
4167
+ interface GestureHandler {
4168
+ id: symbol;
4169
+ event: string;
4170
+ config: GestureConfig;
4171
+ callback: (state: GestureState) => void;
4172
+ }
4173
+ type AnimatableNode = NativeNode | {
4174
+ id: number;
4175
+ };
4176
+ type GestureTargetRef = Ref<AnimatableNode | null | undefined>;
4177
+ type GestureTarget = number | GestureTargetRef | AnimatableNode;
4178
+ interface GestureEventMap {
4179
+ pan: PanGestureState;
4180
+ pinch: PinchGestureState;
4181
+ rotate: RotateGestureState;
4182
+ swipeLeft: SwipeGestureState;
4183
+ swipeRight: SwipeGestureState;
4184
+ swipeUp: SwipeGestureState;
4185
+ swipeDown: SwipeGestureState;
4186
+ press: TapGestureState;
4187
+ longPress: TapGestureState;
4188
+ doubleTap: TapGestureState;
4189
+ forceTouch: ForceTouchState;
4190
+ hover: HoverState;
4191
+ }
4192
+ type AnyGestureState = PanGestureState | PinchGestureState | RotateGestureState | SwipeGestureState | TapGestureState | ForceTouchState | HoverState;
4193
+ interface UseGestureReturn {
4194
+ pan: Ref<PanGestureState | null>;
4195
+ pinch: Ref<PinchGestureState | null>;
4196
+ rotate: Ref<RotateGestureState | null>;
4197
+ swipeLeft: Ref<SwipeGestureState | null>;
4198
+ swipeRight: Ref<SwipeGestureState | null>;
4199
+ swipeUp: Ref<SwipeGestureState | null>;
4200
+ swipeDown: Ref<SwipeGestureState | null>;
4201
+ press: Ref<TapGestureState | null>;
4202
+ longPress: Ref<TapGestureState | null>;
4203
+ doubleTap: Ref<TapGestureState | null>;
4204
+ forceTouch: Ref<ForceTouchState | null>;
4205
+ hover: Ref<HoverState | null>;
4206
+ gestureState: Ref<AnyGestureState | null>;
4207
+ activeGesture: Ref<string | null>;
4208
+ isGesturing: Ref<boolean>;
4209
+ attach: (target: GestureTarget) => void;
4210
+ detach: () => void;
4211
+ on: <K extends keyof GestureEventMap>(event: K, callback: (state: GestureEventMap[K]) => void) => () => void;
4212
+ }
4213
+ interface UseGestureOptions {
4214
+ pan?: boolean | GestureConfig;
4215
+ pinch?: boolean | GestureConfig;
4216
+ rotate?: boolean | GestureConfig;
4217
+ swipeLeft?: boolean | GestureConfig;
4218
+ swipeRight?: boolean | GestureConfig;
4219
+ swipeUp?: boolean | GestureConfig;
4220
+ swipeDown?: boolean | GestureConfig;
4221
+ press?: boolean | GestureConfig;
4222
+ longPress?: boolean | GestureConfig;
4223
+ doubleTap?: boolean | GestureConfig;
4224
+ forceTouch?: boolean | GestureConfig;
4225
+ hover?: boolean | GestureConfig;
4226
+ simultaneousGestures?: string[];
4227
+ }
4228
+ declare function useGesture(target?: GestureTarget, options?: UseGestureOptions): UseGestureReturn;
4229
+ interface GestureCompositionOptions {
4230
+ enabled?: Ref<boolean>;
4231
+ }
4232
+ interface ComposedGesture {
4233
+ pan: Ref<PanGestureState | null>;
4234
+ pinch: Ref<PinchGestureState | null>;
4235
+ rotate: Ref<RotateGestureState | null>;
4236
+ gestureState: Ref<AnyGestureState | null>;
4237
+ activeGesture: Ref<string | null>;
4238
+ isGesturing: Ref<boolean>;
4239
+ isPinchingAndRotating: Ref<boolean>;
4240
+ isPanningAndPinching: Ref<boolean>;
4241
+ }
4242
+ declare function useComposedGestures(target: GestureTarget, options?: GestureCompositionOptions & UseGestureOptions): ComposedGesture;
4243
+
3703
4244
  type ColorScheme = 'light' | 'dark';
3704
- interface ThemeDefinition {
3705
- light: Record<string, any>;
3706
- dark: Record<string, any>;
4245
+ interface ThemeDefinition<T extends Record<string, unknown> = Record<string, unknown>> {
4246
+ light: T;
4247
+ dark: T;
3707
4248
  }
3708
4249
  interface ThemeContext<T> {
3709
4250
  /** The current resolved theme object (reactive). */
@@ -3721,10 +4262,7 @@ interface ThemeContext<T> {
3721
4262
  * Returns a `ThemeProvider` component (wraps children with provide) and a
3722
4263
  * `useTheme` composable for consuming the theme in any descendant component.
3723
4264
  */
3724
- declare function createTheme<T extends Record<string, any>>(definition: {
3725
- light: T;
3726
- dark: T;
3727
- }): {
4265
+ declare function createTheme<T extends Record<string, unknown>>(definition: ThemeDefinition<T>): {
3728
4266
  ThemeProvider: _vue_runtime_core.DefineComponent<_vue_runtime_core.ExtractPropTypes<{
3729
4267
  initialColorScheme: {
3730
4268
  type: () => ColorScheme;
@@ -3758,30 +4296,11 @@ declare function createTheme<T extends Record<string, any>>(definition: {
3758
4296
  * }))
3759
4297
  * ```
3760
4298
  */
3761
- declare function createDynamicStyleSheet<T extends Record<string, any>, S extends Record<string, AnyStyle>>(theme: ComputedRef<T> | Ref<T>, factory: (themeValue: T) => S): ComputedRef<{
3762
- readonly [K in keyof S]: Readonly<S[K]>;
3763
- }>;
4299
+ declare function createDynamicStyleSheet<T extends Record<string, unknown>, S extends Record<string, AnyStyle>>(theme: ComputedRef<T> | Ref<T>, factory: (themeValue: T) => S): ComputedRef<StyleSheet<S>>;
3764
4300
 
3765
- /**
3766
- * NativeBridge -- the communication layer between JavaScript and Swift/UIKit.
3767
- *
3768
- * All renderer operations (create, update, insert, remove) are batched into
3769
- * a pending operations array. On the first enqueue within a microtask cycle,
3770
- * a queueMicrotask callback is scheduled. When the microtask fires, all
3771
- * accumulated operations are JSON-serialized and sent to Swift via
3772
- * `globalThis.__VN_flushOperations(json)`.
3773
- *
3774
- * Operation format:
3775
- * { op: "<name>", args: [arg0, arg1, ...] }
3776
- *
3777
- * This matches the Swift NativeBridge.processOperations() parser which
3778
- * extracts `operation["op"]` and `operation["args"]`.
3779
- *
3780
- * This batching strategy ensures that all synchronous Vue updates triggered
3781
- * by a single state change are coalesced into one native bridge call,
3782
- * minimizing JS-to-native context switches.
3783
- */
3784
- type EventCallback = (payload: any) => void;
4301
+ type EventCallback<T = unknown> = {
4302
+ bivarianceHack(payload: T): void;
4303
+ }['bivarianceHack'];
3785
4304
  declare class NativeBridgeImpl {
3786
4305
  /** Pending operations waiting to be flushed to native */
3787
4306
  private pendingOps;
@@ -3844,7 +4363,7 @@ declare class NativeBridgeImpl {
3844
4363
  * Update a single property on a native view.
3845
4364
  * Swift handler: handleUpdateProp(args: [nodeId, key, value])
3846
4365
  */
3847
- updateProp(nodeId: number, key: string, value: any): void;
4366
+ updateProp(nodeId: number, key: string, value: unknown): void;
3848
4367
  /**
3849
4368
  * Update a single style property on a native view.
3850
4369
  * Swift handler: handleUpdateStyle(args: [nodeId, { key: value }])
@@ -3852,7 +4371,7 @@ declare class NativeBridgeImpl {
3852
4371
  * Each style property update is sent as a dictionary with one key,
3853
4372
  * matching the Swift side which iterates over the dictionary entries.
3854
4373
  */
3855
- updateStyle(nodeId: number, key: string, value: any): void;
4374
+ updateStyle(nodeId: number, key: string, value: unknown): void;
3856
4375
  /**
3857
4376
  * Update multiple style properties on a native view in a single bridge op.
3858
4377
  * Swift/Kotlin handler: handleUpdateStyle(args: [nodeId, { key1: val1, key2: val2, ... }])
@@ -3860,7 +4379,7 @@ declare class NativeBridgeImpl {
3860
4379
  * More efficient than calling updateStyle() per property — sends one op
3861
4380
  * instead of N ops, reducing JSON overhead and bridge dispatch.
3862
4381
  */
3863
- updateStyles(nodeId: number, styles: Record<string, any>): void;
4382
+ updateStyles(nodeId: number, styles: Record<string, unknown>): void;
3864
4383
  /**
3865
4384
  * Append a child node to a parent node.
3866
4385
  * Swift handler: handleAppendChild(args: [parentId, childId])
@@ -3882,7 +4401,7 @@ declare class NativeBridgeImpl {
3882
4401
  * The native side will call __VN_handleEvent when this event fires.
3883
4402
  * Swift handler: handleAddEventListener(args: [nodeId, eventName])
3884
4403
  */
3885
- addEventListener(nodeId: number, eventName: string, callback: EventCallback): void;
4404
+ addEventListener<T = unknown>(nodeId: number, eventName: string, callback: EventCallback<T>): void;
3886
4405
  /**
3887
4406
  * Remove a previously registered event listener.
3888
4407
  * Swift handler: handleRemoveEventListener(args: [nodeId, eventName])
@@ -3892,7 +4411,7 @@ declare class NativeBridgeImpl {
3892
4411
  * Called from Swift via globalThis.__VN_handleEvent when a native event fires.
3893
4412
  * Looks up the registered handler and invokes it with the event payload.
3894
4413
  */
3895
- handleNativeEvent(nodeId: number, eventName: string, payload: any): void;
4414
+ handleNativeEvent(nodeId: number, eventName: string, payload: unknown): void;
3896
4415
  /**
3897
4416
  * Tell native which node ID is the root of the view tree.
3898
4417
  * Swift handler: handleSetRootView(args: [nodeId])
@@ -3906,23 +4425,39 @@ declare class NativeBridgeImpl {
3906
4425
  * a crash or unregistered module), the Promise rejects with a clear error instead
3907
4426
  * of hanging forever.
3908
4427
  */
3909
- invokeNativeModule(moduleName: string, methodName: string, args?: any[], timeoutMs?: number): Promise<any>;
4428
+ invokeNativeModule(moduleName: string, methodName: string, args?: unknown[], timeoutMs?: number): Promise<any>;
3910
4429
  /**
3911
4430
  * Invoke a native module method synchronously.
3912
4431
  * This sends the operation immediately and expects no callback.
3913
4432
  * Use sparingly -- prefer the async variant.
3914
4433
  */
3915
- invokeNativeModuleSync(moduleName: string, methodName: string, args?: any[]): void;
4434
+ invokeNativeModuleSync(moduleName: string, methodName: string, args?: unknown[]): void;
3916
4435
  /**
3917
4436
  * Called from Swift via globalThis.__VN_resolveCallback when an async
3918
4437
  * native module invocation completes.
3919
4438
  */
3920
- resolveCallback(callbackId: number, result: any, error: any): void;
4439
+ resolveCallback(callbackId: number, result: unknown, error: unknown): void;
4440
+ /**
4441
+ * Create teleport markers in native.
4442
+ * Used for Teleport component to render content outside parent hierarchy.
4443
+ */
4444
+ createTeleport(parentId: number, startId: number, endId: number): void;
4445
+ /**
4446
+ * Remove teleport markers from native.
4447
+ * Cleans up teleport containers and markers.
4448
+ */
4449
+ removeTeleport(parentId: number, startId: number, endId: number): void;
4450
+ /**
4451
+ * Move a node to a teleport target.
4452
+ * @param target - Teleport target name ('modal', 'root', etc.)
4453
+ * @param nodeId - Node ID to teleport
4454
+ */
4455
+ teleportTo(target: string, nodeId: number): void;
3921
4456
  /**
3922
4457
  * Register a handler for a push-based global event from native.
3923
4458
  * Returns an unsubscribe function.
3924
4459
  */
3925
- onGlobalEvent(eventName: string, handler: (payload: any) => void): () => void;
4460
+ onGlobalEvent<T = unknown>(eventName: string, handler: EventCallback<T>): () => void;
3926
4461
  /**
3927
4462
  * Called from Swift via globalThis.__VN_handleGlobalEvent when a push event fires.
3928
4463
  */
@@ -3980,6 +4515,6 @@ interface NativeApp extends App {
3980
4515
  * app.start()
3981
4516
  * ```
3982
4517
  */
3983
- declare function createApp(rootComponent: Component, rootProps?: Record<string, any>): NativeApp;
4518
+ declare function createApp(rootComponent: Component, rootProps?: Record<string, unknown>): NativeApp;
3984
4519
 
3985
- export { type AccessibilityProps, type ActionSheetAction, type AlertButton, type AlignContent, type AlignItems, type AlignSelf, type AnyStyle, type AppStateStatus, type AudioPlayOptions, type AudioRecordOptions, type AudioRecordResult, type AuthResult, type BLECharacteristic, type BLECharacteristicChange, type BLEDevice, type BLEState, type BackgroundTaskOptions, type BackgroundTaskType, type BiometryResult, type BiometryType, type BorderStyle, type Calendar, type CalendarEvent, type CameraOptions, type CameraResult, type ColorScheme$1 as ColorScheme, type ConnectionType, type Contact, type ContactField, type CreateContactData, type CreateEventOptions, type Dimensions, type Direction, type Display, type DropdownOption, ErrorBoundary, type ExecuteResult, type FileStat, type FlatListRenderItemInfo, type FlexDirection, type FlexWrap, type FontStyle, type FontWeight, type GeoCoordinates, type HttpRequestConfig, type HttpResponse, type ImageStyle, type ImportantForAccessibility, type JustifyContent, type LocalNotification, type NativeApp, NativeBridge, type NativeNode, type NetworkState, type NotificationPayload, type Overflow, type PerformanceMetrics, type Permission, type PermissionStatus, type Platform, type Position, type Product, type ProductType, type Purchase, type PushNotificationPayload, type QRCodeResult, type RadioOption, type ResizeMode, type Row, type SensorData, type SensorOptions, type ShadowOffset, type ShareContent, type ShareResult, type SharedElementFrame, type SharedElementRegistration, type SocialUser, type SpringOptions, type StatusBarStyle, type StyleProp, type StyleSheet, type TextAlign, type TextDecorationLine, type TextDecorationStyle, type TextStyle, type TextTransform, type ThemeContext, type ThemeDefinition, type TimingOptions, type TransactionContext, type TransactionState, type TransactionUpdate, type TransformValue, type UpdateInfo, type UpdateStatus, VActionSheet, type VActionSheetProps, VActivityIndicator, type VActivityIndicatorProps, VAlertDialog, type VAlertDialogProps, VButton, type VButtonProps, VCheckbox, type VCheckboxProps, VDropdown, type VDropdownProps, VFlatList, VImage, type VImageProps, VInput, type VInputProps, VKeyboardAvoiding, type VKeyboardAvoidingProps, VList, type VListProps, VModal, type VModalProps, VPicker, type VPickerProps, VPressable, type VPressableProps, VProgressBar, type VProgressBarProps, VRadio, type VRadioProps, VRefreshControl, type VRefreshControlProps, VSafeArea, type VSafeAreaProps, VScrollView, type VScrollViewProps, VSectionList, type VSectionListProps, VSegmentedControl, type VSegmentedControlProps, VSlider, type VSliderProps, VStatusBar, type VStatusBarProps, VSwitch, type VSwitchProps, VText, type VTextProps, VVideo, type VVideoProps, VView, type VViewProps, VWebView, type VWebViewProps, type VersionInfo, type VideoCaptureOptions, type VideoCaptureResult, type ViewStyle, type WebSocketOptions, type WebSocketStatus, type WebViewSource, clearSharedElementRegistry, createApp, createCommentNode, createDynamicStyleSheet, createNativeNode, createStyleSheet, createTextNode, createTheme, getRegisteredSharedElements, getSharedElementViewId, measureViewFrame, render, resetNodeId, useAccelerometer, useAnimation, useAppState, useAppleSignIn, useAsyncStorage, useAudio, useBackHandler, useBackgroundTask, useBiometry, useBluetooth, useCalendar, useCamera, useClipboard, useColorScheme, useContacts, useDatabase, useDeviceInfo, useDimensions, useFileSystem, useGeolocation, useGoogleSignIn, useGyroscope, useHaptics, useHttp, useI18n, useIAP, useKeyboard, useLinking, useNetwork, useNotifications, useOTAUpdate, usePerformance, usePermissions, usePlatform, useSecureStorage, useShare, useSharedElementTransition, useWebSocket, vShow, validStyleProperties };
4520
+ export { type AccessibilityProps, type ActionSheetAction, type AlertButton, type AlignContent, type AlignItems, type AlignSelf, type AnyStyle, type AppStateStatus, type AudioPlayOptions, type AudioRecordOptions, type AudioRecordResult, type AuthResult, type BLECharacteristic, type BLECharacteristicChange, type BLEDevice, type BLEState, type BackgroundTaskOptions, type BackgroundTaskType, type BiometryResult, type BiometryType, type BorderStyle, type Calendar, type CalendarEvent, type CameraOptions, type CameraResult, type ColorScheme$1 as ColorScheme, type ComposedGesture, type ConnectionType, type Contact, type ContactField, type CreateContactData, type CreateEventOptions, type Dimensions, type Direction, type Display, type DropdownOption, ErrorBoundary, type ExecuteResult, type FileStat, type FlatListRenderItemInfo, type FlexDirection, type FlexWrap, type FontStyle, type FontWeight, type ForceTouchState, type GeoCoordinates, type GestureConfig, type GestureState, type HoverState, type HttpRequestConfig, type HttpResponse, type ImageStyle, type ImportantForAccessibility, type JustifyContent, type LocalNotification, type MenuItem, type MenuSection, type NativeApp, NativeBridge, type NativeNode, type NetworkState, type NotificationPayload, type OpenFileOptions, type Overflow, type PanGestureState, type PerformanceMetrics, type Permission, type PermissionStatus, type PinchGestureState, type Platform, type Position, type Product, type ProductType, type Purchase, type PushNotificationPayload, type QRCodeResult, type RadioOption, type ResizeMode, type RotateGestureState, type Row, type SaveFileOptions, type SensorData, type SensorOptions, type ShadowOffset, type ShareContent, type ShareResult, type SharedElementFrame, type SharedElementRegistration, type SocialUser, type SpringOptions, type StatusBarStyle, type StyleProp, type StyleSheet, type SwipeGestureState, type TabConfig, type TapGestureState, type TextAlign, type TextDecorationLine, type TextDecorationStyle, type TextStyle, type TextTransform, type ThemeContext, type ThemeDefinition, type TimingOptions, type TransactionContext, type TransactionState, type TransactionUpdate, type TransformValue, type UpdateInfo, type UpdateStatus, type UseGestureOptions, type UseGestureReturn, VActionSheet, type VActionSheetProps, VActivityIndicator, type VActivityIndicatorProps, VAlertDialog, type VAlertDialogProps, VButton, type VButtonProps, VCheckbox, type VCheckboxProps, VDrawer, VDrawerItem, type VDrawerItemProps, type VDrawerProps, VDrawerSection, type VDrawerSectionProps, VDropdown, type VDropdownProps, VFlatList, type VFlatListProps, VImage, type VImageProps, VInput, type VInputProps, VKeyboardAvoiding, type VKeyboardAvoidingProps, VList, type VListProps, VModal, type VModalProps, VPicker, type VPickerProps, VPressable, type VPressableProps, VProgressBar, type VProgressBarProps, VRadio, type VRadioProps, VRefreshControl, type VRefreshControlProps, VSafeArea, type VSafeAreaProps, VScrollView, type VScrollViewProps, VSectionList, type VSectionListProps, VSegmentedControl, type VSegmentedControlProps, VSlider, type VSliderProps, VStatusBar, type VStatusBarProps, VSwitch, type VSwitchProps, VTabBar, type VTabBarProps, VText, type VTextProps, VVideo, type VVideoProps, VView, type VViewProps, VWebView, type VWebViewProps, type VersionInfo, type VideoCaptureOptions, type VideoCaptureResult, type ViewStyle, type WebSocketOptions, type WebSocketStatus, type WebViewSource, type WindowInfo, builtInComponents, clearSharedElementRegistry, createApp, createCommentNode, createDynamicStyleSheet, createNativeNode, createStyleSheet, createTextNode, createTheme, getRegisteredSharedElements, getSharedElementViewId, measureViewFrame, render, resetNodeId, useAccelerometer, useAnimation, useAppState, useAppleSignIn, useAsyncStorage, useAudio, useBackHandler, useBackgroundTask, useBiometry, useBluetooth, useCalendar, useCamera, useClipboard, useColorScheme, useComposedGestures, useContacts, useDatabase, useDeviceInfo, useDimensions, useDragDrop, useFileDialog, useFileSystem, useGeolocation, useGesture, useGoogleSignIn, useGyroscope, useHaptics, useHttp, useI18n, useIAP, useKeyboard, useLinking, useMenu, useNetwork, useNotifications, useOTAUpdate, usePerformance, usePermissions, usePlatform, useSecureStorage, useShare, useSharedElementTransition, useTeleport, useWebSocket, useWindow, vModel, vShow, validStyleProperties };