import { GuildHunter, HunterRumour, RumourTier } from "./HunterRumour";
/** All hunter rumours sorted by Hunter level */
export declare const ALL_RUMOURS: readonly HunterRumour[];
/**
 * Huntmaster Gilman (Novice) - Can assign all rumours.
 */
export declare const Gilman: GuildHunter;
/**
 * Guild Hunter Cervus (Adept) - Has a distinct adept rumour list.
 */
export declare const Cervus: GuildHunter;
/**
 * Guild Hunter Ornus (Adept) - Has a distinct adept rumour list.
 */
export declare const Ornus: GuildHunter;
/**
 * Guild Hunter Aco (Expert) - Has a distinct expert rumour list.
 */
export declare const Aco: GuildHunter;
/**
 * Guild Hunter Teco (Expert) - Has a distinct expert rumour list.
 */
export declare const Teco: GuildHunter;
/**
 * Guild Hunter Wolf (Master) - Requires completion of At First Light.
 */
export declare const Wolf: GuildHunter;
/** All guild hunters */
export declare const ALL_GUILD_HUNTERS: readonly GuildHunter[];
/**
 * Get a guild hunter by name.
 * @param name - The guild hunter's name (enum or string)
 * @returns The guild hunter, or undefined if not found
 */
export declare function getGuildHunterByName(name: string): GuildHunter | undefined;
/**
 * Get all guild hunters for a specific tier.
 * @param tier - The rumour tier
 * @returns Array of guild hunters for that tier
 */
export declare function getGuildHuntersByTier(tier: RumourTier): GuildHunter[];
/**
 * Get the available rumours for a guild hunter, excluding any creatures
 * already assigned as active rumours from other hunters.
 *
 * This implements the "blocking" mechanic: players cannot receive the same
 * task from multiple guild hunters at once. By obtaining a task from one
 * hunter first, it is blocked from appearing with another.
 *
 * Example: If Gilman assigns "Swamp lizard", Cervus cannot assign "Swamp lizard"
 * until the Gilman assignment is completed or reset.
 *
 * @param hunter - The guild hunter to get available rumours for
 * @param activeRumours - Rumours currently assigned from other guild hunters
 * @returns Rumours the hunter can assign, excluding blocked ones
 */
export declare function getAvailableRumours(hunter: GuildHunter, activeRumours?: HunterRumour[]): HunterRumour[];
/**
 * Find a rumour by creature name.
 * @param creature - The creature name to search for (case-insensitive)
 * @returns The matching rumour, or undefined if not found
 */
export declare function getRumourByCreature(creature: string): HunterRumour | undefined;
/**
 * Get all guild hunters that can assign a specific rumour.
 * @param rumour - The rumour to check
 * @returns Array of guild hunters who include this rumour in their list
 */
export declare function getHuntersForRumour(rumour: HunterRumour): GuildHunter[];
//# sourceMappingURL=HunterRumours.d.ts.map