import type { VideoAspectRatio, VideoAsset, VideoAssetKind, VideoAssetManifest, VideoAssetSource, VideoCaptionStyle, VideoProject, VideoScenePlan, VideoTimeline, VideoTimelineScene } from './types.js'; declare function dimensions(aspectRatio: VideoAspectRatio): { width: number; height: number; }; declare function normalizeScenes(raw: Partial[], targetDurationSec: number): VideoScenePlan[]; export interface PlanStoryInput { projectDir: string; title: string; story: string; language: string; aspectRatio: VideoAspectRatio; targetDurationSec: number; style?: string; overwrite?: boolean; } export declare function planStory(input: PlanStoryInput): Promise; export interface SavePlanInput { projectDir: string; title: string; story: string; language: string; aspectRatio: VideoAspectRatio; targetDurationSec: number; scenes: Array & Pick>; style?: string; overwrite?: boolean; } /** * 에이전트(구독 세션)가 직접 작성한 스토리보드를 API 키 없이 project.json으로 저장한다. * video_plan_from_story(ANTHROPIC_API_KEY 필요)의 무료 대안. * 장면 길이 합계가 targetDurationSec와 일치해야 projectSchema 검증을 통과한다. */ export declare function savePlan(input: SavePlanInput): VideoProject; export declare function loadProject(projectDir: string): VideoProject; export declare function loadAssets(projectDir: string): VideoAssetManifest; export declare function sha256File(filePath: string): string; export declare function registerAsset(projectDir: string, asset: Omit): VideoAsset; export interface AddLocalAssetInput { projectDir: string; filePath: string; kind: VideoAssetKind; sourceType: Extract; license: string; author?: string; attribution?: string; } export declare function addLocalAsset(input: AddLocalAssetInput): VideoAsset; export declare function buildTimeline(projectDir: string, scenes: VideoTimelineScene[], audioAssetId?: string, captionStyle?: VideoCaptionStyle): VideoTimeline; export declare function loadTimeline(projectDir: string): VideoTimeline; export declare const __testing: { dimensions: typeof dimensions; normalizeScenes: typeof normalizeScenes; }; export {};