export type ContentBodyFormat = 'markdown' | 'html';
export type ContentBodyImagePlacement = 'block' | 'left' | 'right' | 'center' | 'full';
export interface ContentBodyImage {
src: string;
alt: string;
title?: string;
assetId?: string;
placement?: ContentBodyImagePlacement;
width?: number;
index: number;
}
export declare const DEFAULT_CONTENT_BODY_FORMAT: ContentBodyFormat;
export declare function isContentBodyFormat(value: unknown): value is ContentBodyFormat;
export declare function looksLikeHtml(value: unknown): boolean;
export declare function resolveBodyFormat(format: unknown, body?: unknown): ContentBodyFormat;
export declare function escapeHtml(value: string): string;
export declare function escapeAttribute(value: string): string;
export declare function sanitizeHtml(value: string): string;
export declare function renderMarkdownToHtml(markdown: string): string;
export declare function stripHtml(value: string): string;
export declare function htmlToMarkdown(html: string): string;
export declare function normalizeEditorHtml(html: string): string;
export declare function bodyToEditorHtml(body: string, format: ContentBodyFormat): string;
export declare function editorHtmlToBody(html: string, format: ContentBodyFormat): string;
export declare function extractBodyImages(body: string, format?: ContentBodyFormat): ContentBodyImage[];
/**
* Structural view of the asset-like inputs accepted by the image helpers.
* Callers pass assorted asset shapes (Asset models, plain DTOs, etc.); only
* these optional fields are read.
*/
export interface ImageAssetLike {
id?: unknown;
sourceUri?: unknown;
url?: unknown;
src?: unknown;
alt?: unknown;
name?: unknown;
title?: unknown;
width?: unknown;
}
export declare function getImageSource(asset: ImageAssetLike | null | undefined): string;
export declare function getImageAlt(asset: ImageAssetLike | null | undefined): string;
export declare function imageAssetToHtml(asset: ImageAssetLike | null | undefined): string;
//# sourceMappingURL=body-format.d.ts.map