import { AccountDb } from '../db'; export declare const createInviteCodes: (db: AccountDb, toCreate: { account: string; codes: string[]; }[], useCount: number) => Promise; export declare const createAccountInviteCodes: (db: AccountDb, forAccount: string, codes: string[], expectedTotal: number, disabled: 0 | 1) => Promise; export declare const recordInviteUse: (db: AccountDb, opts: { did: string; inviteCode: string | undefined; now: string; }) => Promise; export declare const ensureInviteIsAvailable: (db: AccountDb, inviteCode: string) => Promise; export declare const selectInviteCodesQb: (db: AccountDb) => import("kysely/dist/cjs/parser/select-parser").SelectAllQueryBuilder, "invite_code", import("kysely").Selection, "invite_code", "invite_code.code as code" | "invite_code.availableUses as available" | "invite_code.disabled as disabled" | "invite_code.forAccount as forAccount" | "invite_code.createdBy as createdBy" | "invite_code.createdAt as createdAt" | import("kysely").AliasedQueryBuilder, "invite_code_use", import("kysely").Selection, "invite_code_use", import("kysely").AliasedRawBuilder>, "uses">>, "codes">>, "codes", {}, "codes">; export declare const getAccountsInviteCodes: (db: AccountDb, dids: string[]) => Promise>; export declare const getInviteCodesUses: (db: AccountDb, codes: string[]) => Promise>; export declare const getInvitedByForAccounts: (db: AccountDb, dids: string[]) => Promise>; export declare const disableInviteCodes: (db: AccountDb, opts: { codes: string[]; accounts: string[]; }) => Promise; export declare const setAccountInvitesDisabled: (db: AccountDb, did: string, disabled: boolean) => Promise; export type CodeDetail = { code: string; available: number; disabled: boolean; forAccount: string; createdBy: string; createdAt: string; uses: CodeUse[]; }; type CodeUse = { usedBy: string; usedAt: string; }; export {}; //# sourceMappingURL=invite.d.ts.map