import { Schema } from "mongoose"; import { EnumMap,IJson,IDocument,IObject,IInstance,IModel,IAction,IActionTypes } from "@onebro/oba-common"; export type OBAuthIdLastAction = "registered"|"set"|"verified"|"authenticated"|"reset"|"created"|"updated"; export type OBAuthIdParams = "email"|"handle"; export type OBAuthIdConfig = EnumMap; export type OBAuthIdType = IObject & OBAuthIdConfig & { action:OBAuthIdLastAction; verified?:Date; verification?:string; next?:string;}; export interface OBAuthIdDocument extends IDocument,OBAuthIdType {username:string;} export interface OBAuthId extends IInstance,OBAuthIdDocument { setCode(s:string):Promise; valid(s:string):Promise;} export interface OBAuthIdModel extends IModel {} export type OBAuthIdPulicKeys = "email"|"verified"|"next"; export type OBAuthIdPulicData = Pick; export type OBAuthIdJson = IJson & OBAuthIdPulicData & {token:string;}; export type OBAuthIdModelMap = {OBAuthId:OBAuthIdModel;}; export type OBAuthIdInstanceMap = {authId:OBAuthId;}; export type OBAuthIdSchemaMap = {authId:Schema;}; export type OBAuthIdActionTypes = IActionTypes; export type OBAuthIdActions = EnumMap;