import type { WorkType } from "../shared/content-types/registry.js";
export type { WorkType };
export type WorkStatus = "draft" | "creating" | "ready" | "failed";
export type ContentCategory = "anxiety" | "conflict" | "comedy" | "envy" | "other";
export type VideoSource = "upload" | "search" | "ai-generate";
export interface Work {
    id: string;
    title: string;
    type: WorkType;
    contentCategory?: ContentCategory;
    videoSource?: VideoSource;
    videoSearchQuery?: string;
    status: WorkStatus;
    platforms: string[];
    cliSessionId?: string;
    coverImage?: string;
    topicHint?: string;
    createdAt: string;
    updatedAt: string;
}
/** Lightweight summary stored in the index file. */
export interface WorkSummary {
    id: string;
    title: string;
    type: WorkType;
    contentCategory?: ContentCategory;
    platforms?: string[];
    status: WorkStatus;
    updatedAt: string;
}
export declare function listWorks(): Promise<WorkSummary[]>;
export declare function getWork(id: string): Promise<Work | undefined>;
export declare function createWork(input: {
    title: string;
    type: WorkType;
    contentCategory?: ContentCategory;
    videoSource?: VideoSource;
    videoSearchQuery?: string;
    platforms: string[];
    topicHint?: string;
}): Promise<Work>;
export declare function updateWork(id: string, updates: Partial<Work>): Promise<Work | undefined>;
export declare function deleteWork(id: string): Promise<boolean>;
/** Recursively list files in assets/ and output/ dirs, returning relative paths. */
export declare function listAssets(id: string): Promise<string[]>;
export declare function getAssetPath(id: string, filename: string): string;
/** Save full conversation to chat.json (single file per work). */
export declare function saveWorkChat(id: string, data: unknown): Promise<void>;
/** Load full conversation for a work's chat session. Tries chat.json (single-
 *  shot snapshot saved by PUT /api/works/:id/chat) first ONLY for the default
 *  session, falling back to the session's jsonl (the live stream log appended
 *  by ws-bridge.appendToChatLog). Without the jsonl fallback, refreshing the
 *  studio page wiped the entire visible chat history because no caller actually
 *  writes chat.json today — only the jsonl path is on disk for live sessions.
 *
 *  `sessionId` defaults to the legacy default session so existing single-
 *  session callers keep reading chat.jsonl; passing a non-default session
 *  reads its `chat-{sessionId}.jsonl` instead, so a session-aware HTTP seed
 *  agrees with the WS `message_history` reseed (ADR-008 §4 / I24). */
export declare function loadWorkChat(id: string, sessionId?: string): Promise<{
    blocks: unknown[];
} | null>;
//# sourceMappingURL=work-store.d.ts.map