import { type TimestampFields, type Address, type Contact, type mongodb } from '@unchainedshop/mongodb'; import type { DateFilterInput } from '@unchainedshop/utils'; export interface UserProfile { displayName?: string; birthday?: Date; phoneMobile?: string; gender?: string; address?: Address; } export interface UserLastLogin { timestamp?: Date; locale?: string; countryCode?: string; remoteAddress?: string; remotePort?: number; userAgent?: string; } export interface PushSubscriptionObject { userAgent: string; endpoint: string; expirationTime: number; keys: { auth: string; p256dh: string; }; } export interface Email { address: string; verified: boolean; } export type User = { _id: string; deleted?: Date | null; avatarId?: string; emails: Email[]; guest: boolean; initialPassword: boolean; lastBillingAddress?: Address; lastContact?: Contact; lastLogin?: UserLastLogin; profile?: UserProfile; roles: string[]; services: any; tags?: string[]; pushSubscriptions: PushSubscriptionObject[]; username?: string; meta?: any; } & TimestampFields; export interface UserQuery { includeGuests?: boolean; includeDeleted?: boolean; queryString?: string; emailVerified?: boolean; lastLogin?: DateFilterInput; tags?: string[]; userIds?: string[]; username?: string; usernames?: string[]; emails?: string[]; web3Verified?: boolean; } export declare const UsersCollection: (db: mongodb.Db) => Promise>;