import type { VideoCaptionStyle, VideoTimeline } from './types.js'; /** * 쇼츠 자막 스타일 시스템 — SRT + force_style(Arial 18px) 하드코딩을 대체한다. * * 기본 preset 'shorts'는 2026 숏폼 표준(Bold Highlight 스타일)을 따른다: * 굵은 고딕 + 흰 글자 + 검정 외곽선(불투명 박스 없음), 9:16에서는 하단-중앙 1/3 배치, * `**단어**` 마크업으로 문장당 키워드 1개만 하이라이트 컬러. * 'box' preset은 튜토리얼용 반투명 박스 자막(Subtitle Block 스타일)이다. */ export type CaptionPosition = 'lower' | 'lower-middle' | 'center'; export interface ResolvedCaptionStyle { fontName: string; fontSizePx: number; textColor: string; outlineColor: string; highlightColor: string; position: CaptionPosition; boxed: boolean; } export declare function resolveCaptionStyle(width: number, height: number, style?: VideoCaptionStyle): ResolvedCaptionStyle; /** #RRGGBB → ASS &HAABBGGRR. alpha 00=불투명, FF=투명. */ export declare function assColor(hex: string, alpha?: string): string; /** ASS 태그·마크업 주입을 막는다. `**`는 하이라이트 마크업으로 살려둔다. */ declare function sanitizeCaptionText(value: string): string; declare function assTime(seconds: number): string; /** `**단어**` → 하이라이트 컬러 런. 줄바꿈은 \N. */ declare function renderEventText(raw: string, style: ResolvedCaptionStyle): string; export declare function formatAss(timeline: VideoTimeline, style: ResolvedCaptionStyle): string; export declare const __testing: { sanitizeCaptionText: typeof sanitizeCaptionText; assTime: typeof assTime; renderEventText: typeof renderEventText; }; export {};