import type { Annotation, Brief, ChatContextType, PatchResponse, Plan } from '../../shared/entities.js';
export interface SystemPromptInput {
    projectName: string;
    cwd: string;
    pagesDir: string;
    currentPagePath: string | null;
    currentPageBody: string | null;
    pageCount: number;
    /** Counts indexed by entity-plugin type. Example: `{ endpoint: 12, dto: 5 }`. */
    entityCounts: Record<string, number>;
    tagCount: number;
    sectionCount: number;
    annotations?: Annotation[];
    planMode?: boolean;
    currentPlan?: Plan | null;
    planToolsAvailable?: boolean;
    /** M24 c4s-tools: cross-cutting MCP for synchronous cross-spec consultation.
     *  Mounted for chat+patch threads; brief threads have a narrow toolset and
     *  do not see this server. */
    c4sToolsAvailable?: boolean;
    writingStyle?: {
        slug: string;
        title: string;
    } | null;
    /** M21 m05ctxreg: 'chat' = default, 'brief' = brief editorial thread (different toolset, different skill, different chrome). */
    contextType?: ChatContextType;
    /** M21: snapshot of the brief attached to this thread (only when contextType='brief'). */
    brief?: Brief | null;
    /** M23: snapshot of the patch attached to this thread (only when contextType='patch'). */
    patch?: PatchResponse | null;
}
export declare function buildSystemPrompt(input: SystemPromptInput): string;
