import type { APIPromise } from "../core/api-promise.mjs"; import type { RequestOptions } from "../internal/request-options.mjs"; import type { GenerateRunModelParams, GenerateRunModelResponse } from "../resources/generate.mjs"; import { Models, type ModelRetrieveParams, type ModelRetrieveResponse } from "../resources/models/models.mjs"; import { Train, type TrainTriggerParams, type TrainTriggerResponse } from "../resources/models/train.mjs"; import { type WithJob } from "./job.mjs"; import { type Scope } from "./scope.mjs"; import type { Scenario } from "./scenario.mjs"; /** * Enhanced Model entity with helper methods. * Has all original model fields plus `.run()`. * * @example * ```ts * const { model } = await client.models.retrieve(modelId); * const gen = await model.run({ body: { prompt: 'a red car' } }); * const completed = await gen.job.wait(); * ``` */ export declare class ModelEntity { /** @internal */ readonly _client: Scenario; /** @internal scope captured from the retrieve call — replayed when `.run()` is invoked without an explicit query override. */ readonly _scope?: Scope; /** * Generate with this model. Shortcut for * `client.generate.runModel(this.id, params)`. * * Returns an enhanced response where `response.job` has `.wait()`. * If the model was fetched with a `projectId` scope (per-call override or * client default), that scope is reused unless overridden by * `options.query`. */ run(this: ModelEntity & ModelRetrieveResponse.Model, params: GenerateRunModelParams, options?: RequestOptions): APIPromise>; /** @internal Create a ModelEntity wrapping raw model data, optionally remembering the originating scope. */ static from(client: Scenario, data: ModelRetrieveResponse.Model, scope?: Scope): ModelRetrieveResponse.Model & ModelEntity; } /** Enhanced retrieve response where `model` has `.run()` on top of its original fields. */ export type EnhancedModelRetrieveResponse = Omit & { model: ModelRetrieveResponse.Model & ModelEntity; }; /** * Enhanced Train resource. * `trigger()` returns a response where `job` has `.wait()`. */ export declare class EnhancedTrain extends Train { trigger(modelID: string, params: TrainTriggerParams, options?: RequestOptions): APIPromise>; } /** * Enhanced Models resource. * All original methods inherited. * - `train` is an {@link EnhancedTrain} * - `retrieve()` returns a response where `model` has `.run()` */ export declare class EnhancedModels extends Models { train: EnhancedTrain; retrieve(modelID: string, query?: ModelRetrieveParams | null | undefined, options?: RequestOptions): APIPromise; } //# sourceMappingURL=models.d.mts.map