import type { EventRegistry } from '../registry.js';
import type { EventPlayerContext, EventPromptEnvelope, EventResolvedEnvelope } from '../types.js';
interface PendingEventInstance {
    instanceId: string;
    status: string;
}
interface CreatedEventInstance {
    instanceId: string;
    eventId: string;
    prompt: string;
    choices: Array<{
        choiceId: string;
        text: string;
        energyCost?: number;
        moneyCost?: number;
        diamondCost?: number;
    }>;
}
interface EventInstanceStore {
    getPendingEventInstances(playerId: string): Promise<PendingEventInstance[]>;
    createEventInstance(input: {
        instanceId: string;
        playerId: string;
        eventId: string;
        prompt: string;
        choices: Array<{
            choiceId: string;
            text: string;
            energyCost?: number;
            moneyCost?: number;
            diamondCost?: number;
        }>;
        context?: Record<string, unknown>;
    }): Promise<CreatedEventInstance>;
    resolveEventInstance?: (instanceId: string, resolution: {
        resolutionText: string;
        effects?: Record<string, unknown>;
    }) => Promise<boolean>;
}
export declare class EventEngine {
    private readonly registry;
    private readonly store;
    constructor(registry: EventRegistry, store: EventInstanceStore);
    promptNext(player: EventPlayerContext): Promise<EventPromptEnvelope | EventResolvedEnvelope | null>;
}
export {};
//# sourceMappingURL=EventEngine.d.ts.map