import Description from "../description/Description"; import NonPlayerCharacter from "../npc/NonPlayerCharacter"; import Quest from "./Quest"; import QuestCollection from "./QuestCollection"; import Link from "../resource/Link"; import Resource from "../resource/Resource"; import { ResourceData } from "../resource/ResourceData"; import ResourceEvent from "../resource/ResourceEvent"; import Secret from "./Secret"; import SecretsCollection from "./SecretsCollection"; import Shop from "../shop/Shop"; import Tavern from "../tavern/Tavern"; import Weather from "../weather/Weather"; import BasicTownInformation, { Landscape, TownSize } from "./BasicTownInformation"; import CitizenCollection from "./CitizenCollection"; import ShopCollection from "./ShopCollection"; import TavernCollection from "./TavernCollection"; import { Season } from "../weather/seasons"; import { RaceType } from "../race/RaceType"; interface IProps { id: string; name: string; eventLog?: ResourceEvent[]; links?: Link[]; population: number; citizens?: NonPlayerCharacter[]; weather: Weather; description: string; government: string; notablePlaces?: string[]; size: TownSize; landscape: Landscape; secrets?: Secret[]; quests?: Quest[]; shops?: Shop[]; taverns?: Tavern[]; fileData?: string[]; } export default class Town extends Resource { readonly basicInformation: BasicTownInformation; readonly weather: Weather; readonly government: Description; readonly notablePlaces: string[]; readonly description: Description; private lazyCitizens?; private lazySecrets?; private lazyQuests?; private lazyTaverns?; private lazyShops?; constructor({ id, name, eventLog, population, citizens, weather, description, government, notablePlaces, size, landscape, secrets, quests, shops, taverns, links, fileData, }: IProps); get tavernCollection(): TavernCollection | undefined; get shopCollection(): ShopCollection | undefined; get citizenCollection(): CitizenCollection | undefined; get secretsCollection(): SecretsCollection | undefined; get questCollection(): QuestCollection | undefined; static parse(data: ResourceData): Town; toMarkdown(): string; createMarkdownFile(): Resource[]; static random({ population, size, landscape, name, numShops, numTaverns, numCitizens, races, numSecrets, numQuests, season, }?: { population?: number; size?: TownSize; landscape?: Landscape; name?: string; numShops?: number; numTaverns?: number; numCitizens?: number; races?: RaceType[]; numSecrets?: number; numQuests?: number; season?: Season; }): Town; } export declare const isTown: (someValue: any) => someValue is Town; export declare const asTown: (someValue: any) => Town; export declare const isTownArray: (someValue: any) => someValue is Town[]; export declare const asTownArray: (someValue: any) => Town[]; export {};