/* Spacebar: A FOSS re-implementation and extension of the Discord.com backend. Copyright (C) 2023 Spacebar and Spacebar Contributors This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program. If not, see . */ // TODO: clean up util imports import { GeneralConfiguration, LimitsConfiguration } from "../../util/config/types"; import { DmChannelDTO } from "../../util/dtos"; // TODO: remove entity imports import { Application, Categories, Channel, Guild, Invite, Template } from "@spacebar/database"; import { GuildCreateResponse, PrivateUser, PublicUser } from "@spacebar/schemas"; // TODO: remove this entire file! // removes internal properties from the guild class export type APIGuild = Omit; export type APIPublicUser = PublicUser; export type APIPrivateUser = PrivateUser; export type APIGuildArray = APIGuild[]; export type APIDMChannelArray = DmChannelDTO[]; export interface UserUpdateResponse extends APIPrivateUser { newToken?: string; } export type ApplicationDetectableResponse = unknown[]; export type ApplicationEntitlementsResponse = unknown[]; export type ApplicationSkusResponse = unknown[]; export type APIApplicationArray = Application[]; export type APIInviteArray = Invite[]; export type APIDiscoveryCategoryArray = Categories[]; export type APIChannelArray = Channel[]; export interface APIGuildWithJoinedAt extends GuildCreateResponse { joined_at: string; } export type APITemplateArray = Template[]; export type APIGeneralConfiguration = GeneralConfiguration; export type APILimitsConfiguration = LimitsConfiguration; export type APIConnectionsConfiguration = Record< string, { enabled: boolean; } >;