import Description from "../description/Description"; import { IToMarkdown } from "../markdown/markdown"; import NonPlayerCharacter from "../npc/NonPlayerCharacter"; import Owner from "../npc/Owner"; import { GetResourceFile, ReadAllResourceFiles } from "../resource/files"; import Link from "../resource/Link"; import Resource from "../resource/Resource"; import { ResourceData } from "../resource/ResourceData"; import ResourceEvent from "../resource/ResourceEvent"; import Menu from "./Menu"; import MenuItem from "./MenuItem"; import PatronCollection from "./PatronCollection"; import TavernRoom from "./TavernRoom"; import TavernRoomCollection from "./TavernRooms"; export declare const roomTypes: readonly ["single", "double"]; export declare type RoomType = typeof roomTypes[number]; interface IProps { id: string; name: string; eventLog?: ResourceEvent[]; links?: Link[]; owner?: NonPlayerCharacter; description: string; rooms: TavernRoom[]; menuItems: MenuItem[]; fileData?: string[]; patrons?: NonPlayerCharacter[]; getFile?: GetResourceFile; readAllFiles?: ReadAllResourceFiles; } interface IOptions { getFile?: GetResourceFile; readAllFiles?: ReadAllResourceFiles; } export default class Tavern extends Resource implements IToMarkdown { readonly description: Description; readonly rooms: TavernRoomCollection; readonly menu: Menu; private lazyPatrons?; private lazyOwner?; private getFile; constructor({ id, name, eventLog, owner, description, rooms, menuItems, patrons, links, fileData, getFile, }: IProps); get patronCollection(): PatronCollection | undefined; get owner(): Owner | undefined; static parse(data: ResourceData, options?: IOptions): Tavern; toMarkdown(): string; createMarkdownFile(): Resource[]; static random(): Tavern; } export declare const isTavern: (someValue: any) => someValue is Tavern; export declare const asTavern: (someValue: any) => Tavern; export declare const isTavernArray: (someValue: any) => someValue is Tavern[]; export declare const asTavernArray: (someValue: any) => Tavern[]; export {};