/** * Single source of truth for the plugin's admin surface. * * Everything that depends on these actions is derived from this array: * - `bootstrap.ts` registers them as RBAC permission actions * - `routes/admin/index.ts` builds Koa routes from `route` + `auth.scope` * computed via {@link toAdminScope} * - the wiring test (`routes/admin/index.permissions.test.ts`) asserts * that RBAC scopes and routes cannot drift * * Strapi requires `uid` to be lowercase with `.`/`-` only. Routes whose * handlers use camelCase (`testTts`, `settingsStatus`) bind `config.auth.scope` * to these kebab-case action ids explicitly. */ export declare const NARRATION_ADMIN_ACTIONS: readonly [{ readonly section: "plugins"; readonly displayName: "List TTS providers (narration)"; readonly uid: "narration.providers"; readonly pluginName: "narration"; readonly route: { readonly method: "GET"; readonly path: "/providers"; readonly handler: "narration.providers"; }; }, { readonly section: "plugins"; readonly displayName: "List narration voices"; readonly uid: "narration.voices"; readonly pluginName: "narration"; readonly route: { readonly method: "GET"; readonly path: "/voices"; readonly handler: "narration.voices"; }; }, { readonly section: "plugins"; readonly displayName: "Generate narration from entry"; readonly uid: "narration.generate"; readonly pluginName: "narration"; readonly route: { readonly method: "POST"; readonly path: "/generate"; readonly handler: "narration.generate"; }; }, { readonly section: "plugins"; readonly displayName: "Run narration TTS test (admin demo)"; readonly uid: "narration.test-tts"; readonly pluginName: "narration"; readonly route: { readonly method: "POST"; readonly path: "/test-tts"; readonly handler: "narration.testTts"; }; }, { readonly section: "plugins"; readonly displayName: "View narration connection status"; readonly uid: "narration.settings-status"; readonly pluginName: "narration"; readonly route: { readonly method: "GET"; readonly path: "/configuration-status"; readonly handler: "narration.settingsStatus"; }; }, { readonly section: "plugins"; readonly displayName: "View narration plugin info"; readonly uid: "narration.plugin-info"; readonly pluginName: "narration"; readonly route: { readonly method: "GET"; readonly path: "/plugin-info"; readonly handler: "narration.pluginInfo"; }; }]; export type NarrationAdminAction = (typeof NARRATION_ADMIN_ACTIONS)[number]; export type NarrationAdminActionUid = NarrationAdminAction["uid"]; /** * Compute the Strapi RBAC scope id (`plugin::.`) for an action. * Always derive scopes via this helper — never inline `plugin::…` strings. */ export declare function toAdminScope(actionUid: NarrationAdminActionUid): string;