/** * OWPML(HWPX) 패키지 생성 공통 헬퍼. * * writer.ts(평문) 와 hwpxBuilder.ts(IR) 가 공유하는 OWPML 컨벤션 상수·유틸. * 기준: 한컴 정상 출력 샘플 etc/hwpxcore_test/ (header.xml / section0.xml). * * OWPML 핵심 규칙: * - mimetype = "application/hwp+zip" (한글의 HWPX 매직 문자열) * - 요소만 네임스페이스 prefix(hp:/hh:/hc:), 속성은 prefix 없음 * - head/sec/package 루트에 풀 네임스페이스 선언 * - 첫 문단에 (페이지 설정) 필수 * * 순수 문자열·로직만 — Node 전용 API(Buffer/fs/path/crypto) 금지 (브라우저 ESM 번들 유지). * [shyang 2026-06-21] */ import type { HwpPageDef } from "./types.js"; /** mimetype 파일 내용 — 한글이 HWPX 를 감지하는 매직 문자열. */ export declare const MIMETYPE = "application/hwp+zip"; /** head/sec/package 루트가 공유하는 OWPML 풀 네임스페이스 선언. */ export declare const OWPML_NS: string; /** 한 문단 라인세그 기본값(한컴 호환). 속성 prefix 없음. */ export declare const DEFAULT_LINESEG: string; /** * 섹션 첫 문단에 들어가는 (페이지 설정) + 블록 생성. * * pageDef 가 있으면 용지(width/height)·여백(margin)을 그 값으로 출력하고, * 없으면 한컴 A4 세로 기본 프리셋(etc/hwpxcore_test/Contents/section0.xml 기준). * 그 외(grid/startNum/visibility/각주·미주/페이지테두리/colPr)는 현행 고정 — 한글이 열 때 재계산. * * landscape 속성 = 한글 네이티브 방향 플래그. 실증(복합문서 HWPX 실렌더 PDF): * "WIDELY"=세로(portrait), "NARROWLY"=가로(landscape). 용지 치수(width/height)는 물리값(세로 기준) * 고정이고 방향은 이 플래그로 표현한다. pageDef.landscape 가 true 면 NARROWLY, 아니면 WIDELY. * pageDef 미지정(무인자)·세로 경로는 WIDELY 유지 → 기존 출력 바이트 동일(비바테크 회귀 안전). */ export declare function buildSecPr(pageDef?: HwpPageDef, refs?: { outline: number; memo: number; }): string; /** * 하위호환 기본 secPr(페이지 설정 없는 경로 — 평문 writer.ts 등). * `buildSecPr()` 무인자 호출과 바이트 동일 → 기존 import·회귀 테스트 유지. */ export declare const SEC_PR_XML: string; /** * 문단 고유 id 생성. 한컴은 에 고유 정수 id 를 요구한다. * 결정적(카운터 기반) — 같은 문서/세션 내 고유하면 충분. */ export declare function makeParaId(): number; export declare function escapeXml(s: string): string;