/**
 * NPC Scheduler Module
 *
 * Generates and manages daily schedules for NPC relationship characters.
 * NPCs follow their own daily routines based on occupation, age, and schedules.
 *
 * Ported from Python ws/intradayActivity.py - specifically the NPC aspects:
 * - NPC daily plan generation for relationship characters
 * - NPC movement patterns based on their schedules
 * - handleNPCSchedules() - Process NPC schedules
 */
import { Player, Person } from '../../models/index.js';
import { DailyEvent } from '../../game/engine/intradayActivity.js';
export interface NPCScheduleEvent {
    time: number;
    location: string;
    title: string;
    name: string;
    npcId: string;
}
export interface NPCLocationUpdate {
    npcId: string;
    previousLocation: string;
    newLocation: string;
    time: number;
    activity: string;
}
/**
 * Generate NPC-specific daily plan
 * NPCs share some locations with the player (school, work) but have their own homes
 */
export declare function generateNPCDailyPlan(player: Player, npc: Person): Person;
/**
 * Process NPC schedules for all relationship characters
 * This is called at the start of each day to generate daily plans
 *
 * Matches Python loop_manager.py behavior:
 * - Generates daily plans for all NPCs in player.r
 * - Only processes alive NPCs
 */
export declare function handleNPCSchedules(player: Player): NPCLocationUpdate[];
/**
 * Update NPC locations based on current time
 * This is called each hour to update NPC positions
 *
 * Matches Python getIntradayActivity() behavior for NPCs
 */
export declare function updateNPCLocations(player: Player): NPCLocationUpdate[];
/**
 * Get NPC's current activity based on their daily plan
 */
export declare function getNPCCurrentActivity(npc: Person, currentHour: number): DailyEvent | null;
/**
 * Get NPC's next scheduled activity
 */
export declare function getNPCNextActivity(npc: Person, currentHour: number): DailyEvent | null;
/**
 * Check if NPC is available for interaction at current time
 * NPCs are less available during work/school, sleeping, or commuting
 */
export declare function isNPCAvailable(npc: Person, currentHour: number): boolean;
export declare const npcScheduler: {
    generateNPCDailyPlan: typeof generateNPCDailyPlan;
    handleNPCSchedules: typeof handleNPCSchedules;
    updateNPCLocations: typeof updateNPCLocations;
    getNPCCurrentActivity: typeof getNPCCurrentActivity;
    getNPCNextActivity: typeof getNPCNextActivity;
    isNPCAvailable: typeof isNPCAvailable;
};
//# sourceMappingURL=npc_scheduler.d.ts.map