import { PhotonAIProviderType } from '../../types/photon-ai.types'; import { type PhotonAIRequest, type PhotonAIResponse } from './ai-provider.types'; import { coerceGeneration, parseGenerationText } from './response-parsing'; /** * A built-in provider preset: everything Photon AI needs to talk to a hosted * LLM out of the box — default endpoint + model, how to place auth, and the * request/response wire transformers. A consumer overrides any of these * through {@link import('../../types/photon-ai.types').PhotonAIProviderConfig}, * so a preset is only the *default* wiring, never a hard requirement. */ export interface ProviderPreset { /** Default REST endpoint. May contain a `{model}` placeholder (Gemini). */ readonly defaultApiUrl: string; /** Default model id for this provider. */ readonly defaultModel: string; /** Builds the final request URL from the resolved endpoint, model, and key. */ buildUrl(apiUrl: string, model: string, apiKey: string | undefined): string; /** Builds provider auth/headers from the key. Merged *under* consumer `headers`. */ buildHeaders(apiKey: string | undefined): Record; /** Default request-body transformer (overridable via config). */ transformRequest(request: PhotonAIRequest): unknown; /** Default response parser (overridable via config). */ transformResponse(response: unknown): PhotonAIResponse; } /** The preset for a provider type, or `null` for {@link PhotonAIProviderType.Custom}. */ export declare function getPreset(type: PhotonAIProviderType): ProviderPreset | null; /** Re-exported so a consumer's custom `responseTransformer` can reuse Photon AI's validated JSON→response coercion. */ export { coerceGeneration, parseGenerationText }; //# sourceMappingURL=presets.d.ts.map