import { ScreenplaySequenceType } from "@/constants/screenplaySequences"; export type NamedEntity = { label: string; aliases: { en: string[]; }; prompts: Omit, "SPLAT" | "INTERFACE" | "EVENT" | "EFFECT" | "PHENOMENON" | "MESH" | "DEPTH" | "VIDEO" | "IMAGE" | "GENERIC">; }; export type LocationEntity = NamedEntity | { type: "INDOOR" | "OUTDOOR"; }; export type NamedEntityPosition = { sentence: number; word: number; begin: number; end: number; }; export type NamedEntityResult = { ngram: string; value: NamedEntity; score: number; position: NamedEntityPosition; }; export type NamedEntityParser = (input: string) => Promise; export type SimpleNamedEntityParser = (inputs?: string[], defaultValues?: string[], removeDuplicates?: boolean) => Promise; export type SimpleOccurrencesCounter = (input: string, minimumOccurrences: number) => Promise>; export type MovieScriptMeta = { fileName: string; title: string; }; export type MovieScript = { meta: MovieScriptMeta; content: string | Blob; }; export type SceneEvent = { id: string; type: "description" | "dialogue" | "action"; character?: string; description: string; behavior: string; startAtLine: number; endAtLine: number; }; export type Scene = { id: string; scene: string; line: string; rawLine: string; sequenceFullText: string; sequenceStartAtLine: number; sequenceEndAtLine: number; startAtLine: number; endAtLine: number; events: SceneEvent[]; }; export type MergedLine = { rawLine: string; trimmedLine: string; startAtLine: number; endAtLine: number; }; export type ScreenplaySequence = { id: string; location: string[]; type: ScreenplaySequenceType; time: string; transition: string; fullText: string; startAtLine: number; endAtLine: number; scenes: Scene[]; }; export type Screenplay = { fullText: string; sequences: ScreenplaySequence[]; }; export type AssetType = "Direction" | "Image" | "Video" | "Description"; export type AssetCategory = "character" | "location" | "unknown"; export type TemporaryAssetData = { id: string; type: AssetType; category: AssetCategory; label: string; content: string; occurrences: number; sequences: ScreenplaySequence[]; predictedPrompt: string; };