import { $Fetch } from 'ofetch'; import { LlmProvider, LlmProviderCreatePayload, LlmProviderModelsResponse, LlmProviderUpdatePayload, LlmCompletePayload, LlmCompleteResponse, LlmPromptRenderPayload, LlmPromptRenderResponse, LlmPromptVersionsResult, PromptCreatePayload, PromptMutationResponse, PromptTemplate, PromptUpdatePayload } from './llm.type'; export interface ILlmServiceOptions { /** The CMS `$Fetch` instance (one of `sdk.apis`). */ api: $Fetch; /** Lazy flag — when true, the service returns fake data. */ mock: () => boolean; } export interface ILlmService { listPrompts(): Promise; getPrompt(name: string, version?: number | string): Promise; listPromptVersions(name: string): Promise; renderPrompt(name: string, payload: LlmPromptRenderPayload): Promise; createPrompt(payload: PromptCreatePayload): Promise; updatePrompt(name: string, payload: PromptUpdatePayload): Promise; deletePrompt(name: string): Promise; listProviders(): Promise; registerProvider(payload: LlmProviderCreatePayload): Promise; updateProvider(name: string, payload: LlmProviderUpdatePayload): Promise; deleteProvider(name: string): Promise; listProviderModels(name: string): Promise; complete(payload: LlmCompletePayload): Promise; } /** * LLM prompt-template service — backs the dashboard "Skill" page (FEAT-002). * * Endpoint contract (`eaera_cms/llm/routes.py`): * GET /api/v1/llm/prompts → { templates: PromptTemplate[] } * POST /api/v1/llm/prompts → { id, name, version } * GET /api/v1/llm/prompts/{name} → PromptTemplate (incl. content/systemPrompt) * PUT /api/v1/llm/prompts/{name} → { id, name, version } * DELETE /api/v1/llm/prompts/{name} → { status, name } * * The list response omits `content` / `systemPrompt`; call `getPrompt(name)` * to load those for the editor. Prompts are keyed by **name**. * * While `mock()` returns true, all methods resolve against a local fake dataset * and never touch `api`. */ export declare function createLlmService(opts: ILlmServiceOptions): ILlmService; //# sourceMappingURL=index.d.ts.map