UNPKG

firebase-functions

Version:
54 lines (53 loc) 3.94 kB
import { CloudEvent } from "../../core"; import { HttpsFunction, HttpsError, FunctionsErrorCode } from "../https"; import { EventHandlerOptions } from "../../options"; import { Expression } from "../../../params"; import { ResetValue } from "../../../common/options"; export { HttpsError }; export declare const rpcCodeMap: Record<FunctionsErrorCode, number>; import { type GenerateContentRequest as VertexV1Beta1GenerateContentRequest, type GenerateContentResponse as VertexV1Beta1GenerateContentResponse } from "./types/vertex/v1beta1"; import { type GenerateContentRequest as GeminiV1BetaGenerateContentRequest, type GenerateContentResponse as GeminiV1BetaGenerateContentResponse } from "./types/gemini/v1beta"; export { type VertexV1Beta1GenerateContentRequest, type VertexV1Beta1GenerateContentResponse, type GeminiV1BetaGenerateContentRequest, type GeminiV1BetaGenerateContentResponse, }; type MultipleLocationsIf<Allowed extends boolean> = Allowed extends true ? string[] : never; export interface WebhookOptions<Regional extends boolean = false> extends Omit<EventHandlerOptions, "location"> { location?: string | Expression<string> | MultipleLocationsIf<Regional> | ResetValue; regionalWebhook?: Regional; } export interface PromptTemplateInfo { templateName?: string; } export type AuthType = "app_user" | "unauthenticated" | "unknown"; export declare const beforeGenerateEventType = "google.firebase.ailogic.v1.beforeGenerate"; export declare const afterGenerateEventType = "google.firebase.ailogic.v1.afterGenerate"; export type AnyValidAIRequest = GeminiV1BetaGenerateContentRequest | VertexV1Beta1GenerateContentRequest; export type AnyValidAIResponse = GeminiV1BetaGenerateContentResponse | VertexV1Beta1GenerateContentResponse; export declare const geminiV1Beta = "google.ai.generativelanguage.v1beta"; export declare const vertexV1Beta1 = "google.cloud.aiplatform.v1beta1"; export type SupportedAPI = typeof geminiV1Beta | typeof vertexV1Beta1; export type AIRequest<API> = string extends API ? AnyValidAIRequest : API extends typeof geminiV1Beta ? GeminiV1BetaGenerateContentRequest : API extends typeof vertexV1Beta1 ? VertexV1Beta1GenerateContentRequest : never; export type AIResponse<API> = string extends API ? AnyValidAIResponse : API extends typeof geminiV1Beta ? GeminiV1BetaGenerateContentResponse : API extends typeof vertexV1Beta1 ? VertexV1Beta1GenerateContentResponse : never; export interface BeforeGenerateContentData<API extends string = string> { model: string; template?: PromptTemplateInfo; api: SupportedAPI; request: AIRequest<API>; } export interface AfterGenerateContentData<API extends string = string> extends BeforeGenerateContentData<API> { response: AIResponse<API>; } export interface AIBlockingEvent<T = any> extends CloudEvent<T> { authType: AuthType; authId?: string; authClaims?: any; resourceName?: string; appId?: string; displayName?: string; androidPackageName?: string; iosBundleId?: string; } type MaybeAsync<T> = T | Promise<T>; export type BlockingFunction = HttpsFunction; export declare function beforeGenerateContent(callback: (event: AIBlockingEvent<BeforeGenerateContentData>) => MaybeAsync<void | Partial<AnyValidAIRequest>>): BlockingFunction; export declare function beforeGenerateContent<Regional extends boolean = false>(options: WebhookOptions<Regional>, callback: (event: AIBlockingEvent<BeforeGenerateContentData>) => MaybeAsync<void | Partial<AnyValidAIRequest>>): BlockingFunction; export declare function afterGenerateContent(callback: (event: AIBlockingEvent<AfterGenerateContentData>) => MaybeAsync<void | Partial<AnyValidAIResponse>>): BlockingFunction; export declare function afterGenerateContent<Regional extends boolean = false>(options: WebhookOptions<Regional>, callback: (event: AIBlockingEvent<AfterGenerateContentData>) => MaybeAsync<void | Partial<AnyValidAIResponse>>): BlockingFunction;