/** * User provider interface for authentication. * Enables user awareness in Studio. */ /** * Base user type for authentication. */ export interface User { /** Unique user identifier */ id: string; /** User email address */ email?: string; /** Display name */ name?: string; /** Avatar URL */ avatarUrl?: string; } /** * Provider interface for user awareness in Studio. * * Implement this interface to enable: * - Current user display in header * - User menu with profile info * - User context in API calls * * @example * ```typescript * class MyUserProvider implements IUserProvider { * async getCurrentUser(request: Request) { * const session = await this.getSession(request); * if (!session) return null; * return this.db.getUser(session.userId); * } * * async getUser(userId: string) { * return this.db.getUser(userId); * } * } * ``` */ export interface IUserProvider { /** * Get current user from request (session cookie, token, etc.) * * @param request - Incoming HTTP request * @returns User object or null if not authenticated */ getCurrentUser(request: Request): Promise; /** * Get user by ID. * * @param userId - User identifier * @returns User object or null if not found */ getUser(userId: string): Promise; /** * Optional: Get URL to user's profile page. * * @param user - User object * @returns URL string to profile */ getUserProfileUrl?(user: TUser): string; } //# sourceMappingURL=user.d.ts.map