import Description from "../description/Description"; import { IToMarkdown } from "../markdown/markdown"; import NonPlayerCharacter from "../npc/NonPlayerCharacter"; import Owner from "../npc/Owner"; import { GetResourceFile } from "../resource/files"; import Link from "../resource/Link"; import Resource from "../resource/Resource"; import { ResourceData } from "../resource/ResourceData"; import ResourceEvent from "../resource/ResourceEvent"; import Inventory from "./Inventory"; import ShopItem from "./ShopItem"; import { TraderType } from "./TraderType"; interface IOptions { traderType?: TraderType; getFile?: GetResourceFile; } interface IProps { id: string; name: string; eventLog?: ResourceEvent[]; inventory?: ShopItem[]; owner?: NonPlayerCharacter; description: string; traderType: TraderType; links?: Link[]; fileData?: string[]; getFile: GetResourceFile; } export default class Shop extends Resource implements IToMarkdown { readonly description: Description; readonly traderType: TraderType; private lazyInventory?; private lazyOwner?; private getFile; constructor({ id, name, eventLog, inventory, owner, description, traderType, links, fileData, getFile, }: IProps); get inventory(): undefined | Inventory; get owner(): undefined | Owner; static parse(data: ResourceData, getFile?: GetResourceFile): Shop; toMarkdown(): string; createMarkdownFile(): Resource[]; static random({ traderType, getFile, }?: IOptions): Shop; } export declare const isShop: (someValue: any) => someValue is Shop; export declare const asShop: (someValue: any) => Shop; export declare const isShopArray: (someValue: any) => someValue is Shop[]; export declare const asShopArray: (someValue: any) => Shop[]; export {};