import type { Address, CirclesConfig, TransactionRequest, Hex } from '@aboutcircles/sdk-types'; import type { ReferralPreviewList } from './types.js'; export interface GeneratedReferral { secret: Hex; signer: Address; } export interface GenerateReferralsResult { referrals: GeneratedReferral[]; transactions: TransactionRequest[]; } export interface GenerateInvitesResult { invitees: Address[]; transactions: TransactionRequest[]; } /** * InviteFarm handles batch invitation generation via the InvitationFarm contract. * Manages a farm of InvitationBot instances for generating multiple invitations at once. */ export declare class InviteFarm { private readonly referralsModuleAddress; private readonly invitations; private readonly invitationFarm; private readonly referralsModule; private readonly hubV2; constructor(config: CirclesConfig); /** Get the remaining invite quota for a specific inviter */ getQuota(inviter: Address): Promise; /** Get the invitation fee (96 CRC) */ getInvitationFee(): Promise; /** Get the invitation module address from the farm */ getInvitationModule(): Promise
; /** * Generate batch referrals using the InvitationFarm. * Creates new secrets/signers for users who don't have a Safe yet. * The transfer data encodes the ReferralsModule address + createAccount calldata. * @param inviter Address of the inviter (must have quota) * @param count Number of referrals to generate */ generateReferrals(inviter: Address, count: number): Promise; /** * Generate invitations for existing accounts using the InvitationFarm. * Invites users who already have a Safe wallet but are not registered in Circles Hub. * The transfer data encodes the invitee address(es) directly (no Safe creation). * @param inviter Address of the inviter (must have quota) * @param invitees Array of addresses to invite (must have existing Safe wallets) */ generateInvites(inviter: Address, invitees: Address[]): Promise; /** * List referrals for a given inviter with key previews * @param inviter Address of the inviter * @param limit Max referrals to return (default 10) * @param offset Pagination offset (default 0) */ listReferrals(inviter: Address, limit?: number, offset?: number): Promise; /** Simulate claim to get token IDs that will be claimed */ private simulateClaim; /** Build single safeTransferFrom with createAccount calldata (for referrals - new users) */ private buildReferralTransfer; /** Build batch safeBatchTransferFrom with createAccounts calldata (for referrals - new users) */ private buildBatchReferralTransfer; /** Build single safeTransferFrom with invitee address encoded (for existing accounts) */ private buildInviteTransfer; /** Build batch safeBatchTransferFrom with invitee addresses encoded (for existing accounts) */ private buildBatchInviteTransfer; } //# sourceMappingURL=InviteFarm.d.ts.map