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
TypeScript
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