export interface DialogResult { confirmed: boolean; } export interface LinkDialogResult extends DialogResult { text?: string; href?: string; newWindow?: boolean; } export interface ImageDialogResult extends DialogResult { src?: string; } export interface YouTubeDialogResult extends DialogResult { url?: string; } export interface ImportHtmlDialogResult extends DialogResult { /** 사용자가 선택했거나 붙여넣은 원본 HTML 문서 텍스트. */ html?: string; } export interface ImportMarkdownDialogResult extends DialogResult { /** 사용자가 선택했거나 붙여넣은 원본 Markdown 텍스트. */ markdown?: string; } export interface FileAttachmentDialogResult extends DialogResult { /** 다운로드 URL — 외부 URL 또는 업로드 API 응답에서 받은 URL. */ src?: string; /** 원본 파일명. download attr 와 표시 라벨에 사용. */ name?: string; /** 바이트 크기 (선택). 파일 업로드/메타에서 알 수 있을 때만. */ size?: number; /** MIME 타입 (선택). 파일 업로드 시에만 알 수 있다. */ type?: string; } export interface TableDialogResult extends DialogResult { rows?: number; cols?: number; } export declare function openLinkDialog(initial?: { text?: string; href?: string; newWindow?: boolean; }, theme?: 'light' | 'dark'): Promise; export declare function openImageDialog(options?: { onUpload?: (file: File) => Promise; }, theme?: 'light' | 'dark'): Promise; export declare function openTableDialog(theme?: 'light' | 'dark'): Promise; /** * HTML 파일을 골라 본문에 임포트하기 위한 다이얼로그. * 파일 선택(.html / .htm) 또는 textarea 직접 붙여넣기를 모두 지원한다. * 확인 시 원본 HTML 문자열을 resolve. * * 다이얼로그 안에서는 가져오기 동작 자체는 수행하지 않는다 — 호출자가 * 받은 html 을 importHtmlWithComputedStyles 로 처리한다. */ export declare function openImportHtmlDialog(theme?: 'light' | 'dark'): Promise; /** * Markdown 파일을 골라 본문에 임포트하기 위한 다이얼로그. * 파일 선택(.md / .markdown) 또는 textarea 직접 붙여넣기 모두 지원. 확인 시 * 원본 markdown 문자열을 resolve. 호출자가 받은 markdown 을 markdownToBlocks * 으로 처리해 본문에 삽입한다. */ export declare function openMarkdownImportDialog(theme?: 'light' | 'dark'): Promise; /** * 파일 첨부 다이얼로그. 두 가지 입력 방식: * 1) 링크 — 외부 URL + 표시 이름(선택) 입력 * 2) 업로드 — 사용자가 등록한 onUpload(file) 로 서버 업로드 후 응답 URL 사용 * * 이미지 다이얼로그와 달리 base64 임베드 모드는 의도적으로 제외 — 첨부 * 파일은 보통 크기가 커서 직렬화 snapshot 비대화의 부작용이 크다. */ export declare function openFileAttachmentDialog(options?: { onUpload?: (file: File) => Promise; }, theme?: 'light' | 'dark'): Promise; export declare function openYouTubeDialog(theme?: 'light' | 'dark'): Promise; // (소스맵은 CJS 선언 사본에서 제외됨 — scripts/finalize-types.mjs)