import { implFetchUser, type User } from '../../implementation/index.js'; import type Client from '../../index.js'; import { Subscription } from '../subscription/Subscription.js'; import { type SessionUserSchema } from './sessionUser.schema.js'; /** * The user who is logged in to this client. This is the user that is used to make authenticated requests to the FakeYou API. */ export declare class SessionUser implements User { /** * @param client The main client. * @param data The raw session user data from the FakeYou API. */ constructor(client: Client, data: SessionUserSchema); readonly client: Client; /** * The URL to the profile of the currently logged in user's profile. */ readonly webUrl: string; readonly token: string; readonly username: string; readonly displayName: string; readonly emailGravatarHash: string; readonly storytellerStreamPlan: string; readonly canUseTts: boolean; readonly canUseW2l: boolean; readonly canDeleteOwnTtsResults: boolean; readonly canDeleteOwnW2lResults: boolean; readonly canDeleteOwnAccount: boolean; readonly canUploadTtsModels: boolean; readonly canUploadW2lTemplates: boolean; readonly canDeleteOwnTtsModels: boolean; readonly canDeleteOwnW2lTemplates: boolean; readonly canApproveW2lTemplates: boolean; readonly canEditOtherUsersProfiles: boolean; readonly canEditOtherUsersTtsModels: boolean; readonly canEditOtherUsersW2lTemplates: boolean; readonly canDeleteOtherUsersTtsModels: boolean; readonly canDeleteOtherUsersTtsResults: boolean; readonly canDeleteOtherUsersW2lTemplates: boolean; readonly canDeleteOtherUsersW2lResults: boolean; readonly canBanUsers: boolean; readonly canDeleteUsers: boolean; /** * Fetch the profile of the currently logged in user which contains more information than the session user. * * @returns The profile of the currently logged in user. Undefined if no user is logged in. */ fetchProfile: typeof implFetchUser; /** * Fetch the subscription of the currently logged in user. * * @returns The subscription of the currently logged in user. Undefined if no user is logged in. */ fetchSubscription(): Promise; }