bleam 0.0.5 → 0.0.7

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 (141) hide show
  1. package/dist/ai.cjs +4146 -0
  2. package/dist/ai.d.cts +535 -0
  3. package/dist/ai.d.ts +535 -0
  4. package/dist/ai.js +4102 -0
  5. package/dist/animated.cjs +286 -0
  6. package/dist/animated.d.cts +47 -0
  7. package/dist/animated.d.ts +47 -0
  8. package/dist/animated.js +281 -0
  9. package/dist/app.cjs +92 -0
  10. package/dist/app.d.cts +1 -2
  11. package/dist/app.d.ts +1 -2
  12. package/dist/app.js +93 -2
  13. package/dist/bundler.d.cts +1 -2
  14. package/dist/bundler.d.ts +1 -2
  15. package/dist/cli.cjs +1375 -71
  16. package/dist/cli.d.cts +89 -1
  17. package/dist/cli.d.ts +89 -1
  18. package/dist/cli.js +1373 -74
  19. package/dist/config-Bb6SULnR.cjs +46 -0
  20. package/dist/config-CfWa3q-k.js +28 -0
  21. package/dist/config-Cms0rvqg.d.ts +40 -0
  22. package/dist/config-CufOVJV3.d.cts +40 -0
  23. package/dist/config.cjs +4 -25
  24. package/dist/config.d.cts +2 -28
  25. package/dist/config.d.ts +2 -28
  26. package/dist/config.js +2 -24
  27. package/dist/crypto-BB92-Upx.js +7 -0
  28. package/dist/crypto-CT3VZ7lF.cjs +13 -0
  29. package/dist/crypto.cjs +2 -2
  30. package/dist/crypto.d.cts +6 -1
  31. package/dist/crypto.d.ts +8 -1
  32. package/dist/crypto.js +2 -2
  33. package/dist/dev-protocol.d.cts +16 -3
  34. package/dist/dev-protocol.d.ts +16 -3
  35. package/dist/dev-protocol.js +1 -2
  36. package/dist/files-Bo7h9fik.cjs +468 -0
  37. package/dist/files-Ds1wT8C2.js +445 -0
  38. package/dist/files-DwA7pzr3.d.cts +99 -0
  39. package/dist/files-VrkQlKIT.d.ts +99 -0
  40. package/dist/files.cjs +7 -0
  41. package/dist/files.d.cts +2 -0
  42. package/dist/files.d.ts +2 -0
  43. package/dist/files.js +4 -0
  44. package/dist/index.cjs +4 -5
  45. package/dist/index.d.cts +2 -3
  46. package/dist/index.d.ts +2 -3
  47. package/dist/index.js +2 -4
  48. package/dist/native-runtime-C85Nuc4F.js +10 -0
  49. package/dist/{native-runtime-CdeT0JyQ.cjs → native-runtime-CsXnXkQn.cjs} +1 -14
  50. package/dist/native-sqlite-xcGdamRD.js +64 -0
  51. package/dist/native-sqlite-yQLD5s9i.cjs +66 -0
  52. package/dist/platform.cjs +27 -0
  53. package/dist/platform.d.cts +39 -0
  54. package/dist/platform.d.ts +39 -0
  55. package/dist/platform.js +21 -0
  56. package/dist/runtime.d.cts +1 -7
  57. package/dist/runtime.d.ts +1 -7
  58. package/dist/schema-Bo5Jvqus.js +90 -0
  59. package/dist/schema-DOOjfXvs.d.ts +58 -0
  60. package/dist/schema-ENSMX_1t.d.cts +58 -0
  61. package/dist/schema-rQ13mrpD.cjs +102 -0
  62. package/dist/schema.cjs +4 -0
  63. package/dist/schema.d.cts +2 -0
  64. package/dist/schema.d.ts +2 -0
  65. package/dist/schema.js +3 -0
  66. package/dist/state-Bx0VlTlO.cjs +852 -0
  67. package/dist/state-CAwe-Vw1.js +767 -0
  68. package/dist/state.cjs +19 -0
  69. package/dist/state.d.cts +159 -0
  70. package/dist/state.d.ts +159 -0
  71. package/dist/state.js +6 -0
  72. package/dist/styles.cjs +742 -0
  73. package/dist/styles.d.cts +701 -0
  74. package/dist/styles.d.ts +701 -0
  75. package/dist/styles.js +739 -0
  76. package/dist/ui-1WepaMS4.d.cts +92 -0
  77. package/dist/ui-234Plg7Z.d.cts +92 -0
  78. package/dist/ui-BJmXhz9Q.d.ts +92 -0
  79. package/dist/ui-Dd7SXdbg.d.cts +92 -0
  80. package/dist/ui-Ds88eETu.d.ts +92 -0
  81. package/dist/ui-TaqnB5SP.d.ts +92 -0
  82. package/dist/ui-WQvnXL0W.d.ts +92 -0
  83. package/dist/ui.cjs +364 -0
  84. package/dist/ui.d.cts +2 -0
  85. package/dist/ui.d.ts +2 -0
  86. package/dist/ui.js +357 -0
  87. package/dist/window.cjs +596 -0
  88. package/dist/window.d.cts +63 -0
  89. package/dist/window.d.ts +63 -0
  90. package/dist/window.js +589 -0
  91. package/metro-config.cjs +18 -13
  92. package/package.json +57 -21
  93. package/templates/basic/app/index.tsx +133 -12
  94. package/templates/basic/app.config.ts +4 -2
  95. package/templates/foundation-models/app/index.tsx +32 -0
  96. package/templates/foundation-models/app.config.ts +5 -0
  97. package/templates/image-generation/app/index.tsx +39 -0
  98. package/templates/image-generation/app.config.ts +5 -0
  99. package/templates/state/app/index.tsx +30 -0
  100. package/templates/state/app.config.ts +5 -0
  101. package/dist/app.d.cts.map +0 -1
  102. package/dist/app.d.ts.map +0 -1
  103. package/dist/app.js.map +0 -1
  104. package/dist/bundler.d.cts.map +0 -1
  105. package/dist/bundler.d.ts.map +0 -1
  106. package/dist/cli.js.map +0 -1
  107. package/dist/config.d.cts.map +0 -1
  108. package/dist/config.d.ts.map +0 -1
  109. package/dist/config.js.map +0 -1
  110. package/dist/crypto-BNhWeXMj.cjs +0 -15
  111. package/dist/crypto-Bg8cD8wX.d.cts +0 -8
  112. package/dist/crypto-Bg8cD8wX.d.cts.map +0 -1
  113. package/dist/crypto-CCA_hvao.js +0 -11
  114. package/dist/crypto-CCA_hvao.js.map +0 -1
  115. package/dist/crypto-IOzbNoJD.d.ts +0 -8
  116. package/dist/crypto-IOzbNoJD.d.ts.map +0 -1
  117. package/dist/dev-protocol.d.cts.map +0 -1
  118. package/dist/dev-protocol.d.ts.map +0 -1
  119. package/dist/dev-protocol.js.map +0 -1
  120. package/dist/fs-BK7joD1g.js +0 -13
  121. package/dist/fs-BK7joD1g.js.map +0 -1
  122. package/dist/fs-CEhcjuN6.d.ts +0 -9
  123. package/dist/fs-CEhcjuN6.d.ts.map +0 -1
  124. package/dist/fs-CfE8CHf_.d.cts +0 -9
  125. package/dist/fs-CfE8CHf_.d.cts.map +0 -1
  126. package/dist/fs-DKHYTPua.cjs +0 -18
  127. package/dist/fs.cjs +0 -3
  128. package/dist/fs.d.cts +0 -2
  129. package/dist/fs.d.ts +0 -2
  130. package/dist/fs.js +0 -3
  131. package/dist/native-runtime-BoqybBBf.js +0 -18
  132. package/dist/native-runtime-BoqybBBf.js.map +0 -1
  133. package/dist/native.cjs +0 -132
  134. package/dist/native.d.cts +0 -64
  135. package/dist/native.d.cts.map +0 -1
  136. package/dist/native.d.ts +0 -64
  137. package/dist/native.d.ts.map +0 -1
  138. package/dist/native.js +0 -133
  139. package/dist/native.js.map +0 -1
  140. package/dist/runtime.d.cts.map +0 -1
  141. package/dist/runtime.d.ts.map +0 -1
package/dist/ai.d.cts ADDED
@@ -0,0 +1,535 @@
1
+ import { s as FileRef } from "./files-DwA7pzr3.cjs";
2
+ import { h as StandardSchema, p as SchemaResult, s as InferOutput } from "./schema-ENSMX_1t.cjs";
3
+
4
+ //#region src/ai/errors.d.ts
5
+ type AIErrorCode = 'unsupported_runtime' | 'unsupported_os' | 'model_unavailable' | 'generation_failed' | 'generation_canceled' | 'concurrent_request' | 'guardrail_violation' | 'unsupported_language_or_locale' | 'rate_limited' | 'tool_failed' | 'image_generation_failed' | 'invalid_message' | 'invalid_schema' | 'invalid_model' | 'validation_failed' | 'context_window_exceeded';
6
+ type ImageGenerationStage = 'download' | 'tokenize' | 'encode' | 'denoise' | 'decode' | 'write';
7
+ type ImageGenerationErrorDetails = {
8
+ stage: ImageGenerationStage;
9
+ };
10
+ declare class AIError extends Error {
11
+ readonly code: AIErrorCode;
12
+ readonly cause?: unknown | undefined;
13
+ constructor(code: AIErrorCode, message: string, cause?: unknown | undefined);
14
+ }
15
+ declare class ImageGenerationError extends AIError {
16
+ readonly stage: ImageGenerationStage;
17
+ constructor(stage: ImageGenerationStage, message: string, cause?: unknown);
18
+ }
19
+ //#endregion
20
+ //#region src/ai/image-models.d.ts
21
+ type FluxImageModelId = 'flux2-klein-4b-8bit-abliterated';
22
+ type ImageModelCapability = 'text-to-image' | 'image-to-image' | 'inpainting' | 'outpainting' | 'references' | 'lora';
23
+ type ImageModelMetadata = {
24
+ displayName: string;
25
+ family: 'flux2-klein';
26
+ precision: '8-bit';
27
+ estimatedMemoryGB: number;
28
+ quality: 'high';
29
+ speed: 'fast';
30
+ capabilities: ImageModelCapability[];
31
+ };
32
+ type FluxImageModelManifest = {
33
+ formatVersion: 1;
34
+ model: FluxImageModelId;
35
+ directory: string;
36
+ metadata: ImageModelMetadata;
37
+ components: {
38
+ textEncoder: FluxModelComponentManifest;
39
+ transformer: FluxModelComponentManifest;
40
+ vae: FluxModelComponentManifest;
41
+ };
42
+ };
43
+ type FluxModelComponentManifest = {
44
+ repo: string;
45
+ revision: string;
46
+ path: string;
47
+ files: string[];
48
+ };
49
+ type FluxTokenizedPrompt = {
50
+ inputIds: number[];
51
+ attentionMask: number[];
52
+ };
53
+ type FluxImageModelPaths = {
54
+ modelRoot: string;
55
+ textEncoderPath: string;
56
+ transformerPath: string;
57
+ vaePath: string;
58
+ };
59
+ type PrepareImageModelProgress = {
60
+ model: FluxImageModelId;
61
+ file: string;
62
+ index: number;
63
+ total: number;
64
+ bytesWritten: number;
65
+ totalBytes?: number;
66
+ fraction?: number;
67
+ modelBytesWritten: number;
68
+ totalModelBytes: number;
69
+ modelFraction: number;
70
+ };
71
+ type PrepareImageLoRAProgress = {
72
+ lora: string;
73
+ file: string;
74
+ bytesWritten: number;
75
+ totalBytes?: number;
76
+ fraction?: number;
77
+ };
78
+ type PrepareImageModelOptions = {
79
+ model?: FluxImageModelId;
80
+ accessToken?: string;
81
+ concurrency?: number;
82
+ onProgress?: (progress: PrepareImageModelProgress) => void;
83
+ };
84
+ type ImageLoRASource = {
85
+ type: 'local';
86
+ path: string;
87
+ } | {
88
+ type: 'url';
89
+ url: string;
90
+ filename?: string;
91
+ bytes?: number;
92
+ } | {
93
+ type: 'huggingface';
94
+ repo: string;
95
+ path?: string;
96
+ revision?: string;
97
+ bytes?: number;
98
+ };
99
+ type ImageLoRAPrecision = 'float16' | 'bfloat16' | 'float32';
100
+ type ImageLoRAMetadata = {
101
+ baseModel?: FluxImageModelId;
102
+ precision?: ImageLoRAPrecision;
103
+ recommendedScale?: number;
104
+ sigmaSchedule?: number[];
105
+ };
106
+ type ImageLoRADefinition = {
107
+ id: string;
108
+ description?: string;
109
+ source: ImageLoRASource;
110
+ metadata?: ImageLoRAMetadata;
111
+ scale?: number;
112
+ };
113
+ type PrepareImageLoRAOptions = {
114
+ accessToken?: string;
115
+ signal?: AbortSignal;
116
+ onProgress?: (progress: PrepareImageLoRAProgress) => void;
117
+ };
118
+ type PreparedImageLoRA = {
119
+ id: string;
120
+ description?: string;
121
+ path: string;
122
+ uri: string;
123
+ scale: number;
124
+ source: ImageLoRASource;
125
+ metadata?: ImageLoRAMetadata;
126
+ };
127
+ type ImageLoRAState = PreparedImageLoRA & {
128
+ installed: boolean;
129
+ verified: boolean;
130
+ size?: number;
131
+ };
132
+ type PreparedImageModel = FluxImageModelPaths & {
133
+ model: FluxImageModelId;
134
+ tokenizer: FluxTokenizer;
135
+ };
136
+ type FluxTokenizer = (input: {
137
+ prompt: string;
138
+ maxLength: number;
139
+ }) => Promise<FluxTokenizedPrompt> | FluxTokenizedPrompt;
140
+ type ImageMaskMode = 'paint' | 'preserve';
141
+ type ImageResizeMode = 'stretch' | 'fit' | 'crop';
142
+ type ImageAspectRatio = '1:1' | '16:9' | '9:16' | '4:3' | '3:2' | '2:3' | '21:9';
143
+ type ImageSize = {
144
+ width: number;
145
+ height: number;
146
+ };
147
+ type ImageOutpaintSourceRect = {
148
+ x: number;
149
+ y: number;
150
+ width: number;
151
+ height: number;
152
+ };
153
+ type ImageOutpaintOptions = {
154
+ width: number;
155
+ height: number;
156
+ sourceRect: ImageOutpaintSourceRect;
157
+ autoCrop?: boolean;
158
+ };
159
+ type GenerateImageOptions = {
160
+ prompt: string;
161
+ image?: string;
162
+ mask?: string;
163
+ maskMode?: ImageMaskMode;
164
+ outpaint?: ImageOutpaintOptions;
165
+ references?: string[];
166
+ referenceInfluences?: number[];
167
+ aspectRatio?: ImageAspectRatio;
168
+ resizeMode?: ImageResizeMode;
169
+ maxInputLongSide?: number | false;
170
+ loras?: ImageLoRADefinition[];
171
+ mode?: string;
172
+ width?: number;
173
+ height?: number;
174
+ steps?: number;
175
+ guidance?: number;
176
+ strength?: number;
177
+ seed?: number;
178
+ model?: FluxImageModelId;
179
+ modelRoot?: string;
180
+ tokenizer?: FluxTokenizer;
181
+ accessToken?: string;
182
+ concurrency?: number;
183
+ signal?: AbortSignal;
184
+ onModelProgress?: (progress: PrepareImageModelProgress) => void;
185
+ onProgress?: (progress: ImagegenProgress) => void;
186
+ };
187
+ type ImagegenProgress = {
188
+ currentStep: number;
189
+ totalSteps: number;
190
+ fraction: number;
191
+ };
192
+ type GenerateImageResult = {
193
+ uri: string;
194
+ width: number;
195
+ height: number;
196
+ model: FluxImageModelId;
197
+ metadata: GenerateImageMetadata;
198
+ };
199
+ type GenerateImagesOptions = GenerateImageOptions & {
200
+ count: number;
201
+ };
202
+ type ImageGenerationJobStatus = 'queued' | 'running' | 'completed' | 'failed' | 'canceled';
203
+ type ImageGenerationJobSnapshot = {
204
+ id: string;
205
+ status: ImageGenerationJobStatus;
206
+ createdAt: string;
207
+ startedAt?: string;
208
+ completedAt?: string;
209
+ progress?: ImagegenProgress;
210
+ result?: GenerateImageResult;
211
+ error?: unknown;
212
+ };
213
+ type ImageGenerationJob = {
214
+ id: string;
215
+ promise: Promise<GenerateImageResult>;
216
+ cancel(): boolean;
217
+ getSnapshot(): ImageGenerationJobSnapshot;
218
+ subscribe(listener: (snapshot: ImageGenerationJobSnapshot) => void): () => void;
219
+ };
220
+ type GenerateImageMetadata = {
221
+ model: FluxImageModelId;
222
+ width: number;
223
+ height: number;
224
+ steps: number;
225
+ guidance: number;
226
+ strength?: number;
227
+ seed: number;
228
+ elapsedMs?: number;
229
+ appliedLoRAs?: Array<{
230
+ id?: string;
231
+ path: string;
232
+ scale: number;
233
+ }>;
234
+ sigmaSchedule?: number[];
235
+ };
236
+ type ImageModelState = {
237
+ model: FluxImageModelId;
238
+ modelRoot: string;
239
+ paths: FluxImageModelPaths;
240
+ installed: boolean;
241
+ verified: boolean;
242
+ bytesPresent: number;
243
+ totalBytes: number;
244
+ missingFiles: string[];
245
+ invalidFiles: string[];
246
+ };
247
+ type ImageMemoryTelemetry = {
248
+ activeMB: number;
249
+ cacheMB: number;
250
+ };
251
+ type UpscaleImageOptions = {
252
+ image: string;
253
+ scale?: number;
254
+ signal?: AbortSignal;
255
+ };
256
+ type UpscaleImageResult = {
257
+ uri: string;
258
+ width: number;
259
+ height: number;
260
+ scale: number;
261
+ };
262
+ declare const flux2Klein4B8BitAbliterated: FluxImageModelManifest;
263
+ declare const imageModelManifests: readonly [FluxImageModelManifest];
264
+ declare function imageModelManifest(model: FluxImageModelId): FluxImageModelManifest | undefined;
265
+ declare function fluxImageModelPaths(modelRoot: string, manifest?: FluxImageModelManifest): FluxImageModelPaths;
266
+ //#endregion
267
+ //#region src/ai/image.d.ts
268
+ declare const defaultImageLongSide = 1152;
269
+ declare function normalizeImageSize(size: ImageSize, maxLongSide?: number | false): ImageSize;
270
+ declare function imageSizeForPreset(aspectRatio: ImageAspectRatio, maxLongSide?: number): ImageSize;
271
+ declare function prepareImageModel(options?: PrepareImageModelOptions): Promise<PreparedImageModel>;
272
+ declare function verifyImageModel(options?: {
273
+ model?: FluxImageModelId;
274
+ modelRoot?: string;
275
+ }): Promise<ImageModelState>;
276
+ declare function listImageModels(options?: {
277
+ modelRoot?: string;
278
+ }): Promise<ImageModelState[]>;
279
+ declare function deleteImageModel(options?: {
280
+ model?: FluxImageModelId;
281
+ modelRoot?: string;
282
+ }): Promise<void>;
283
+ declare function imageMemoryTelemetry(): Promise<ImageMemoryTelemetry>;
284
+ declare function unloadImageModel(): Promise<boolean>;
285
+ declare function upscaleImage(options: UpscaleImageOptions): Promise<UpscaleImageResult>;
286
+ declare function prepareImageLoRA(lora: ImageLoRADefinition, options?: PrepareImageLoRAOptions): Promise<PreparedImageLoRA>;
287
+ declare function verifyImageLoRA(lora: ImageLoRADefinition): Promise<ImageLoRAState>;
288
+ declare function listImageLoRAs(loras: ImageLoRADefinition[]): Promise<ImageLoRAState[]>;
289
+ declare function deleteImageLoRA(lora: string | ImageLoRADefinition): Promise<void>;
290
+ declare function generateImage(options: GenerateImageOptions): Promise<GenerateImageResult>;
291
+ declare function generateImages(options: GenerateImagesOptions): Promise<GenerateImageResult[]>;
292
+ declare function scheduleImageGeneration(options: GenerateImageOptions): ImageGenerationJob;
293
+ declare function getImageGenerationJob(id: string): ImageGenerationJob | undefined;
294
+ declare function listImageGenerationJobs(): {
295
+ id: string;
296
+ status: ImageGenerationJobStatus;
297
+ createdAt: string;
298
+ startedAt?: string;
299
+ completedAt?: string;
300
+ progress?: ImagegenProgress;
301
+ result?: GenerateImageResult;
302
+ error?: unknown;
303
+ }[];
304
+ //#endregion
305
+ //#region src/ai/image-composer.d.ts
306
+ type ImageComposerMode = 'text' | 'subject' | 'edit' | 'outpaint';
307
+ type ImageComposerSize = {
308
+ width: number;
309
+ height: number;
310
+ };
311
+ type ImageComposerImage = FileRef & {
312
+ size: ImageComposerSize;
313
+ };
314
+ type ImageComposerRect = {
315
+ x: number;
316
+ y: number;
317
+ width: number;
318
+ height: number;
319
+ };
320
+ type ImageGenerationRequestInput = {
321
+ mode: 'text';
322
+ prompt: string;
323
+ refs?: ImageComposerImage[];
324
+ } | {
325
+ mode: 'subject';
326
+ prompt: string;
327
+ subject: ImageComposerImage | null;
328
+ refs?: ImageComposerImage[];
329
+ } | {
330
+ mode: 'edit';
331
+ prompt: string;
332
+ source: ImageComposerImage | null;
333
+ refs?: ImageComposerImage[];
334
+ } | {
335
+ mode: 'outpaint';
336
+ prompt: string;
337
+ source: ImageComposerImage | null;
338
+ rect: ImageComposerRect | null;
339
+ };
340
+ type ImageComposerOptions = {
341
+ initialMode?: ImageComposerMode;
342
+ maxRefs?: number;
343
+ inputRoot?: string;
344
+ };
345
+ type TextComposerState = {
346
+ refs: ImageComposerImage[];
347
+ isPicking: boolean;
348
+ error: Error | null;
349
+ };
350
+ type SubjectComposerState = TextComposerState & {
351
+ subject: ImageComposerImage | null;
352
+ };
353
+ type EditComposerState = TextComposerState & {
354
+ source: ImageComposerImage | null;
355
+ };
356
+ type OutpaintComposerState = {
357
+ source: ImageComposerImage | null;
358
+ rect: ImageComposerRect | null;
359
+ isPicking: boolean;
360
+ error: Error | null;
361
+ };
362
+ type TextImageComposer = TextComposerState & {
363
+ mode: 'text';
364
+ pickRefs(): Promise<void>;
365
+ removeRef(index: number): void;
366
+ request(prompt: string): ImageGenerationRequestInput;
367
+ clear(): void;
368
+ };
369
+ type SubjectImageComposer = SubjectComposerState & {
370
+ mode: 'subject';
371
+ pickSubject(): Promise<void>;
372
+ removeSubject(): void;
373
+ pickRefs(): Promise<void>;
374
+ removeRef(index: number): void;
375
+ request(prompt: string): ImageGenerationRequestInput;
376
+ clear(): void;
377
+ };
378
+ type EditImageComposer = EditComposerState & {
379
+ mode: 'edit';
380
+ pickSource(): Promise<void>;
381
+ removeSource(): void;
382
+ pickRefs(): Promise<void>;
383
+ removeRef(index: number): void;
384
+ request(prompt: string): ImageGenerationRequestInput;
385
+ clear(): void;
386
+ };
387
+ type OutpaintImageComposer = OutpaintComposerState & {
388
+ mode: 'outpaint';
389
+ pickSource(): Promise<void>;
390
+ removeSource(): void;
391
+ setRect(rect: ImageComposerRect | null): void;
392
+ request(prompt: string): ImageGenerationRequestInput;
393
+ clear(): void;
394
+ };
395
+ type ImageComposer = TextImageComposer | SubjectImageComposer | EditImageComposer | OutpaintImageComposer;
396
+ type ImageComposerController = {
397
+ mode: ImageComposerMode;
398
+ setMode(mode: ImageComposerMode): void;
399
+ active: ImageComposer;
400
+ text: TextImageComposer;
401
+ subject: SubjectImageComposer;
402
+ edit: EditImageComposer;
403
+ outpaint: OutpaintImageComposer;
404
+ isPicking: boolean;
405
+ error: Error | null;
406
+ request(prompt: string): ImageGenerationRequestInput;
407
+ clear(): void;
408
+ };
409
+ declare function roundImageDimension(value: number): number;
410
+ declare function imageSizeForAspectRatio(size: ImageComposerSize, maxSide?: number): ImageComposerSize;
411
+ declare function roundedImageSize(size: ImageComposerSize): ImageComposerSize;
412
+ declare function clampOutpaintRect(rect: ImageComposerRect): ImageComposerRect;
413
+ declare function rectForSourceScale(sourceSize: ImageComposerSize, scale: number, center?: {
414
+ x: number;
415
+ y: number;
416
+ }): ImageComposerRect;
417
+ declare function initialOutpaintRect(sourceSize: ImageComposerSize): ImageComposerRect;
418
+ declare function buildImageGenerationRequest(input: ImageGenerationRequestInput, options?: Pick<GenerateImageOptions, 'signal' | 'onModelProgress' | 'onProgress' | 'model' | 'modelRoot' | 'tokenizer' | 'accessToken' | 'concurrency' | 'loras'>): GenerateImageOptions;
419
+ declare function useImageComposer(options?: ImageComposerOptions): ImageComposerController;
420
+ declare function useImageComposer(mode: 'text', options?: ImageComposerOptions): TextImageComposer;
421
+ declare function useImageComposer(mode: 'subject', options?: ImageComposerOptions): SubjectImageComposer;
422
+ declare function useImageComposer(mode: 'edit', options?: ImageComposerOptions): EditImageComposer;
423
+ declare function useImageComposer(mode: 'outpaint', options?: ImageComposerOptions): OutpaintImageComposer;
424
+ declare function useImageGeneration(): {
425
+ run: (input: ImageGenerationRequestInput, options?: Pick<GenerateImageOptions, "loras">) => Promise<GenerateImageResult | null>;
426
+ cancel: () => void;
427
+ clear: () => void;
428
+ imageUri: string | null;
429
+ result: GenerateImageResult | null;
430
+ progress: number;
431
+ status: string;
432
+ isGenerating: boolean;
433
+ error: Error | null;
434
+ };
435
+ declare function useImageModel(): {
436
+ installed: boolean;
437
+ verified: boolean;
438
+ missingFiles: string[];
439
+ bytesPresent: number;
440
+ totalBytes: number;
441
+ check: () => Promise<ImageModelState | null>;
442
+ checking: boolean;
443
+ state: ImageModelState | null;
444
+ error: Error | null;
445
+ };
446
+ //#endregion
447
+ //#region src/ai/shape.d.ts
448
+ type PrimitiveToken = 'string' | 'number' | 'boolean';
449
+ type ShapeArray = readonly [ShapeDefinition];
450
+ type ShapeObject = {
451
+ readonly [key: string]: ShapeDefinition;
452
+ };
453
+ type ShapeDefinition = PrimitiveToken | ShapeObject | ShapeArray;
454
+ type InferShapeValue<Definition extends ShapeDefinition> = Definition extends 'string' ? string : Definition extends 'number' ? number : Definition extends 'boolean' ? boolean : Definition extends readonly [infer Item] ? Item extends ShapeDefinition ? Array<InferShapeValue<Item>> : never : Definition extends ShapeObject ? { [Key in keyof Definition]: InferShapeValue<Definition[Key]> } : never;
455
+ type InferShape<Definition extends ShapeObject> = { [Key in keyof Definition]: InferShapeValue<Definition[Key]> };
456
+ type BridgeSchema = {
457
+ type: PrimitiveToken;
458
+ } | {
459
+ type: 'array';
460
+ items: BridgeSchema;
461
+ } | {
462
+ type: 'object';
463
+ properties: Record<string, BridgeSchema>;
464
+ required: string[];
465
+ };
466
+ type StructuredInput = {
467
+ value: unknown;
468
+ shape: BleamAIShape<unknown, unknown> | StandardSchema;
469
+ };
470
+ type StructuredSchema = BleamAIShape<unknown, unknown> | StandardSchema;
471
+ type BridgeStructuredSchema = StandardSchema & {
472
+ toJSONSchema(): BridgeSchema;
473
+ };
474
+ interface BleamAIShape<Input, Output$1> extends StandardSchema<Input, Output$1> {
475
+ parse(value: unknown): Output$1;
476
+ safeParse(value: unknown): SchemaResult<Output$1>;
477
+ toJSONSchema(): BridgeSchema;
478
+ }
479
+ type InferShapeOutput<Value extends BleamAIShape<unknown, unknown>> = Value extends BleamAIShape<unknown, infer Output> ? Output : never;
480
+ declare function shape<Definition extends ShapeObject>(definition: Definition): BleamAIShape<InferShape<Definition>, InferShape<Definition>>;
481
+ type GenerateResult<Output$1 extends StructuredSchema | undefined> = Output$1 extends BleamAIShape<unknown, infer ShapeOutput> ? ShapeOutput : Output$1 extends StandardSchema ? InferOutput<Output$1> : string;
482
+ //#endregion
483
+ //#region src/ai/native.d.ts
484
+ type ModelAvailabilityResult = {
485
+ available: boolean;
486
+ reason?: 'device_not_eligible' | 'apple_intelligence_not_enabled' | 'model_not_ready' | 'unknown';
487
+ };
488
+ //#endregion
489
+ //#region src/ai/text.d.ts
490
+ type AITool<Input extends BridgeStructuredSchema = BridgeStructuredSchema> = {
491
+ name: string;
492
+ description: string;
493
+ input: Input;
494
+ execute(input: InferToolInput<Input>): unknown | Promise<unknown>;
495
+ };
496
+ type InferToolInput<Input extends BridgeStructuredSchema> = Input extends {
497
+ readonly '~standard': {
498
+ readonly types?: {
499
+ readonly output: infer Output;
500
+ };
501
+ };
502
+ } ? Output : unknown;
503
+ type GenerateOptions<Output$1 extends BridgeStructuredSchema | undefined = undefined> = {
504
+ system?: string;
505
+ prompt?: string;
506
+ input?: string | StructuredInput;
507
+ output?: Output$1;
508
+ temperature?: number;
509
+ maxTokens?: number;
510
+ tools?: readonly AITool[];
511
+ signal?: AbortSignal;
512
+ };
513
+ type StreamOptions = Omit<GenerateOptions<undefined>, 'output'>;
514
+ type ModelAvailability = ModelAvailabilityResult;
515
+ declare function isAvailable(): Promise<boolean>;
516
+ declare function availability(): Promise<ModelAvailability>;
517
+ declare function generate<Output$1 extends BridgeStructuredSchema | undefined = undefined>(options: GenerateOptions<Output$1>): Promise<GenerateResult<Output$1>>;
518
+ declare function stream(options: StreamOptions): AsyncGenerator<string>;
519
+ //#endregion
520
+ //#region src/ai/text-hook.d.ts
521
+ type TextGenerationState = {
522
+ text: string;
523
+ isGenerating: boolean;
524
+ error: Error | null;
525
+ };
526
+ declare function useTextGeneration(): {
527
+ run: (options: StreamOptions) => Promise<string | null>;
528
+ cancel: () => void;
529
+ clear: () => void;
530
+ text: string;
531
+ isGenerating: boolean;
532
+ error: Error | null;
533
+ };
534
+ //#endregion
535
+ export { AIError, AIErrorCode, AITool, BleamAIShape, EditImageComposer, FluxImageModelId, FluxImageModelManifest, FluxImageModelPaths, FluxModelComponentManifest, FluxTokenizedPrompt, FluxTokenizer, GenerateImageMetadata, GenerateImageOptions, GenerateImageResult, GenerateImagesOptions, GenerateOptions, ImageAspectRatio, ImageComposer, ImageComposerController, ImageComposerImage, ImageComposerMode, ImageComposerRect, ImageComposerSize, ImageGenerationError, ImageGenerationErrorDetails, ImageGenerationJob, ImageGenerationJobSnapshot, ImageGenerationJobStatus, ImageGenerationRequestInput, ImageGenerationStage, ImageLoRADefinition, ImageLoRAMetadata, ImageLoRAPrecision, ImageLoRASource, ImageLoRAState, ImageMaskMode, ImageMemoryTelemetry, ImageModelCapability, ImageModelMetadata, ImageModelState, ImageOutpaintOptions, ImageOutpaintSourceRect, ImageResizeMode, ImageSize, ImagegenProgress, InferShapeOutput, ModelAvailability, OutpaintImageComposer, PrepareImageLoRAOptions, PrepareImageLoRAProgress, PrepareImageModelOptions, PrepareImageModelProgress, PreparedImageLoRA, PreparedImageModel, StreamOptions, SubjectImageComposer, TextGenerationState, TextImageComposer, UpscaleImageOptions, UpscaleImageResult, availability, buildImageGenerationRequest, clampOutpaintRect, defaultImageLongSide, deleteImageLoRA, deleteImageModel, flux2Klein4B8BitAbliterated, fluxImageModelPaths, generate, generateImage, generateImages, getImageGenerationJob, imageMemoryTelemetry, imageModelManifest, imageModelManifests, imageSizeForAspectRatio, imageSizeForPreset, initialOutpaintRect, isAvailable, listImageGenerationJobs, listImageLoRAs, listImageModels, normalizeImageSize, prepareImageLoRA, prepareImageModel, rectForSourceScale, roundImageDimension, roundedImageSize, scheduleImageGeneration, shape, stream, unloadImageModel, upscaleImage, useImageComposer, useImageGeneration, useImageModel, useTextGeneration, verifyImageLoRA, verifyImageModel };