export interface LlmsTxtConfig {
    siteName: string;
    siteUrl: string;
    /** The reviewed one-to-three sentence blockquote summary. */
    siteDescription?: string;
    /** Optional free-text context block (no headings) emitted after the summary. */
    intro?: string;
    /** Overall cap across all sections (default 50). */
    maxPages?: number;
    /** Cap per section/collection (default 25) so one large group can't flood. */
    maxPerSection?: number;
}
/**
 * Coerce CMS-authored text into a safe single-line list-item fragment.
 *
 * These strings flow from editor fields into a file that AI agents read, so we
 * defend against two things: (1) markdown-breaking characters that would corrupt
 * the `- [title](url): desc` syntax, and (2) multi-line / control-character
 * content that a careless or hostile editor could use to smuggle instruction-like
 * text. This is not a complete prompt-injection defense (no text filter is) — it
 * forces single-line, length-capped, link-safe plain text, which removes the
 * most common corruption and obfuscation vectors.
 */
export declare function sanitizeLlmsText(raw: string | null | undefined, maxLen: number): string;
export interface LlmsTxtPage {
    title: string;
    url: string;
    description?: string;
    collection?: string;
    /** Explicit section/grouping override; falls back to `collection`. */
    section?: string;
    /** Routes the entry into the reserved `## Optional` section. */
    optional?: boolean;
    /** Sort order within a section — higher first. Defaults to 0. */
    priority?: number;
    updatedAt?: string;
    isCornerstone?: boolean;
}
export declare function generateLlmsTxt(config: LlmsTxtConfig, pages: LlmsTxtPage[]): string;
//# sourceMappingURL=llms-txt.d.ts.map