UNPKG

osrs-tools

Version:

A comprehensive TypeScript library for Old School RuneScape (OSRS) data and utilities, including quest data, skill requirements, and game item information

97 lines 3.17 kB
import { Skill } from './account/Skill'; interface Requirement { description: string; type: RequirementType; } /** * Level requirement for a specific skill. * Automatically determines boostability from skill metadata. * Supports both Skill enum and string skill names for backwards compatibility. */ declare class LevelRequirement implements Requirement { type: RequirementType; skillName: string; level: number; boostable: boolean; constructor(skillName: string | Skill, level: number, boostable?: boolean); get description(): string; /** * Get the expected max level for this skill from metadata. * Useful for validation and display purposes. */ getMaxLevel(): number; } declare enum RequirementType { SlayerLevel = "SlayerLevel", Level = "Level", CombatLevel = "CombatLevel", Quest = "Quest", Item = "Item", QuestPoint = "QuestPoint", Location = "Location", SlayerUnlock = "SlayerUnlock" } declare class SlayerUnlockRequirement implements Requirement { type: RequirementType; name: string; constructor(name: string); get description(): string; } declare class SlayerLevelRequirement implements Requirement { type: RequirementType; level: number; constructor(level: number); get description(): string; } declare class CombatLevelRequirement implements Requirement { type: RequirementType; level: number; constructor(level: number); get description(): string; } declare class QuestRequirement implements Requirement { static fromQuestName(arg0: string): Requirement; type: RequirementType; questName: string; constructor(questName: string); get description(): string; get completionDescription(): string; } declare class QuestPointRequirement implements Requirement { type: RequirementType; amount: number; constructor(amount: number); get description(): string; } declare class ItemRequirement implements Requirement { type: RequirementType; itemName: string; quantity: number; /** Whether the item is consumed during the quest */ consumed: boolean; /** Alternative items that can be used instead */ alternatives?: string[]; /** Whether the item must be noted */ noted?: boolean; /** Whether the item can be banked and withdrawn during the quest */ bankable?: boolean; /** Any additional notes about the item requirement */ notes?: string; constructor(itemName: string, quantity?: number, options?: { consumed?: boolean; alternatives?: string[]; noted?: boolean; bankable?: boolean; notes?: string; }); get description(): string; } declare class LocationRequirement implements Requirement { type: RequirementType; locationName: string; constructor(locationName: string); get description(): string; } export { CombatLevelRequirement, ItemRequirement, LevelRequirement, LocationRequirement, QuestPointRequirement, QuestRequirement, RequirementType, SlayerLevelRequirement, SlayerUnlockRequirement, }; export type { Requirement }; //# sourceMappingURL=Requirement.d.ts.map