import { errors } from '@strapi/utils'; import type { File } from 'formidable'; export interface Logo { name: string; url: string; width: number; height: number; ext: string; size: number; } /** * /init - Initialize the admin panel */ export declare namespace Init { export interface Request { body: {}; query: {}; } export interface Response { data: { uuid: string | false; hasAdmin: boolean; menuLogo: string | null; authLogo: string | null; }; error?: errors.ApplicationError; } } /** * /project-settings - Get the project settings */ export declare namespace GetProjectSettings { export interface Request { body: {}; query: {}; } export interface Response { menuLogo: Logo; authLogo: Logo; error?: errors.ApplicationError; } } /** * /project-settings - Update the project settings */ export declare namespace UpdateProjectSettings { export interface Request { body: { menuLogo: Logo | null; authLogo: Logo | null; }; query: {}; files: { menuLogo?: File | null; authLogo?: File | null; }; } export interface Response { menuLogo: Partial; authLogo: Partial; error?: errors.ApplicationError | errors.YupValidationError; } } /** * /information - get project information */ export declare namespace Information { export interface Request { body: {}; query: {}; } export interface Response { data: { currentEnvironment: string; autoReload: boolean; strapiVersion: string | null; dependencies: Record; projectId: string | null; nodeVersion: string; communityEdition: boolean; useYarn: boolean; }; error?: errors.ApplicationError; } } /** * /telemetry-properties - get telemetry properties */ export declare namespace TelemetryProperties { export interface Request { body: {}; query: {}; } export interface Response { data: { useTypescriptOnServer: boolean; useTypescriptOnAdmin: boolean; isHostedOnStrapiCloud: boolean; numberOfAllContentTypes: number; numberOfComponents: number; numberOfDynamicZones: number; }; error?: errors.ApplicationError; } } /** * /plugins - get plugin information */ export declare namespace Plugins { interface Plugin { name: string; displayName: string; description: string; } export interface Request { body: {}; query: {}; } export interface Response { plugins: Plugin[]; error?: errors.ApplicationError; } } /** * /providers/options - Single Sign On setting options */ export declare namespace ProvidersOptions { interface SSOProviderOptions { autoRegister: boolean; defaultRole: string | null; ssoLockedRoles: string[] | null; } export interface Request { body: SSOProviderOptions; query: {}; } export interface Response { data: SSOProviderOptions; error?: errors.ApplicationError | errors.ValidationError | errors.YupValidationError; } } /** * /license-limit-information – get license limit information */ export interface SSOFeature { name: 'sso'; } export interface AuditLogsFeature { name: 'audit-logs'; options: { retentionDays: number | null; }; } export interface ReviewWorkflowsFeature { name: 'review-workflows'; options?: { numberOfWorkflows: number | null; stagesPerWorkflow: number | null }; } export interface ContentReleasesFeature { name: 'cms-content-releases'; options?: { maximumReleases: number; }; } /** * TODO: this response needs refactoring because we're mixing the admin seat limit info with * regular EE feature info. */ export declare namespace GetLicenseLimitInformation { export interface Request { body: {}; query: {}; } export interface Response { data: { currentActiveUserCount: number; enforcementUserCount: number; features: (SSOFeature | AuditLogsFeature | ReviewWorkflowsFeature | ContentReleasesFeature)[]; isHostedOnStrapiCloud: boolean; licenseLimitStatus: unknown; permittedSeats: number; shouldNotify: boolean; shouldStopCreate: boolean; }; error?: errors.ApplicationError; } }