import { $Fetch } from 'ofetch'; import { NotificationRenderPayload, NotificationRenderResult, NotificationTemplateCreatePayload, NotificationTemplateListQuery, NotificationTemplateListResponse, NotificationTemplateUpdatePayload, NotificationTemplateVersion, ReportTemplate, ReportTemplatePreviewPayload } from './notifications.type'; export interface INotificationsServiceOptions { /** The CMS `$Fetch` instance (one of `sdk.apis`). */ api: $Fetch; /** Lazy flag — when true, the service returns fake data. */ mock: () => boolean; } export interface INotificationsService { /** List template versions — every query field is a filter (offset/limit paging). */ list(query?: NotificationTemplateListQuery): Promise; /** Read one version by `{template_id}`. */ get(templateId: string | number): Promise; /** Version history for a name (+ locale variant). */ versionsOf(name: string, locale?: string): Promise; /** Create a Mustache draft (`notify:templates:manage`). */ createDraft(payload: NotificationTemplateCreatePayload): Promise; /** Edit a DRAFT only — enabled/archived return `409`; create a same-name/locale * draft for the next version instead. */ updateDraft(templateId: string | number, payload: NotificationTemplateUpdatePayload): Promise; /** Enable a draft + archive the previously enabled version of the variant. */ publish(templateId: string | number): Promise; /** Soft-archive a version — audit history remains. */ archive(templateId: string | number): Promise; /** Ad-hoc Mustache preview — `{templateStr, context}`; no persistence. */ render(payload: NotificationRenderPayload): Promise; /** List report templates (People seed: `people.access-review-report`). */ listReportTemplates(): Promise<{ items: ReportTemplate[]; total: number; }>; /** Read one report definition. */ getReportTemplate(templateId: string | number): Promise; /** Preview a report definition with sample data (read-only lane). */ previewReportTemplate(templateId: string | number, payload: ReportTemplatePreviewPayload): Promise; } export declare function createNotificationsService(opts: INotificationsServiceOptions): INotificationsService; //# sourceMappingURL=index.d.ts.map