CandidateData: {
custom?: unknown;
finishMessage?: string;
finishReason:
| "length"
| "stop"
| "other"
| "unknown"
| "interrupted"
| "blocked"
| "aborted";
index: number;
message: {
content: (
| {
custom?: Record<string, unknown>;
data?: unknown;
media?: undefined;
metadata?: Record<string, unknown>;
reasoning?: undefined;
resource?: undefined;
text: string;
toolRequest?: undefined;
toolResponse?: undefined;
}
| {
custom?: Record<string, unknown>;
data?: unknown;
media: { contentType?: string; url: string };
metadata?: Record<string, unknown>;
reasoning?: undefined;
resource?: undefined;
text?: undefined;
toolRequest?: undefined;
toolResponse?: undefined;
}
| {
custom?: Record<string, unknown>;
data?: unknown;
media?: undefined;
metadata?: Record<string, unknown>;
reasoning?: undefined;
resource?: undefined;
text?: undefined;
toolRequest: {
input?: unknown;
name: string;
partial?: boolean;
ref?: string;
};
toolResponse?: undefined;
}
| {
custom?: Record<string, unknown>;
data?: unknown;
media?: undefined;
metadata?: Record<string, unknown>;
reasoning?: undefined;
resource?: undefined;
text?: undefined;
toolRequest?: undefined;
toolResponse: { name: string; output?: unknown; ref?: string } & {
content?: (
| {
custom?: ...;
data?: ...;
media?: ...;
metadata?: ...;
reasoning?: ...;
resource?: ...;
text: ...;
toolRequest?: ...;
toolResponse?: ...;
}
| {
custom?: ...;
data?: ...;
media: ...;
metadata?: ...;
reasoning?: ...;
resource?: ...;
text?: ...;
toolRequest?: ...;
toolResponse?: ...;
}
| {
custom?: ...;
data?: ...;
media?: ...;
metadata?: ...;
reasoning?: ...;
resource?: ...;
text?: ...;
toolRequest: ...;
toolResponse?: ...;
}
| {
custom?: ...;
data?: ...;
media?: ...;
metadata?: ...;
reasoning?: ...;
resource?: ...;
text?: ...;
toolRequest?: ...;
toolResponse: ...;
}
| {
custom?: ...;
data?: ...;
media?: ...;
metadata?: ...;
reasoning?: ...;
resource?: ...;
text?: ...;
toolRequest?: ...;
toolResponse?: ...;
}
| {
custom: ...;
data?: ...;
media?: ...;
metadata?: ...;
reasoning?: ...;
resource?: ...;
text?: ...;
toolRequest?: ...;
toolResponse?: ...;
}
| {
custom?: ...;
data?: ...;
media?: ...;
metadata?: ...;
reasoning: ...;
resource?: ...;
text?: ...;
toolRequest?: ...;
toolResponse?: ...;
}
| {
custom?: ...;
data?: ...;
media?: ...;
metadata?: ...;
reasoning?: ...;
resource: ...;
text?: ...;
toolRequest?: ...;
toolResponse?: ...;
}
)[];
};
}
| {
custom?: Record<string, unknown>;
data?: unknown;
media?: undefined;
metadata?: Record<string, unknown>;
reasoning?: undefined;
resource?: undefined;
text?: undefined;
toolRequest?: undefined;
toolResponse?: undefined;
}
| {
custom: Record<string, any>;
data?: unknown;
media?: undefined;
metadata?: Record<string, unknown>;
reasoning?: undefined;
resource?: undefined;
text?: undefined;
toolRequest?: undefined;
toolResponse?: undefined;
}
| {
custom?: Record<string, unknown>;
data?: unknown;
media?: undefined;
metadata?: Record<string, unknown>;
reasoning: string;
resource?: undefined;
text?: undefined;
toolRequest?: undefined;
toolResponse?: undefined;
}
| {
custom?: Record<string, unknown>;
data?: unknown;
media?: undefined;
metadata?: Record<string, unknown>;
reasoning?: undefined;
resource: { uri: string };
text?: undefined;
toolRequest?: undefined;
toolResponse?: undefined;
}
)[];
metadata?: Record<string, unknown>;
role: "user" | "model" | "tool" | "system";
};
usage?: {
cachedContentTokens?: number;
custom?: Record<string, number>;
inputAudioFiles?: number;
inputCharacters?: number;
inputImages?: number;
inputTokens?: number;
inputVideos?: number;
outputAudioFiles?: number;
outputCharacters?: number;
outputImages?: number;
outputTokens?: number;
outputVideos?: number;
thoughtsTokens?: number;
totalTokens?: number;
};
}
Type Declaration
Optionalcustom?: unknown
OptionalfinishMessage?: string
finishReason: "length" | "stop" | "other" | "unknown" | "interrupted" | "blocked" | "aborted"
index: number
message: {
content: (
| {
custom?: Record<string, unknown>;
data?: unknown;
media?: undefined;
metadata?: Record<string, unknown>;
reasoning?: undefined;
resource?: undefined;
text: string;
toolRequest?: undefined;
toolResponse?: undefined;
}
| {
custom?: Record<string, unknown>;
data?: unknown;
media: { contentType?: string; url: string };
metadata?: Record<string, unknown>;
reasoning?: undefined;
resource?: undefined;
text?: undefined;
toolRequest?: undefined;
toolResponse?: undefined;
}
| {
custom?: Record<string, unknown>;
data?: unknown;
media?: undefined;
metadata?: Record<string, unknown>;
reasoning?: undefined;
resource?: undefined;
text?: undefined;
toolRequest: {
input?: unknown;
name: string;
partial?: boolean;
ref?: string;
};
toolResponse?: undefined;
}
| {
custom?: Record<string, unknown>;
data?: unknown;
media?: undefined;
metadata?: Record<string, unknown>;
reasoning?: undefined;
resource?: undefined;
text?: undefined;
toolRequest?: undefined;
toolResponse: { name: string; output?: unknown; ref?: string } & {
content?: (
| {
custom?: ...;
data?: ...;
media?: ...;
metadata?: ...;
reasoning?: ...;
resource?: ...;
text: ...;
toolRequest?: ...;
toolResponse?: ...;
}
| {
custom?: ...;
data?: ...;
media: ...;
metadata?: ...;
reasoning?: ...;
resource?: ...;
text?: ...;
toolRequest?: ...;
toolResponse?: ...;
}
| {
custom?: ...;
data?: ...;
media?: ...;
metadata?: ...;
reasoning?: ...;
resource?: ...;
text?: ...;
toolRequest: ...;
toolResponse?: ...;
}
| {
custom?: ...;
data?: ...;
media?: ...;
metadata?: ...;
reasoning?: ...;
resource?: ...;
text?: ...;
toolRequest?: ...;
toolResponse: ...;
}
| {
custom?: ...;
data?: ...;
media?: ...;
metadata?: ...;
reasoning?: ...;
resource?: ...;
text?: ...;
toolRequest?: ...;
toolResponse?: ...;
}
| {
custom: ...;
data?: ...;
media?: ...;
metadata?: ...;
reasoning?: ...;
resource?: ...;
text?: ...;
toolRequest?: ...;
toolResponse?: ...;
}
| {
custom?: ...;
data?: ...;
media?: ...;
metadata?: ...;
reasoning: ...;
resource?: ...;
text?: ...;
toolRequest?: ...;
toolResponse?: ...;
}
| {
custom?: ...;
data?: ...;
media?: ...;
metadata?: ...;
reasoning?: ...;
resource: ...;
text?: ...;
toolRequest?: ...;
toolResponse?: ...;
}
)[];
};
}
| {
custom?: Record<string, unknown>;
data?: unknown;
media?: undefined;
metadata?: Record<string, unknown>;
reasoning?: undefined;
resource?: undefined;
text?: undefined;
toolRequest?: undefined;
toolResponse?: undefined;
}
| {
custom: Record<string, any>;
data?: unknown;
media?: undefined;
metadata?: Record<string, unknown>;
reasoning?: undefined;
resource?: undefined;
text?: undefined;
toolRequest?: undefined;
toolResponse?: undefined;
}
| {
custom?: Record<string, unknown>;
data?: unknown;
media?: undefined;
metadata?: Record<string, unknown>;
reasoning: string;
resource?: undefined;
text?: undefined;
toolRequest?: undefined;
toolResponse?: undefined;
}
| {
custom?: Record<string, unknown>;
data?: unknown;
media?: undefined;
metadata?: Record<string, unknown>;
reasoning?: undefined;
resource: { uri: string };
text?: undefined;
toolRequest?: undefined;
toolResponse?: undefined;
}
)[];
metadata?: Record<string, unknown>;
role: "user" | "model" | "tool" | "system";
}
Optionalusage?: {
cachedContentTokens?: number;
custom?: Record<string, number>;
inputAudioFiles?: number;
inputCharacters?: number;
inputImages?: number;
inputTokens?: number;
inputVideos?: number;
outputAudioFiles?: number;
outputCharacters?: number;
outputImages?: number;
outputTokens?: number;
outputVideos?: number;
thoughtsTokens?: number;
totalTokens?: number;
}
Deprecated
All responses now return a single candidate. Only the first candidate will be used if supplied.