import { type ApiAppManagerRemovedAll, type ApiAppManagerRestartedAll, type ApiAppManagerStartedAll, type ApiAppManagerStopedAll, type ApiConsoleAppShell, type ApiTerminal, type RESTPutApiAppCommitResult } from "@discloudapp/api-types/v2"; import { type CreateAppOptions, type UpdateAppOptions } from "../@types"; import type DiscloudApp from "../discloudApp/DiscloudApp"; import App from "../structures/App"; import AppBackup from "../structures/AppBackup"; import AppUploaded from "../structures/AppUploaded"; import { ProfileOptions } from "../util/validations"; import AppsAptsManager from "./AppsAptsManager"; import AppsModeratorsManager from "./AppsModeratorsManager"; import AppsStatusManager from "./AppsStatusManager"; import BaseAppsManager from "./BaseAppsManager"; /** * Manager for apps on Discloud */ export default class AppsManager extends BaseAppsManager { #private; constructor(discloudApp: DiscloudApp); readonly apts: AppsAptsManager; readonly moderators: AppsModeratorsManager; readonly status: AppsStatusManager; /** * Send a command to your app's terminal * * @param appID - Your app id * @param command - The command */ console(appID: string, command: string): Promise; /** * Get logs of your application on Discloud * * @param appID - Your app id */ terminal(appID: string): Promise; terminal(appID: "all"): Promise>; /** * Get backups of your application on Discloud * * @param appID - Your app id */ backup(appID: string): Promise; backup(appID: "all"): Promise>; /** * Set the quantity of ram to your application * * @param appID - Your app id * @param quantity - Minimum values is `100` to `bot` or `512` for `site` */ ram(appID: string, quantity: number): Promise; /** * Upload a new app or site to Discloud * * @param options - Options for create a new app. A {@link FileResolvable} is required. */ create(options: CreateAppOptions): Promise; /** * Update an of your apps on Discloud. * * @param appID - Your app id * @param options - Options to update your app. */ update(appID: string, options: UpdateAppOptions): Promise; /** * Delete your application from Discloud. * * @param appID - Your app id */ delete(appID: string): Promise; delete(appID: "all"): Promise; /** * Update the profile of your apps on Discloud. * * @param appID - Your app id * @param options - Options to update your app. */ profile(appID: string, options: ProfileOptions): Promise; /** * Restart your application on Discloud * * @param appID - You app id */ restart(appID: string): Promise; restart(appID: "all"): Promise; /** * Start your application on Discloud * * @param appID - You app id */ start(appID: string): Promise; start(appID: "all"): Promise; /** * Stop your application on Discloud * * @param appID - You app id */ stop(appID: string): Promise; stop(appID: "all"): Promise; /** * Get information of your application on Discloud. * * @param appID - You app id. */ fetch(appID: string): Promise; fetch(appID?: "all"): Promise>; }