/** Options governing clamp behaviour. */
export interface NormaliseUntrustedContentOptions {
    /** Maximum UTF-8 byte length to retain. Defaults to 64 KiB. */
    readonly maxBytes?: number;
}
export interface NormaliseUntrustedContentResult {
    readonly value: string;
    readonly clamped: boolean;
    readonly normalisedFromControlChars: boolean;
    readonly markdownInjectionEscapes: number;
}
/**
 * Normalise an untrusted free-text payload:
 *   1. NFKC normalise.
 *   2. Strip C0/C1/DEL control characters.
 *   3. Escape Markdown-injection vectors (heading, fenced code, image, link).
 *   4. Clamp to `maxBytes` UTF-8 bytes (default 64 KiB).
 *
 * Pure: no IO, no clock, no randomness.
 */
export declare const normaliseUntrustedContent: (raw: string, options?: NormaliseUntrustedContentOptions) => NormaliseUntrustedContentResult;
export declare const UNTRUSTED_CONTENT_DEFAULT_MAX_BYTES: number;
//# sourceMappingURL=untrustedContentNormalisation.d.ts.map