/**
 * Types and interfaces for quest and skill requirements
 */
/**
 * Base type for all requirements in OSRS
 */
export declare enum RequirementType {
    /** Level requirement for a specific skill */
    Level = "Level",
    /** Required combat level */
    CombatLevel = "CombatLevel",
    /** Required Slayer level */
    SlayerLevel = "SlayerLevel",
    /** Quest that must be completed */
    Quest = "Quest",
    /** Number of quest points needed */
    QuestPoint = "QuestPoint",
    /** Item that must be possessed */
    Item = "Item",
    /** Location that must be accessible */
    Location = "Location",
    /** Slayer reward that must be unlocked */
    SlayerUnlock = "SlayerUnlock"
}
/**
 * Base interface for all requirement types
 */
export interface Requirement {
    /** The type of requirement */
    type: RequirementType;
    /** Human-readable description of the requirement */
    description: string;
}
/**
 * Requirement for a specific skill level
 */
export interface LevelRequirement extends Requirement {
    type: RequirementType.Level;
    /** The name of the skill */
    skillName: string;
    /** The required level */
    level: number;
    /** Whether the requirement can be boosted */
    boostable: boolean;
}
/**
 * Requirement for overall combat level
 */
export interface CombatLevelRequirement extends Requirement {
    type: RequirementType.CombatLevel;
    /** The required combat level */
    level: number;
}
/**
 * Requirement for Slayer level
 */
export interface SlayerLevelRequirement extends Requirement {
    type: RequirementType.SlayerLevel;
    /** The required Slayer level */
    level: number;
    /** Whether the requirement can be boosted */
    boostable: boolean;
}
/**
 * Requirement to have completed a quest
 */
export interface QuestRequirement extends Requirement {
    type: RequirementType.Quest;
    /** The name of the required quest */
    questName: string;
}
/**
 * Requirement for total quest points
 */
export interface QuestPointRequirement extends Requirement {
    type: RequirementType.QuestPoint;
    /** The number of quest points required */
    points: number;
}
/**
 * Requirement to possess an item
 */
export interface ItemRequirement extends Requirement {
    type: RequirementType.Item;
    /** The name of the required item */
    itemName: string;
    /** The quantity needed (defaults to 1) */
    quantity?: number;
    /** Whether the item is consumed during the quest */
    consumed?: boolean;
}
/**
 * Requirement to access a location
 */
export interface LocationRequirement extends Requirement {
    type: RequirementType.Location;
    /** The name of the required location */
    locationName: string;
}
/**
 * Requirement for a Slayer unlock
 */
export interface SlayerUnlockRequirement extends Requirement {
    type: RequirementType.SlayerUnlock;
    /** The name of the required Slayer unlock */
    unlockName: string;
}
/** Helper function to create a level requirement */
export declare function createLevelRequirement(skillName: string, level: number, boostable?: boolean, description?: string): LevelRequirement;
/** Helper function to create a quest requirement */
export declare function createQuestRequirement(questName: string, description?: string): QuestRequirement;
/** Helper function to create a quest points requirement */
export declare function createQuestPointRequirement(points: number, description?: string): QuestPointRequirement;
/** Helper function to create an item requirement */
export declare function createItemRequirement(itemName: string, quantity?: number, consumed?: boolean, description?: string): ItemRequirement;
//# sourceMappingURL=Requirements.d.ts.map