///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
///
import { Document, Types } from 'mongoose';
type TAccountType = 'user' | 'organization';
type TContactInfoType = 'email-address' | 'mobile-number' | 'telephone' | 'app-admin';
type TLimitedTransactionType = 'signin' | 'otp-signin' | 'forgot-pass' | 'reset-pass' | 'verify-contact';
type TAccountInfoType = 'string' | 'number' | 'date' | 'datetime' | 'boolean';
type TAccountConfigType = 'string' | 'number' | 'date' | 'datetime' | 'boolean';
declare const acountTypes: TAccountType[];
declare const contactInfoTypes: TContactInfoType[];
declare const limitedTransactionTypes: TLimitedTransactionType[];
declare const accountInfoTypes: TAccountInfoType[];
declare const accountConfigTypes: TAccountConfigType[];
interface IAccountQuery {
_id?: string;
nameId?: string;
}
interface IAccountUpdate {
name?: string;
}
interface IRoleRef {
_id?: string;
roleId: string;
}
interface IPassword {
_id?: string;
key: string;
expTime?: Date;
isActive?: boolean;
}
interface IContactInfo {
_id?: string;
type: TContactInfoType;
value: string;
countryCode?: string;
verified?: boolean;
}
interface IAccessToken {
_id?: string;
jwt: string;
description?: string;
expTime?: Date;
ipAddress?: string;
disabled?: boolean;
}
interface IClientDevice {
_id?: string;
ua: string;
accessTokens?: Types.DocumentArray;
description?: string;
disabled?: boolean;
}
interface ILimitedTransaction {
_id?: string;
limit: number;
attempts: number;
type: TLimitedTransactionType;
key?: string;
value?: string;
expTime?: Date;
recipient?: string;
disabled?: boolean;
}
interface IAccountInfo {
_id?: string;
key: string;
value: string;
type: TAccountInfoType;
}
interface IAccountConfig {
_id?: string;
key: string;
value: string;
type: TAccountInfoType;
}
interface IWorkspaceAccountRef {
_id?: string;
accountId: string;
readAccess?: boolean;
updateAccess?: boolean;
createAccess?: boolean;
deleteAccess?: boolean;
declined?: boolean;
accepted?: boolean;
disabled?: boolean;
}
interface IWorkspace {
_id?: string;
name: string;
description?: string;
accountRefs?: Types.DocumentArray;
disabled?: boolean;
}
interface IAccount {
_id?: string;
accountType?: TAccountType;
nameId: string;
rolesRefs: Types.DocumentArray;
accountInfos: Types.DocumentArray;
accountConfigs: Types.DocumentArray;
passwords: Types.DocumentArray;
contactInfos: Types.DocumentArray;
clientDevices: Types.DocumentArray;
limitedTransactions: Types.DocumentArray;
workspaces: Types.DocumentArray;
disabled?: boolean;
verified?: boolean;
}
declare const AccountModel: import("mongoose").Model & Omit, never>, any>;
export { acountTypes, contactInfoTypes, limitedTransactionTypes, accountInfoTypes, accountConfigTypes, IAccountQuery, IAccountUpdate, TAccountType, TContactInfoType, TLimitedTransactionType, TAccountInfoType, TAccountConfigType, IPassword, IContactInfo, IAccessToken, IClientDevice, ILimitedTransaction, IAccountInfo, IAccountConfig, IRoleRef, IWorkspaceAccountRef, IWorkspace, IAccount };
export default AccountModel;