import type { ServiceProviderServiceStatus } from "../../agent/actions/manage-service-providers.js"; import type { BuilderDefaultModel } from "../../secrets/usage.js"; export type BuilderUsageId = "ai-model" | "file-storage" | "voice" | "images" | "embeddings" | "design-system" | "background-agents" | "browser-automation"; /** What happens to a use when the Builder.io connection goes away. */ export type BuilderUsageLoss = "model-picker" | "default-switches" | "default-stops" | "uploads-fail" | "service-stops" | "stops"; export interface BuilderUsage { id: BuilderUsageId; loss: BuilderUsageLoss; /** Set when the default model runs on Builder.io. */ defaultModel?: { model: string; next?: string; }; } export interface BuilderUsageInput { /** * Whether new uploads go to Builder.io storage. `null` means the storage * status couldn't be read, so the row is left out rather than guessed. */ storageOnBuilder: boolean | null; /** * The organization services and who answers each. `null` means they couldn't * be read; `[]` means there are none to check (no organization). */ services: readonly ServiceProviderServiceStatus[] | null; /** * Whether the default model runs on Builder.io. `null` means it couldn't be * read, so the row keeps the model-picker note rather than guessing. */ defaultModel: BuilderDefaultModel | null; } /** * What the Builder.io connection powers for this viewer, in page order. The * services and storage count only while Builder.io is what answers them; the * Builder-only capabilities have no other provider. */ export declare function builderUsages({ storageOnBuilder, services, defaultModel, }: BuilderUsageInput): BuilderUsage[];