/** * @packageDocumentation * Vertex AI request labels. * * Vertex AI accepts a `labels` map on every generateContent request and copies it onto the matching * Cloud Billing export rows, which is how spend is attributed to a caller, a command or a pipeline. * `@langchain/google` builds the request body from a fixed set of fields and has no `labels` option, * so the labels are added to the built params through an `invocationParams` override, the same hook * {@link @gaunt-sloth/core!providers/geminiThinking.applyGeminiThoughtSummaries | applyGeminiThoughtSummaries} * uses. The override survives `bindTools`, which wraps this same instance. * * Vertex AI validates the keys and values (lowercase, at most 63 characters, at most 64 labels) and * rejects the request when they break those rules. */ import type { BaseChatModel } from '@langchain/core/language_models/chat_models'; /** * Reads the `labels` field of a `vertexai` `llm` block. Returns `undefined` when it is absent or * empty, and throws when it is not an object of string values. */ export declare function readVertexAiLabels(labels: unknown): Record | undefined; /** * Adds `labels` to every request the model builds. Returns the same model instance; a model with no * `invocationParams` is returned untouched. */ export declare function applyVertexAiLabels(model: T, labels: Record | undefined): T;