import { MilkdownPlugin } from '@milkdown/kit/ctx'; import { Root } from 'mdast'; export declare const VIDEO_NODE_NAME = "video"; export declare const DEFAULT_VIDEO_WIDTH = 640; export declare const DEFAULT_VIDEO_HEIGHT = 360; /** * Check if a URL points to a video file by extension */ export declare function isVideoFile(url: string): boolean; /** * Extract filename from URL for use as default title */ export declare function extractFilenameFromUrl(url: string): string; /** * Remark plugin that transforms video links into videoNode AST nodes. * * Detects: * - Links with video file extensions (.mp4, .webm, etc.) * - Markdown format: [title WxH](url.mp4) or [title](url.mp4) * - Internal attachment links: [title WxH](/api/attachments.redirect?...) (platform export format) */ /** Applies the same mdast transform as `remarkVideoPlugin` (exported for unit tests). */ export declare function transformVideoLinksInMdast(tree: Root): void; export declare const remarkVideoPlugin: import('@milkdown/utils').$Remark<"video-transform", unknown>; /** * Video node schema for ProseMirror * * Attrs MUST match Platform's Video.tsx for Y.js collab sync: * - id: unique identifier (can be null) * - src: video URL * - width: pixel width * - height: pixel height * - title: caption/alt text */ export declare const videoNode: import('@milkdown/utils').$Node; /** * Export all video plugins for registration */ export declare const videoPlugin: MilkdownPlugin[];