Repository: discordjs/discord.js
File: packages/discord.js/typings/index.d.ts (TypeScript)

Code before:
    options: MessagePayload | MessageReplyOptions | string,
  ): Promise<OmitPartialGroupDMChannel<Message<InGuild>>>;
  public forward(
    channel: Exclude<TextBasedChannelResolvable, PartialGroupDMChannel>,
  ): Promise<OmitPartialGroupDMChannel<Message>>;
  public resolveComponent(customId: string): MessageActionRowComponent | null;
  public startThread(options: StartThreadOptions): Promise<PublicThreadChannel<false>>;
  public suppressEmbeds(suppress?: boolean): Promise<OmitPartialGroupDMChannel<Message<InGuild>>>;
  public toJSON(): unknown;
  public toString(): string;
  public unpin(reason?: string): Promise<OmitPartialGroupDMChannel<Message<InGuild>>>;
  public inGuild(): this is Message<true>;
}

export class AuthorizingIntegrationOwners extends Base {
  private constructor(client: Client<true>, data: APIAuthorizingIntegrationOwnersMap);
  private readonly data: APIAuthorizingIntegrationOwnersMap;

  // Getters from types
  public readonly [ApplicationIntegrationType.GuildInstall]?: Snowflake;
  public readonly [ApplicationIntegrationType.UserInstall]?: Snowflake;

  public readonly guildId: Snowflake | null;
  public readonly guild: Guild | null;
  public readonly userId: Snowflake | null;
  public readonly user: User | null;

  public toJSON(): APIAuthorizingIntegrationOwnersMap;
}

export class Attachment {
  private constructor(data: APIAttachment);
  private readonly attachment: BufferResolvable | Stream;
  public contentType: string | null;
  public description: string | null;
  public duration: number | null;
  public ephemeral: boolean;
  public flags: AttachmentFlagsBitField;
  public height: number | null;
  public id: Snowflake;
  public name: string;
  public proxyURL: string;
  public size: number;
  public get spoiler(): boolean;
  public title: string | null;
  public url: string;
  public waveform: string | null;
  public width: number | null;
  public toJSON(): unknown;
}


Review comment (suggestion):
```suggestion
  public get user(): User | null;
```

Code after:
    options: MessagePayload | MessageReplyOptions | string,
  ): Promise<OmitPartialGroupDMChannel<Message<InGuild>>>;
  public forward(
    channel: Exclude<TextBasedChannelResolvable, PartialGroupDMChannel>,
  ): Promise<OmitPartialGroupDMChannel<Message>>;
  public resolveComponent(customId: string): MessageActionRowComponent | null;
  public startThread(options: StartThreadOptions): Promise<PublicThreadChannel<false>>;
  public suppressEmbeds(suppress?: boolean): Promise<OmitPartialGroupDMChannel<Message<InGuild>>>;
  public toJSON(): unknown;
  public toString(): string;
  public unpin(reason?: string): Promise<OmitPartialGroupDMChannel<Message<InGuild>>>;
  public inGuild(): this is Message<true>;
}

export class AuthorizingIntegrationOwners extends Base {
  private constructor(client: Client<true>, data: APIAuthorizingIntegrationOwnersMap);
  private readonly data: APIAuthorizingIntegrationOwnersMap;

  // Getters from types
  public readonly [ApplicationIntegrationType.GuildInstall]?: Snowflake;
  public readonly [ApplicationIntegrationType.UserInstall]?: Snowflake;

  public readonly guildId: Snowflake | null;
  public get guild(): Guild | null;
  public readonly userId: Snowflake | null;
  public get user(): User | null;

  public toJSON(): APIAuthorizingIntegrationOwnersMap;
}

export class Attachment {
  private constructor(data: APIAttachment);
  private readonly attachment: BufferResolvable | Stream;
  public contentType: string | null;
  public description: string | null;
  public duration: number | null;
  public ephemeral: boolean;
  public flags: AttachmentFlagsBitField;
  public height: number | null;
  public id: Snowflake;
  public name: string;
  public proxyURL: string;
  public size: number;
  public get spoiler(): boolean;
  public title: string | null;
  public url: string;
  public waveform: string | null;
  public width: number | null;
  public toJSON(): unknown;
}