export declare type CommandName = 'ActorGroup' | 'BackgroundGroup' | 'BackgroundSetting' | 'Bgm' | 'Message' | 'Se' | 'Voice' | 'Title' | 'Narration' | 'BranchGroup' | 'ChoiceGroup' | 'Branch' | 'Unknown'; export declare type NonCommandName = never; export declare type ComponentName = CommandName | NonCommandName; export interface LineBase { _t: ComponentName; } export declare type Line = LineBase & (ActorGroup | BackgroundGroup | BackgroundSetting | Bgm | Message | Se | Voice | Title | Narration | Unknown | BranchGroup | ChoiceGroup | Branch); declare type Xy = { x: number; y: number; }; declare type MediaCommon = { startTime: number; duration: number; }; export declare type BackgroundGroup = { _t: 'BackgroundGroup'; backgrounds: Record; }; export declare type BackgroundSetting = { _t: 'BackgroundSetting'; id: string; position?: Xy; scale?: Xy; startTime: number; }; export declare type ActorGroup = { _t: 'ActorGroup'; actors: Actor[]; }; export declare type Actor = { _t: 'Actor'; id: string; body: string; face: string; hair: string; }; export declare type Title = { _t: 'Title'; title: string; }; export declare type Bgm = MediaCommon & { _t: 'Bgm'; bgm: string; }; export declare type Message = { _t: 'Message'; text: string; name: string; startTime: number; thumbnail?: string; }; export declare type Voice = MediaCommon & { _t: 'Voice'; voice: string; channel?: number; actorId?: string; }; export declare type Se = MediaCommon & { _t: 'Se'; se: string; }; export declare type Narration = { _t: 'Narration'; text: string; startTime: number; }; export declare type BranchGroup = { _t: 'BranchGroup'; type: string; groupLength: number; }; export declare type ChoiceGroup = MediaCommon & { _t: 'ChoiceGroup'; choices: string[]; }; export declare type Branch = { _t: 'Branch'; groupLength: number; }; export declare type Unknown = { _t: 'Unknown'; raw: string; }; export declare type ArgValueTypeMap = { string: string; number: number; object: Record; command: RawCommand; }; export declare type ArgValueType = ArgValueTypeMap[keyof ArgValueTypeMap]; export declare type Arg = { key: string; value: ArgValueType; }; export declare type RawCommand = { command: string; args: Arg[]; }; export {};