import { type MonsterTypes } from '../monsters';
import type { StarLevel } from './enum';
import type { CaptureQuest, EscortQuest, GatheringQuest, HarvestQuest, HuntQuest, MultiHuntQuest, Quest, QuestRegion, RepelQuest, SlayQuest } from './types';
/**
 * Type guard for a {@link HuntQuest}
 */
export declare function isHuntQuest(quest: Quest): quest is HuntQuest;
/**
 * Type guard for a {@link MultiHuntQuest}
 */
export declare function isMultiHuntQuest(quest: Quest): quest is MultiHuntQuest;
/**
 * Type guard for a {@link CaptureQuest}
 */
export declare function isCaptureQuest(quest: Quest): quest is CaptureQuest;
/**
 * Type guard for a {@link EscortQuest}
 */
export declare function isEscortQuest(quest: Quest): quest is EscortQuest;
/**
 * Type guard for a {@link SlayQuest}
 */
export declare function isSlayQuest(quest: Quest): quest is SlayQuest;
/**
 * Type guard for a {@link RepelQuest}
 */
export declare function isRepelQuest(quest: Quest): quest is RepelQuest;
/**
 * Type guard for a {@link GatheringQuest}
 */
export declare function isGatheringQuest(quest: Quest): quest is GatheringQuest;
/**
 * Type guard for a {@link HarvestQuest}
 */
export declare function isHarvestQuest(quest: Quest): quest is HarvestQuest;
/**
 * @param id Large Monster ID to search for
 * @param region quest regions to return
 * @returns a list of quests with a given large monster as the target
 */
export declare function getQuestsWithLargeMonster(id: MonsterTypes.LargeMonster['id'], region: QuestRegion | 'Both'): Quest[];
/**
 * @region Village or City
 * @starLevel 1 star, 4 star, etc
 * @returns all quests corresponding to the provided region and star level
 */
export declare function getQuestByStarLevel(region: QuestRegion, starLevel: StarLevel): Quest[];
/**
 * @returns all arena quests from a particular region
 */
export declare function getArenaQuests(region: QuestRegion): SlayQuest[];
/**
 * @returns all event quests from a particular region
 */
export declare function getEventQuests(region: QuestRegion): Quest[];
/**
 * @returns Quest with a given ID
 * @throws error if quest cannot be found
 */
export declare function getQuestById(questId: Quest['id']): Quest;
/**
 * Verify if a monster is present in a particular quest
 * @returns true if monster is in quest, otherwise false
 */
export declare function isMonsterInQuest(monsterId: MonsterTypes.Monster['id'], questId: Quest['id']): boolean;
