/**
 * What inline formatting a composition file is allowed to receive.
 *
 * Editing text in the Studio preview can style a run of characters, which means
 * markup now travels from a contenteditable element into a file on disk. This
 * module is the only thing deciding what may make that trip. The server write
 * boundary applies it unconditionally before returning composition bytes.
 *
 * One module rather than two implementations. Two would drift, and the drift
 * would be a security bug rather than an inconsistency.
 *
 * It works on an element's subtree in place. Untrusted markup must be parsed in
 * an inert document before this function receives it.
 */
export declare function isRichTextFormattingTag(tagName: string): boolean;
/** Whether an attribute survives the rich-text persistence boundary. */
export declare function isRichTextFormattingAttribute(name: string, value: string): boolean;
/** Whether a declaration survives the rich-text persistence boundary. */
export declare function isRichTextFormattingStyle(property: string, value: string): boolean;
/**
 * Strip everything but allowed formatting from an element's contents, in place.
 *
 * The element itself is never touched, only what is inside it. Callers own the
 * element, and it is the composition's, not the editor's, to rewrite.
 *
 * When the children came from untrusted markup, callers must parse that markup
 * into an inert document (for example linkedom or a detached DOMParser document)
 * first. Never assign untrusted HTML to a live DOM element and then call this
 * function: active content can run before sanitization begins.
 */
export declare function sanitizeRichTextChildren(parent: Element): void;
//# sourceMappingURL=richTextSanitize.d.ts.map