/**
 * Per-invocation request options.
 *
 * These are the knobs a caller may set on a
 * single model invocation; everything is optional so a bare `{}` is a valid
 * "use the model's defaults" request.
 */
/**
 * How much reasoning budget to grant a reasoning-capable model.
 * `off` disables thinking entirely; the remaining levels scale the budget up.
 */
export type ThinkingLevel = "off" | "low" | "medium" | "high" | "max";
/** Constrains how the model may use the declared tools on this turn. */
export type ToolChoice = "auto" | "required" | "none";
/** Options for a single streaming or one-shot invocation. */
export interface StreamOptions {
    /** Cancels the request when aborted. */
    readonly signal?: AbortSignal;
    /** Requested reasoning depth for reasoning-capable models. */
    readonly thinking?: ThinkingLevel;
    /** Hard ceiling on output tokens for this invocation. */
    readonly maxOutputTokens?: number;
    /** Sampling temperature. */
    readonly temperature?: number;
    /** Nucleus-sampling probability mass. */
    readonly topP?: number;
    /** Whether and how strongly the model must use a tool. */
    readonly toolChoice?: ToolChoice;
    /** Overrides the credential resolved from the environment. */
    readonly apiKey?: string;
}
