import { IToMarkdown } from "../markdown/markdown"; import { FindOneResourceFile, OverWriteResourceFile } from "../resource/files"; import Link from "../resource/Link"; import Resource from "../resource/Resource"; import { ResourceData } from "../resource/ResourceData"; import ResourceEvent from "../resource/ResourceEvent"; import ActionLog from "./turn/ActionLog"; import Combatant from "./combatant/Combatant"; import Effect from "./effect/Effect"; import Turn from "./turn/Turn"; import { IResult } from "../utils/Result"; export interface IEventOptions { date?: Date; updateFile?: OverWriteResourceFile; } interface IProps { id: string; name: string; eventLog: ResourceEvent[]; links: Link[]; turns: Turn[]; createdAt?: Date; } export default class Battle extends Resource implements IToMarkdown { readonly createdAt: Date; turns: Turn[]; constructor({ id, name, turns, eventLog, links, createdAt, }: IProps); get currentTurn(): Turn; static random({ name }?: { name?: string; }): Battle; static parse(resourceData: ResourceData, find?: FindOneResourceFile): Battle; createMarkdownFile(): Battle[]; rollInitiatives(rolls: string, options?: IEventOptions): { updated: string[]; notUpdated: string[]; }; next(updateFile?: OverWriteResourceFile): string[]; addCombatant(combatant: Combatant, { date, updateFile, }?: IEventOptions): Battle; removeCombatant(id: string, { date, updateFile, }?: IEventOptions): IResult; addEffect(effect: Effect, { date, updateFile, }?: IEventOptions): string; removeEffect(effect: string, { date, updateFile, }?: IEventOptions): string; addActionLog(text: string, { date, updateFile, }?: IEventOptions): ActionLog; addMultipleActionLogs(logs: string[], { date, updateFile, }?: IEventOptions): Battle; applyDamage(id: string, damage: number, options?: IEventOptions): IResult; applyHeal(id: string, heal: number, options?: IEventOptions): IResult; toMarkdown(): string; private _addCombatant; } export declare const isBattle: (someValue: any) => someValue is Battle; export declare const asBattle: (someValue: any) => Battle; export declare const isBattleArray: (someValue: any) => someValue is Battle[]; export declare const asBattleArray: (someValue: any) => Battle[]; export {};