import * as mongoose from "mongoose"; /** * A feature granted to an email address that has no account yet. * * `/log` and `/internal` are invite-only, and the list of who may see them * lives on the user (`User.features`) — which leaves nowhere to record an * invitation to somebody who has never signed in. A row here is that record, * and `UsersService.createUser` applies it the moment the account is created. * * Not a second source of truth: once consumed, `User.features` is the only * thing any gate reads. The row survives, stamped `consumedAt`, because * "who was invited, and did they ever come" is worth being able to answer — * and because a consumed invite must not re-apply itself if the features are * later revoked. * * Written only by `api-gateway/scripts/grant-feature.ts`. See * api-gateway/CLAUDE.md "Feature access". */ export declare const FeatureInviteSchema: mongoose.Schema, {}, {}, {}, {}, { timestamps: true; }, { email: string; features: string[]; consumedAt?: NativeDate; } & mongoose.DefaultTimestampProps, mongoose.Document, {}, mongoose.MergeType> & mongoose.FlatRecord<{ email: string; features: string[]; consumedAt?: NativeDate; } & mongoose.DefaultTimestampProps> & { _id: mongoose.Types.ObjectId; } & { __v: number; }>; export declare const FeatureInviteModel: mongoose.Model<{ email: string; features: string[]; consumedAt?: NativeDate; } & mongoose.DefaultTimestampProps, {}, {}, {}, mongoose.Document & { email: string; features: string[]; consumedAt?: NativeDate; } & mongoose.DefaultTimestampProps & { _id: mongoose.Types.ObjectId; } & { __v: number; }, mongoose.Schema, {}, {}, {}, {}, { timestamps: true; }, { email: string; features: string[]; consumedAt?: NativeDate; } & mongoose.DefaultTimestampProps, mongoose.Document, {}, mongoose.MergeType> & mongoose.FlatRecord<{ email: string; features: string[]; consumedAt?: NativeDate; } & mongoose.DefaultTimestampProps> & { _id: mongoose.Types.ObjectId; } & { __v: number; }>>; //# sourceMappingURL=index.d.ts.map