import type { Logger } from "pino"; import type { AuthStore } from "../auth/store.js"; import type { FileFolder } from "../engine/files/fileFolder.js"; import type { ImageGenerationRegistry } from "../engine/modules/imageGenerationRegistry.js"; import type { InferenceRegistry } from "../engine/modules/inferenceRegistry.js"; import type { ProviderSettings } from "../settings.js"; export type ProviderAuth = "apiKey" | "oauth" | "mixed" | "none"; export type ProviderModelSize = "unknown" | "large" | "normal" | "small"; export type ProviderModelInfo = { id: string; name: string; size: ProviderModelSize; deprecated?: boolean; }; export type ProviderPromptChoice = { value: TValue; name: string; description?: string; }; export type ProviderPromptSelectConfig = { message: string; choices: Array>; }; export type ProviderPromptInputConfig = { message: string; default?: string; placeholder?: string; }; export type ProviderPromptConfirmConfig = { message: string; default?: boolean; }; export type ProviderPrompt = { input: (config: ProviderPromptInputConfig) => Promise; confirm: (config: ProviderPromptConfirmConfig) => Promise; select: (config: ProviderPromptSelectConfig) => Promise; }; export type ProviderOnboardingApi = { id: string; auth: AuthStore; prompt: ProviderPrompt; note: (message: string, title?: string) => void; }; export type ProviderOnboardingResult = { settings?: Partial; }; export type ProviderContext = { settings: ProviderSettings; auth: AuthStore; fileStore: FileFolder; inferenceRegistry: InferenceRegistry; imageRegistry: ImageGenerationRegistry; logger: Logger; }; export type ProviderInstance = { load?: () => Promise; unload?: () => Promise; }; export type ProviderDefinition = { id: string; name: string; description: string; auth: ProviderAuth; models?: ProviderModelInfo[]; capabilities: { inference?: boolean; image?: boolean; }; create: (context: ProviderContext) => ProviderInstance | Promise; onboarding?: (api: ProviderOnboardingApi) => Promise; }; //# sourceMappingURL=types.d.ts.map