import type { CmsEditProject } from '../project/types.js'; import type { RoutingConstants } from './parse-constants.js'; import type { RegistrationEntry } from './parse-registrations.js'; export interface SiteCapabilities { projectKey: string; generatedAt: string; content: { pages: boolean; articles: boolean; persons: boolean; tags: boolean; navigation: boolean; }; routing: { homepageSlug: string; articlesBase?: string; tagsBase?: string; peopleBase?: string; enablePrimaryTagPartOfSlug?: boolean; }; registrations: { components: number; collections: number; externals: number; }; mechanisms: { scalarEdit: boolean; richTextEdit: boolean; batchScalar: boolean; bulkRtfFindReplace: boolean; createFromJson: boolean; assetSearch: boolean; assetUpload: boolean; taxonomyImport: boolean; articleTagLinks: boolean; personEntries: boolean; navigationEdit: boolean; }; devTools: { cmsSeoAudit: boolean; }; website: { productionSiteUrl?: string; devBaseUrl?: string; markdownAccess?: CmsEditProject['website']['markdownAccess']; }; hasSiteFacts: boolean; hasBrand: boolean; hasPagesPlaybook: boolean; hasPeoplePlaybook: boolean; } export interface EditorTaskDefinition { id: string; title: string; resourceName: string; sourceFile: string; intentPhrases: string[]; mcpPrompt?: string; isEnabled: (caps: SiteCapabilities) => boolean; } export declare const EDITOR_TASKS_DIR: string; export declare const EDITOR_TASK_REGISTRY: EditorTaskDefinition[]; export declare function buildSiteCapabilities(options: { project: CmsEditProject; constants: RoutingConstants; registrations: RegistrationEntry[]; repoRoot: string; appDir: string; hasArticlesPlaybook: boolean; hasPagesPlaybook: boolean; hasPeoplePlaybook: boolean; hasSiteFacts: boolean; hasBrand: boolean; homepageSlug: string; }): SiteCapabilities; /** Whether docs/cms-editor// exists. */ export declare function hasSiteHandbook(repoRoot: string, projectKey: string, filename: string): boolean; /** Reads production URL from app .env.example when not set in project.json. */ export declare function detectProductionSiteUrl(appDir: string): string | undefined; export declare function getEnabledTasks(caps: SiteCapabilities): EditorTaskDefinition[]; export interface ParsedSiteTaskPlaybook { title: string; intentPhrases: string[]; } /** Parse site-specific task playbooks in docs/cms-editor//tasks/*.md */ export declare function parseSiteTaskPlaybook(content: string): ParsedSiteTaskPlaybook; export declare function buildTasksIndexMarkdown(caps: SiteCapabilities, enabledTasks: EditorTaskDefinition[], siteTasks?: { resourceName: string; content: string; }[]): string; export declare function buildChecklistMarkdown(caps: SiteCapabilities): string; export declare function copyEditorTaskPlaybooks(outDir: string, enabledTasks: EditorTaskDefinition[]): void; export declare function findSiteContext(repoRoot: string, projectKey: string): Record | null; export declare function findSiteFacts(repoRoot: string, projectKey: string): Record | null; /** Site-specific task overrides from docs/cms-editor//tasks/*.md */ export declare function findSiteTaskOverrides(repoRoot: string, projectKey: string): { resourceName: string; content: string; }[]; export declare const CUSTOMER_REQUIRED_READING: readonly ["tasks-index", "capabilities", "checklist", "overview", "routing", "production-site", "components-index"]; export declare function buildRequiredReadingUris(resources: { name: string; uri: string; }[]): string[]; //# sourceMappingURL=capabilities.d.ts.map