import { TzSource } from './user';
export interface TouristPass {
    id: string;
    user_id: string;
    purchased_at_utc: string;
    purchase_timezone_iana: string;
    timezone_source: string;
    expires_at_utc: string;
    credits_granted: number;
    status: 'ACTIVE' | 'EXPIRED' | 'REPLACED';
    purchase_ip: string | null;
    purchase_geo: any;
    user_agent: string | null;
    payment_txn_id: string | null;
    stripe_session_id: string | null;
    replaced_by: string | null;
    created_at: string;
}
/**
 * Create an auditable tourist pass record.
 * Also marks any previous ACTIVE passes for this user as REPLACED.
 */
export declare function createTouristPass(params: {
    userId: string;
    timezone: string;
    tzSource: TzSource;
    expiresAtUtc: string;
    creditsGranted: number;
    purchaseIp?: string | null;
    purchaseGeo?: any;
    userAgent?: string | null;
    stripeSessionId?: string | null;
}): Promise<TouristPass>;
export declare function getActivePass(userId: string): Promise<TouristPass | null>;
export declare function getExpiredActivePasses(): Promise<TouristPass[]>;
export declare function markPassExpired(passId: string): Promise<void>;
//# sourceMappingURL=tourist-pass.d.ts.map