declare module "discord-dashboard" { let Dashboard: any const formTypes: formTypes const customPagesTypes: customPagesTypes const DISCORD_FLAGS: { Permissions: Permissions } const version: string } interface RateLimitSettingsObject { windowMs: Number max: Number message: String store?: any } interface Dashboard { new (config: { port: number client: { id: string secret: string } redirectUri: string domain: string bot: any theme: any settings: category[] requiredPermissions?: object, ownerIDs: array, useTheme404: boolean, useThemeMaintenance: boolean, acceptPrivacyPolicy?: boolean noCreateServer?: boolean SSL?: { enabled: boolean key: string cert: string } minimizedConsoleLogs?: boolean rateLimits?: { manage?: RateLimitSettingsObject guildPage?: RateLimitSettingsObject settingsUpdatePostAPI?: RateLimitSettingsObject discordOAuth2?: RateLimitSettingsObject } invite?: { clientId: string scopes: object permissions: string redirectUri: string otherParams: string } supportServer?: { slash: string inviteUrl: string } guildAfterAuthorization?: { use: boolean guildId: string options?: { nickname?: string roles?: [string] mute?: boolean deaf?: boolean } } reportError?: (where: string, what: any) => any assistantsSecureStorageKey?: string }): any DBDEvents: () => any init: () => Promise getApp: () => any useThirdPartyModule: (module: any) => any } interface category { categoryId: string categoryName: string categoryDescription: string categoryOptionsList: option[] } interface option { optionId?: string optionName?: string optionDescription?: string title?: string description?: string optionType: | { type: string data?: string | null function?: any min?: number | null max?: number | null disabled?: boolean | null required?: boolean | null themeOptions?: object | null } | string getActualSet?: (options: optionOptions) => Promise setNew?: (options: optionOptions) => Promise allowedCheck?: (options: allowedCheckOption) => Promise themeOptions?: Object } interface optionOptions { guild: { id: string } user: { id: string } newData: any } interface allowedCheckOption { guild: { id: string } user: { id: string } } interface formTypes { select: ( list: object, disabled?: boolean, themeOptions?: object ) => { type: string data: { keys: object values: object } disabled: boolean themeOptions: object } multiSelect: ( list: object, disabled?: boolean, required?: boolean, themeOptions?: object ) => { type: string data: { keys: object values: object } disabled: boolean | null required: boolean | null themeOptions: object } input: ( placeholder?: string, min?: number, max?: number, disabled?: boolean, required?: boolean, themeOptions?: object ) => { type: string data: string | null min: number | null max: number | null disabled: boolean | null required: boolean | null themeOptions: object | null } textarea: ( placeholder?: string, min?: number, max?: number, disabled?: boolean, required?: boolean, themeOptions?: object ) => { type: string data: string | null min: number | null max: number | null disabled: boolean | null required: boolean | null themeOptions: object | null } switch: ( disabled?: boolean, themeOptions?: object ) => { type: string disabled: boolean themeOptions: object } checkbox: ( disabled?: boolean, themeOptions?: object ) => { type: string disabled: boolean themeOptions: object } channelsSelect: ( disabled?: boolean, channelTypes?: string[], hideNSFW?: boolean, onlyNSFW?: boolean, hideNoAccess?: boolean, themeOptions?: object ) => { type: string function: (client: string, guildid: string) => any disabled: boolean themeOptions: object } channelsMultiSelect: ( disabled?: boolean, required?: boolean, channelTypes?: string[], hideNSFW?: boolean, onlyNSFW?: boolean, hideNoAccess?: boolean, themeOptions?: object ) => { type: string function: (client: string, guildid: string) => any disabled: boolean required: boolean themeOptions: object } rolesSelect: ( includeBots: boolean, disabled?: boolean, hideHigherRoles?: boolean, themeOptions?: object ) => { type: string function: (client: string, guildid: string) => any disabled: boolean themeOptions: object } rolesMultiSelect: ( includeBots: boolean, disabled?: boolean, required?: boolean, hideHigherRoles?: boolean, themeOptions?: object ) => { type: string function: (client: string, guildid: string) => any disabled: boolean required: boolean themeOptions: object } colorSelect: ( defaultState: string, disabled?: boolean, themeOptions?: object ) => { type: string data: string disabled: boolean themeOptions: object } embedBuilder: ( defaultSettings: object, themeOptions?: object ) => { type: string data: object themeOptions: object } } interface EmbedBuilder { content?: string embed: { title?: string description: string color?: string | number timestamp?: any url?: string author?: { name?: string url?: string icon_url?: string } thumbnail?: { url?: string } image?: { url?: string } footer?: { text?: string icon_url?: string } fields?: EmbedBuilderField[] } } interface EmbedBuilderField { name?: string value?: string inline?: boolean } interface customPagesTypes { redirectToUrl: ( endpoint: string, getDataFunction: any ) => { type: string endpoint: string getEndpoint: any } renderHtml: ( endpoint: string, getDataFunction: any ) => { type: string endpoint: string getHtml: any } sendJson: ( endpoint: string, getDataFunction: any ) => { type: string endpoint: string getJson: any } }