import type { PoolConnection } from 'mysql2/promise';
import type { EventChoice, EventInstanceStatus } from '../events/v2/types.js';
export interface EventInstanceRecord {
    instanceId: string;
    playerId: string;
    eventId: string;
    status: EventInstanceStatus;
    prompt: string;
    choices: EventChoice[];
    context: Record<string, unknown> | null;
    selectedChoiceId: string | null;
    createdAt: string;
    answeredAt: string | null;
    resolvedAt: string | null;
}
export interface CreateEventInstanceInput {
    instanceId: string;
    playerId: string;
    eventId: string;
    prompt: string;
    choices: EventChoice[];
    context?: Record<string, unknown>;
}
export interface ResolveEventInstanceInput {
    resolutionText: string;
    effects?: Record<string, unknown>;
}
export declare function createEventInstance(input: CreateEventInstanceInput): Promise<EventInstanceRecord>;
export declare function getPendingEventInstances(playerId: string): Promise<EventInstanceRecord[]>;
export declare function answerEventInstance(instanceId: string, choiceId: string): Promise<boolean>;
export declare function resolveEventInstance(instanceId: string, resolution: ResolveEventInstanceInput): Promise<boolean>;
export declare function ensureEventInstancesTable(existingConnection?: PoolConnection): Promise<void>;
//# sourceMappingURL=eventInstances.d.ts.map