/**
 * OneTimeEvent model - represents scheduled one-time events
 * Ported from Python oneTimeEvent class
 */
export type DateType = 'date' | 'daysFromNow';
export interface OneTimeEventData {
    id?: string;
    message: string;
    title?: string;
    dateType?: DateType;
    dateModifier?: number;
    targetDate?: string;
    hour?: number;
    location?: string;
    completionFunc?: string;
    completionArgs?: unknown[];
}
/**
 * OneTimeEvent - scheduled events that trigger once at a specific time
 */
export declare class OneTimeEvent {
    id: string;
    message: string;
    title: string;
    dateType: DateType;
    dateModifier: number;
    targetDate: string;
    hour: number;
    location: string;
    type: string;
    completionFunc: string;
    completionArgs: unknown[];
    constructor(data: OneTimeEventData);
    /**
     * Calculate the target date based on dateType
     */
    findDate(currentDate?: string): string;
    /**
     * Check if the event should trigger at the given date/hour
     */
    shouldTrigger(currentDate: string, currentHour: number): boolean;
    /**
     * Convert to plain object for JSON serialization
     */
    toJSON(): OneTimeEventData;
    /**
     * Create from plain object
     */
    static fromJSON(data: OneTimeEventData): OneTimeEvent;
}
/**
 * Parse one-time events for a player
 * Called every hour to check for triggered events
 */
export declare function parseOneTimeEvents(player: {
    c: {
        oneTimeEvents?: OneTimeEventData[];
    };
    date: string;
    hourOfDay: number;
}, sendEventMessage?: (event: {
    type: string;
    message: string;
}) => Promise<void>): void;
//# sourceMappingURL=OneTimeEvent.d.ts.map