declare const disabledReasonArray: readonly ["enterprise", "no_active_subscription", "fraud", "manual"]; export type ReferrerDisabledReason = (typeof disabledReasonArray)[number]; /** * A customer enrolled in the referral program — the side that shares a link and earns credit. * * One row per (client, user), created lazily the first time the referral dashboard is opened rather * than seeded for the whole base. `code` is the `?ref=` value: the user's UUID in a shortened * encoding, persisted rather than only derived so it can be uniquely indexed, searched by CS, and * reissued if a code is abused without touching the user record. * * This is a separate table rather than columns on `client` because program access has state of its * own — an enterprise upgrade or a cancellation revokes it, and `disabledReason` records which. * * Named for the side it represents. The other side of a referral is not an entity of its own: a * referred customer *is* the referral, and lives as the `referred*` columns on `referral`. */ export declare class Referrer { id: number; /** Billing entity the earned credit accrues to. */ clientId: number; userId: string; /** * The `?ref=` value — the canonical form of `userId`, so a code read off a link matches `user.id` * on sight with no transform in between. */ code: string; enabled: boolean; disabledReason: ReferrerDisabledReason | null; /** First dashboard view / link generation. */ enrolledAt: Date | null; createdAt: Date | null; updatedAt: Date | null; } export {};