import { Keys, Extends, PropSelector, SpecialType, Settings, InfoMap, Status, Info } from "@onebro/oba-common"; import { Model, ModelSignature, ModelBaseTypeSig, Stages, StageGuard, IsObjectId } from "@onebro/oba-mongoose"; import { UserStatuses, UserRoles } from "./00-common"; import { UploadAsProp } from "./02-upload"; export declare type UserAcctTypes = { T1: "SLV1"; T2: "GLD1"; T3: "GLD2"; T4: "PLT1"; }; export declare const UserAcctTypes: { T1: string; T2: string; T3: string; T4: string; }; export declare type UserProfileProps = Record<"name" | "bio" | "motto", string> & SpecialType, "role"> & { _type_: "user-profile"; img: UploadAsProp[t]; settings: Settings & Info<"data">; socials: InfoMap>; stats: InfoMap>; rating: number; activity: Status>[]; memberSince: Date; }; export declare type UserProfileConfigKeys = "name" | "role"; export declare type UserProfileConfigOptKeys = "img" | "bio" | "motto" | "rating" | "settings" | "socials" | "stats" | "activity"; export declare type UserProfileInstanceKeys = UserProfileConfigKeys | UserProfileConfigOptKeys; export declare type UserProfileJsonKeys = UserProfileInstanceKeys | "_type_" | "memberSince"; export declare type UserProfilePreviewKeys = "name" | "img" | "memberSince"; export declare type UserProfileSelfRefs = { followers: { out: "P"; arr: 1; }; following: { out: "P"; arr: true; }; endorsements: { out: "P"; arr: true; }; }; export declare type UserProfileMethods = {}; export declare type UserProfilePropKeys = Keys>; export declare type UserProfilePropSelector = undefined, j extends UserProfilePropKeys = undefined> = PropSelector, k, j>; export declare type UserProfileSignature = ModelSignature, UserProfilePropSelector<"I", UserProfileInstanceKeys> & UserProfileMethods, UserProfilePropSelector<"J", UserProfileJsonKeys>, UserProfilePropSelector<"J", UserProfilePreviewKeys>, UserStatuses, UserProfileSelfRefs>; export declare type UserProfile = Model; export declare type UserProfileAsProp = ModelBaseTypeSig, Extends<[IsArr], [true | 1], UserProfile["instance"][], UserProfile["instance"]>, Extends<[IsArr], [true | 1], Extends<[IsUser], [true | 1], UserProfile["json"][], UserProfile["preview"][]>, Extends<[IsUser], [true | 1], UserProfile["json"], UserProfile["preview"]>>>; export declare type UserProfileSocials = { s1: "fb"; s2: "twtr"; s3: "goog"; s4: "reddit"; s5: "pin"; }; export declare const UserProfileSocials: UserProfileSocials; export declare type UserProfileStats = { s1: "views"; }; export declare const UserProfileStats: UserProfileStats; export declare type UserProfileActions = { a1: "create-profile"; a2: "update-profile"; a3: "update-profile-pic"; a4: "sent-message"; }; export declare const UserProfileActions: UserProfileActions; export declare type UserProfileSettings = { optionsOnly: boolean; withBal: boolean; };