feat: reimplement SessionManager

#1490
This commit is contained in:
Elysia
2025-02-07 19:21:27 +07:00
parent a4c8972144
commit 821df54c6f
5 changed files with 166 additions and 0 deletions

23
typings/index.d.ts vendored
View File

@@ -779,6 +779,7 @@ export class Client<Ready extends boolean = boolean> extends BaseClient {
public notes: UserNoteManager;
public relationships: RelationshipManager;
public voiceStates: VoiceStateManager;
public sessions: SessionManager;
public presences: PresenceManager;
public billing: BillingManager;
public settings: ClientUserSettingManager;
@@ -2449,6 +2450,12 @@ export class WebEmbed {
public static hiddenEmbed: string;
}
export class SessionManager extends CachedManager<string, Session, any> {
private constructor(client: Client, iterable: Iterable<any>);
public fetch(): Promise<this>;
public logoutAllDevices(): Promise<void>;
}
export class BillingManager extends BaseManager {
constructor(client: Client);
public paymentSources: Collection<Snowflake, object>;
@@ -2459,6 +2466,22 @@ export class BillingManager extends BaseManager {
public fetchCurrentSubscription(): Promise<Collection<Snowflake, object>>;
}
export class Session extends Base {
constructor(client: Client);
public id?: string;
public clientInfo?: SessionClientInfo;
public approxLastUsedTime: string;
public readonly createdTimestamp: number;
public readonly createdAt: Date;
public logout(): Promise<void>;
}
export interface SessionClientInfo {
location?: string;
platform?: string;
os?: string;
}
export class GuildBoost extends Base {
constructor(client: Client, data: object);
public id: Snowflake;