import Resource from "../resource/Resource"; import { IToMarkdown } from "../markdown/markdown"; import { GetRandomResourceFile } from "../resource/files"; import { Gender } from "../gender/gender"; import PlotHook from "../plotHook/PlotHook"; import ResourceEvent from "../resource/ResourceEvent"; import Link from "../resource/Link"; import { ResourceData } from "../resource/ResourceData"; import { RaceType } from "../race/RaceType"; import BasicNpcInformation from "./BasicNpcInformation"; import Personality from "./Personality"; interface IProps { id: string; name: string; basicInformation: BasicNpcInformation; personality: Personality; plotHooks: string[]; eventLog?: ResourceEvent[]; links?: Link[]; } export default class NonPlayerCharacter extends Resource implements IToMarkdown { readonly basicInformation: BasicNpcInformation; readonly personality: Personality; readonly plotHook: PlotHook; constructor({ id, name, basicInformation, personality, plotHooks, eventLog, links, }: IProps); toMarkdown(): string; static parse(data: ResourceData): NonPlayerCharacter; static random({ age, name, race, gender, findFile, }?: { age?: number; name?: string; race?: RaceType; gender?: Gender; findFile?: GetRandomResourceFile; }): NonPlayerCharacter; createMarkdownFile(): NonPlayerCharacter[]; } export {};