export declare function normalizeReferralCode(value: unknown): string | null; /** Stable, unguessable share code. The unique user constraint handles concurrent creation. */ export declare function createReferralCode(ownerId: number, database?: ReferralDatabase): Promise; /** * First attribution wins. Call only from trusted new-account creation, never a * public claim endpoint. Pass the registration transaction to commit together. * Invalid, unknown, repeated, and self referrals do not disrupt registration. */ export declare function attributeReferral(newUserId: number, input: unknown, database?: ReferralDatabase): Promise; /** Server-only conversion hook. Replays preserve the first qualification time. */ export declare function qualifyReferral(referredUserId: number, database?: ReferralDatabase): Promise; /** Aggregate only: a referrer never receives another account's email or profile. */ export declare function referralSummary(ownerId: number, database?: ReferralDatabase): Promise; /** Minimal database contract, also accepted by transaction-scoped connections. */ export declare interface ReferralDatabase { unsafe: (sql: string, bindings?: unknown[]) => { execute: () => Promise } } export declare interface ReferralCode { code: string user_id: number } export declare interface ReferralSummary { code: string | null referred: number qualified: number }