export interface TeamInvite { code: string; teamId: string; createdBy: string; createdAt: number; expiresAt: number; usedAt?: number; } export interface CreatedInvite { code: string; expiresAt: number; } /** Mint a single-use invite for a team. */ export declare function createInvite(dataDir: string, teamId: string, createdBy: string, ttlMs?: number, now?: number): CreatedInvite; /** Drop every invite for a team (e.g. when the team is deleted), so stale codes * can't later be consumed to join/switch into a non-existent team. Returns count. */ export declare function deleteInvitesForTeam(dataDir: string, teamId: string): number; export type ConsumeInviteResult = { ok: true; teamId: string; } | { ok: false; reason: 'not_found' | 'expired' | 'used'; }; /** Validate + burn an invite (single-use). Determines the precise failure * reason BEFORE pruning, so an expired code reports `expired` (not `not_found`). */ export declare function consumeInvite(dataDir: string, code: string, now?: number): ConsumeInviteResult; //# sourceMappingURL=invite-store.d.ts.map