import { z } from 'zod'; export declare const transcriptionFitWorkloadSchema: z.ZodObject<{ prompt: z.ZodOptional; hotwords: z.ZodOptional>; maxNewTokens: z.ZodOptional; audioSeconds: z.ZodNumber; }, z.core.$strict>; export type TranscriptionFitWorkload = z.infer; /** * Advisory outcome of a pre-download fit assessment. * * `unknown` is a first-class answer, not a failure: it is what the SDK returns * whenever the evidence does not support a defensible claim either way. */ export declare const modelFitVerdictSchema: z.ZodEnum<{ unknown: "unknown"; "likely-fits": "likely-fits"; "likely-too-large": "likely-too-large"; }>; /** * What the estimator sizes a load by, read out of its config. An engine whose * estimator declares no kind for it assesses as `unknown`. */ export type ModelFitWorkload = { kind: 'llm'; contextTokens?: number; } | { kind: 'audio'; windowMs?: number; streaming: boolean; }; /** * The part of a model constant an assessment reads. Pass a catalog constant * directly — the extra fields are ignored. * * Only the checksum (the profile lookup key) and the name (the result label) * are read; everything else — engine, byte totals, transformer facts — comes * from the resolved resource profile, not from the caller. */ export declare const modelFitModelRefSchema: z.ZodObject<{ sha256Checksum: z.ZodString; name: z.ZodString; registryPath: z.ZodOptional; registrySource: z.ZodOptional; }, z.core.$strip>; /** * What the estimator is given for one candidate: the catalog facts its checksum * resolves to, and the workload read out of the load's config. */ export interface ModelFitEstimateTarget { model: ModelFitModelRef; workload: ModelFitWorkload; artifacts?: ModelFitModelRef[]; device?: string; } /** * How the caller intends to run the candidates. This is a **declared * assumption** used for aggregation, not a scheduling instruction — the SDK * neither enforces nor reserves anything. * * - `sequential`: every model stays resident, but only the largest single * working-memory peak is counted. * - `concurrent`: every model stays resident and every peak is counted. */ export declare const modelFitExecutionSchema: z.ZodEnum<{ sequential: "sequential"; concurrent: "concurrent"; }>; /** Fit-only workload used to estimate MOSS text-to-speech memory requirements. */ export declare const ttsFitWorkloadSchema: z.ZodUnion, z.ZodObject<{ prompt: z.ZodString; seconds: z.ZodNumber; }, z.core.$strict>]>; export type TtsFitWorkload = z.infer; /** * A load to assess, in `loadModel`'s own parameters. The engine's plugin * resolves it, so the config and the artifact keys the fitter reads are the * ones the load would run with. * * Each source resolves to the registry's weightless description of the * artifact, or to the file itself where it is already on disk. */ export declare const modelFitCandidateSchema: z.ZodObject<{ transcriptionWorkload: z.ZodOptional; hotwords: z.ZodOptional>; maxNewTokens: z.ZodOptional; audioSeconds: z.ZodNumber; }, z.core.$strict>>; modelSrc: z.ZodOptional; modelId: z.ZodOptional; registryPath: z.ZodOptional; registrySource: z.ZodOptional; blobCoreKey: z.ZodOptional; blobIndex: z.ZodOptional; engine: z.ZodOptional; expectedSize: z.ZodOptional; sha256Checksum: z.ZodOptional; addon: z.ZodOptional, z.ZodLiteral<"vad">]>>; }, z.core.$strip>]>>; modelType: z.ZodOptional>; ttsWorkload: z.ZodOptional, z.ZodObject<{ prompt: z.ZodString; seconds: z.ZodNumber; }, z.core.$strict>]>>; modelConfig: z.ZodOptional>; }, z.core.$strip>; export declare const assessModelFitInputSchema: z.ZodObject<{ models: z.ZodArray; hotwords: z.ZodOptional>; maxNewTokens: z.ZodOptional; audioSeconds: z.ZodNumber; }, z.core.$strict>>; modelSrc: z.ZodOptional; modelId: z.ZodOptional; registryPath: z.ZodOptional; registrySource: z.ZodOptional; blobCoreKey: z.ZodOptional; blobIndex: z.ZodOptional; engine: z.ZodOptional; expectedSize: z.ZodOptional; sha256Checksum: z.ZodOptional; addon: z.ZodOptional, z.ZodLiteral<"vad">]>>; }, z.core.$strip>]>>; modelType: z.ZodOptional>; ttsWorkload: z.ZodOptional, z.ZodObject<{ prompt: z.ZodString; seconds: z.ZodNumber; }, z.core.$strict>]>>; modelConfig: z.ZodOptional>; }, z.core.$strip>>; execution: z.ZodDefault>; policy: z.ZodDefault>; }, z.core.$strip>; /** * What evidence the budget was derived from. * * - `system-memory`: total system RAM minus current use. The desktop model, * and Android's — the low-memory killer acts system-wide. * - `process-memory`: this process's own ceiling. iOS jetsam terminates an app * on its per-process footprint against a limit well below device RAM, so a * system-wide budget there would defend verdicts the OS does not honor. */ export declare const modelFitBasisSchema: z.ZodEnum<{ "system-memory": "system-memory"; "process-memory": "process-memory"; "device-memory": "device-memory"; "device-budget": "device-budget"; }>; /** * What kind of evidence a verdict rests on. * * - `native-fit`: the engine's own fitter, run against the model or the * registry's weightless description of it. It is the answer the loader would * give on this machine, and the only evidence that can confirm a fit. * - `computed-only`: a floor computed from catalog facts alone — artifact bytes, * plus the KV cache for llama.cpp models. It omits every engine cost that * only a real load can tell, so it can refuse a model but never confirm one. */ export declare const modelFitEvidenceSchema: z.ZodEnum<{ "computed-only": "computed-only"; "native-fit": "native-fit"; }>; export declare const modelFitBudgetSchema: z.ZodObject<{ totalBytes: z.ZodNumber; usedBytes: z.ZodNumber; availableBytes: z.ZodNumber; reservedBytes: z.ZodNumber; availableAfterReserveBytes: z.ZodNumber; }, z.core.$strip>; export declare const modelFitModelResultSchema: z.ZodObject<{ name: z.ZodString; verdict: z.ZodEnum<{ unknown: "unknown"; "likely-fits": "likely-fits"; "likely-too-large": "likely-too-large"; }>; evidence: z.ZodOptional>; floorBytes: z.ZodOptional; estimatorVersion: z.ZodOptional; device: z.ZodOptional; reasons: z.ZodArray; }, z.core.$strip>; export declare const assessModelFitResultSchema: z.ZodObject<{ verdict: z.ZodEnum<{ unknown: "unknown"; "likely-fits": "likely-fits"; "likely-too-large": "likely-too-large"; }>; basis: z.ZodEnum<{ "system-memory": "system-memory"; "process-memory": "process-memory"; "device-memory": "device-memory"; "device-budget": "device-budget"; }>; execution: z.ZodEnum<{ sequential: "sequential"; concurrent: "concurrent"; }>; evidence: z.ZodOptional>; budget: z.ZodOptional>; floorBytes: z.ZodOptional; models: z.ZodArray; evidence: z.ZodOptional>; floorBytes: z.ZodOptional; estimatorVersion: z.ZodOptional; device: z.ZodOptional; reasons: z.ZodArray; }, z.core.$strip>>; reasons: z.ZodArray; assumptions: z.ZodArray; }, z.core.$strip>; /** * The other fit question: `assessModelFit` above answers "should I download * this?" about a set of models against a memory budget, while the native probe * answers "will the load I am about to run fit?" by handing one model file and * the resolved settings to the fitter of the engine that would run it. Two * scopes, so two verdict vocabularies: * * - `likely-fits` / `likely-too-large` hedge because the set is judged against a * sampled budget that the rest of the machine moves. * - `fit` / `does-not-fit` do not, because the probe measured this build of this * file against this device. * * Neither denies a load. */ export declare const nativeProbeVerdictSchema: z.ZodEnum<{ unknown: "unknown"; fit: "fit"; "does-not-fit": "does-not-fit"; }>; export declare const nativeProbePlanSchema: z.ZodObject<{ nCtx: z.ZodNumber; nGpuLayers: z.ZodNumber; nGpuDevices: z.ZodNumber; }, z.core.$strip>; /** * What the fitter measured. Each field is optional because the engines do not * all measure the same things: the diffusion fitter answers with a placement * and a per-module table rather than a total, so it fills `report` alone. * * `weightsBytes`, `contextBytes` and `computeBytes` divide `deviceBytes` where * the engine separates them, and are absent together where it reports only a * total. They are summed across devices, as `deviceBytes` is, so a load spread * over more than one device is described by its totals and `deviceName` names * the first non-CPU row. * * `deviceFreeBytes` is the backend's own gauge. A device sharing the host pool, * as Apple silicon and Adreno/Mali do, reports what it could address rather * than what the machine would give back, so it is an upper bound there. */ export declare const nativeProbeProjectionSchema: z.ZodObject<{ deviceName: z.ZodOptional; deviceBytes: z.ZodOptional; hostBytes: z.ZodOptional; weightsBytes: z.ZodOptional; contextBytes: z.ZodOptional; computeBytes: z.ZodOptional; deviceFreeBytes: z.ZodOptional; deviceTotalBytes: z.ZodOptional; devices: z.ZodOptional>>; report: z.ZodOptional; }, z.core.$strip>; export declare const nativeProbeFitSchema: z.ZodObject<{ verdict: z.ZodEnum<{ unknown: "unknown"; fit: "fit"; "does-not-fit": "does-not-fit"; }>; basis: z.ZodLiteral<"native-probe">; engine: z.ZodOptional; estimatorVersion: z.ZodString; reason: z.ZodString; message: z.ZodOptional; plan: z.ZodOptional>; projection: z.ZodOptional; deviceBytes: z.ZodOptional; hostBytes: z.ZodOptional; weightsBytes: z.ZodOptional; contextBytes: z.ZodOptional; computeBytes: z.ZodOptional; deviceFreeBytes: z.ZodOptional; deviceTotalBytes: z.ZodOptional; devices: z.ZodOptional>>; report: z.ZodOptional; }, z.core.$strip>>; }, z.core.$strip>; export declare const assessModelFitRequestSchema: z.ZodObject<{ models: z.ZodArray; hotwords: z.ZodOptional>; maxNewTokens: z.ZodOptional; audioSeconds: z.ZodNumber; }, z.core.$strict>>; modelSrc: z.ZodOptional; modelId: z.ZodOptional; registryPath: z.ZodOptional; registrySource: z.ZodOptional; blobCoreKey: z.ZodOptional; blobIndex: z.ZodOptional; engine: z.ZodOptional; expectedSize: z.ZodOptional; sha256Checksum: z.ZodOptional; addon: z.ZodOptional, z.ZodLiteral<"vad">]>>; }, z.core.$strip>]>>; modelType: z.ZodOptional>; ttsWorkload: z.ZodOptional, z.ZodObject<{ prompt: z.ZodString; seconds: z.ZodNumber; }, z.core.$strict>]>>; modelConfig: z.ZodOptional>; }, z.core.$strip>>; execution: z.ZodDefault>; policy: z.ZodDefault>; type: z.ZodLiteral<"assessModelFit">; }, z.core.$strip>; export declare const assessModelFitResponseSchema: z.ZodObject<{ verdict: z.ZodEnum<{ unknown: "unknown"; "likely-fits": "likely-fits"; "likely-too-large": "likely-too-large"; }>; basis: z.ZodEnum<{ "system-memory": "system-memory"; "process-memory": "process-memory"; "device-memory": "device-memory"; "device-budget": "device-budget"; }>; execution: z.ZodEnum<{ sequential: "sequential"; concurrent: "concurrent"; }>; evidence: z.ZodOptional>; budget: z.ZodOptional>; floorBytes: z.ZodOptional; models: z.ZodArray; evidence: z.ZodOptional>; floorBytes: z.ZodOptional; estimatorVersion: z.ZodOptional; device: z.ZodOptional; reasons: z.ZodArray; }, z.core.$strip>>; reasons: z.ZodArray; assumptions: z.ZodArray; type: z.ZodLiteral<"assessModelFit">; }, z.core.$strip>; export type NativeProbeVerdict = z.infer; export type NativeProbePlan = z.infer; export type NativeProbeProjection = z.infer; export type NativeProbeFit = z.infer; export type ModelFitVerdict = z.infer; export type ModelFitModelRef = z.infer; export type ModelFitCandidate = z.infer; export type ModelFitExecution = z.infer; export type ModelFitBasis = z.infer; export type ModelFitEvidence = z.infer; export type ModelFitBudget = z.infer; export type ModelFitModelResult = z.infer; export type AssessModelFitInput = z.input; export type AssessModelFitResult = z.infer; export type AssessModelFitRequest = z.infer; export type AssessModelFitResponse = z.infer;