UNPKG

studiocms

Version:

Astro Native CMS for AstroDB. Built from the ground up by the Astro community.

617 lines (549 loc) 28.4 kB
declare module 'studiocms:logger' { export const logger: import('astro').AstroIntegrationLogger; export default logger; export const isVerbose: boolean; export const apiResponseLogger: ( status: number, message: string, // biome-ignore lint/suspicious/noExplicitAny: This is a valid use case for explicit any error?: Error | any ) => Response; } declare module 'studiocms:components/dashboard-grid-items' { export const dashboardGridItems: import('./schemas/plugins/shared').GridItemUsable[]; export default dashboardGridItems; } declare module 'studiocms:plugins/dashboard-pages/user' { const dashboardPages: import('./schemas/index').FinalDashboardPage[]; export default dashboardPages; } declare module 'studiocms:plugins/dashboard-pages/admin' { const dashboardPages: import('./schemas/index').FinalDashboardPage[]; export default dashboardPages; } declare module 'studiocms:plugins/endpoints' { export const apiEndpoints: { identifier: string; onCreate: import('astro').APIRoute | null; onEdit: import('astro').APIRoute | null; onDelete: import('astro').APIRoute | null; }[]; export const settingsEndpoints: { identifier: string; onSave: import('astro').APIRoute | null; }[]; } declare module 'studiocms:plugins/renderers' { export const pluginRenderers: { pageType: string; safePageType: string; }[]; } declare module 'studiocms:mailer' { type Mod = typeof import('./virtuals/mailer/index'); export const Mailer: Mod['Mailer']; // Table Def export const tsMailerConfig: import('./virtuals/mailer/index').tsMailerConfig; // Types export type tsMailer = import('./virtuals/mailer/index').tsMailer; export type tsMailerInsert = import('./virtuals/mailer/index').tsMailerInsert; export type TransporterConfig = import('./virtuals/mailer/index').TransporterConfig; export type MailerConfig = import('./virtuals/mailer/index').MailerConfig; export type MailOptions = import('./virtuals/mailer/index').MailOptions; export type MailerResponse = import('./virtuals/mailer/index').MailerResponse; } declare module 'studiocms:mailer/templates' { export const getTemplate: typeof import('./virtuals/mailer/template').getTemplate; export default getTemplate; } declare module 'studiocms:notifier' { type Mod = typeof import('./virtuals/notifier/index'); export const Notifications: Mod['Notifications']; export type UserNotification = import('./virtuals/notifier/index').UserNotification; export type EditorNotification = import('./virtuals/notifier/index').EditorNotification; export type AdminNotification = import('./virtuals/notifier/index').AdminNotification; export const notificationTypes: typeof import('./virtuals/notifier/index').notificationTypes; export const notificationTitleStrings: typeof import('./virtuals/notifier/index').notificationTitleStrings; } declare module 'studiocms:notifier/client' { export type UserNotificationOptions = import('./virtuals/notifier/client').UserNotificationOptions; export const getEnabledNotificationCheckboxes: typeof import('./virtuals/notifier/client').getEnabledNotificationCheckboxes; export const formatNotificationOptions: typeof import('./virtuals/notifier/client').formatNotificationOptions; } declare module 'studiocms:config' { export const config: import('./schemas/index.js').StudioCMSConfig; export default config; export const dashboardConfig: import('./schemas/index.js').StudioCMSConfig['features']['dashboardConfig']; export const authConfig: import('./schemas/index.js').StudioCMSConfig['features']['authConfig']; export const developerConfig: import('./schemas/index.js').StudioCMSConfig['features']['developerConfig']; export const sdk: import('./schemas/index.js').StudioCMSConfig['features']['sdk']; } declare module 'studiocms:version' { export const mod: string; export default mod; } declare module 'studiocms:ui/version' { export const mod: string; export default mod; } declare module 'studiocms:changelog' { export const mod: string; export default mod; } declare module 'studiocms:components' { export const FormattedDate: typeof import('./virtuals/components/FormattedDate.astro').default; export const Generator: typeof import('./virtuals/components/Generator.astro').default; } declare module 'virtual:studiocms/components/Editors' { export const editorKeys: string[]; } declare module 'studiocms:i18n/virtual' { export const availableTranslationFileKeys: string[]; export const availableTranslations: typeof import('./virtuals/i18n/v-files').availableTranslations; } declare module 'studiocms:i18n' { export type UiLanguageKeys = import('./virtuals/i18n/server').UiLanguageKeys; export type UiTranslations = import('./virtuals/i18n/server').UiTranslations; export const staticPaths: typeof import('./virtuals/i18n/server').staticPaths; export const getLangFromUrl: typeof import('./virtuals/i18n/server').getLangFromUrl; export const useTranslations: typeof import('./virtuals/i18n/server').useTranslations; export const useTranslatedPath: typeof import('./virtuals/i18n/server').useTranslatedPath; export const getCurrentURLPath: typeof import('./virtuals/i18n/server').getCurrentURLPath; export const switchLanguage: typeof import('./virtuals/i18n/server').switchLanguage; export const defaultLang: typeof import('./virtuals/i18n/server').defaultLang; export const LanguageSelector: typeof import('./virtuals/i18n/LanguageSelector.astro').default; } declare module 'studiocms:i18n/client' { export type UiTranslationKey = import('./virtuals/i18n/client').UiTranslationKey; export const $localeSettings: typeof import('./virtuals/i18n/client').$localeSettings; export const $locale: typeof import('./virtuals/i18n/client').$locale; export const format: typeof import('./virtuals/i18n/client').format; export const $i18n: typeof import('./virtuals/i18n/client').$i18n; export const baseTranslation: typeof import('./virtuals/i18n/client').baseTranslation; export const documentUpdater: typeof import('./virtuals/i18n/client').documentUpdater; export const makeTranslation: typeof import('./virtuals/i18n/client').makeTranslation; export const updateElmLabel: typeof import('./virtuals/i18n/client').updateElmLabel; export const defaultLang: typeof import('./virtuals/i18n/client').defaultLang; export const uiTranslationsAvailable: typeof import('./virtuals/i18n/client').uiTranslationsAvailable; export const pageHeaderUpdater: typeof import('./virtuals/i18n/client').pageHeaderUpdater; export const updateSelectElmLabel: typeof import('./virtuals/i18n/client').updateSelectElmLabel; export const updateElmPlaceholder: typeof import('./virtuals/i18n/client').updateElmPlaceholder; export const updateToggleElmLabel: typeof import('./virtuals/i18n/client').updateToggleElmLabel; } declare module 'studiocms:imageHandler/components' { export const CustomImage: typeof import('./virtuals/components/CustomImage.astro').default; } declare module 'studiocms:lib' { export const HeadConfigSchema: typeof import('./virtuals/lib/head.js').HeadConfigSchema; export const createHead: typeof import('./virtuals/lib/head.js').createHead; export const headDefaults: typeof import('./virtuals/lib/headDefaults.js').headDefaults; export const pathWithBase: typeof import('./virtuals/lib/pathGenerators.js').pathWithBase; export const fileWithBase: typeof import('./virtuals/lib/pathGenerators.js').fileWithBase; export const ensureLeadingSlash: typeof import('./virtuals/lib/pathGenerators.js').ensureLeadingSlash; export const ensureTrailingSlash: typeof import('./virtuals/lib/pathGenerators.js').ensureTrailingSlash; export const stripLeadingSlash: typeof import('./virtuals/lib/pathGenerators.js').stripLeadingSlash; export const stripTrailingSlash: typeof import('./virtuals/lib/pathGenerators.js').stripTrailingSlash; export const stripHtmlExtension: typeof import('./virtuals/lib/pathGenerators.js').stripHtmlExtension; export const ensureHtmlExtension: typeof import('./virtuals/lib/pathGenerators.js').ensureHtmlExtension; export const stripLeadingAndTrailingSlashes: typeof import('./virtuals/lib/pathGenerators.js').stripLeadingAndTrailingSlashes; export const getSluggedRoute: typeof import('./virtuals/lib/routeMap.js').getSluggedRoute; export const getEditRoute: typeof import('./virtuals/lib/routeMap.js').getEditRoute; export const getDeleteRoute: typeof import('./virtuals/lib/routeMap.js').getDeleteRoute; export const makeNonDashboardRoute: typeof import('./virtuals/lib/routeMap.js').makeNonDashboardRoute; export const makeDashboardRoute: typeof import('./virtuals/lib/routeMap.js').makeDashboardRoute; export const StudioCMSRoutes: typeof import('./virtuals/lib/routeMap.js').StudioCMSRoutes; export const urlGenFactory: typeof import('./virtuals/lib/urlGen.js').default; export type HeadConfig = import('./virtuals/lib/head.js').HeadConfig; export type HeadUserConfig = import('./virtuals/lib/head.js').HeadUserConfig; } declare module 'studiocms:plugins' { const mod: import('./plugins.js').SafePluginListType; export default mod; } declare module 'studiocms:plugin-helpers' { export type SettingsField = import('./plugins.js').SettingsField; export type SafePluginListType = import('./plugins.js').SafePluginListType; export type StudioCMSPlugin = import('./plugins.js').StudioCMSPlugin; export type StudioCMSPluginOptions = import('./plugins.js').StudioCMSPluginOptions; export type AvailableDashboardPages = import('./plugins.js').AvailableDashboardPages; export type FinalDashboardPage = import('./plugins.ts').FinalDashboardPage; export type DashboardPage = import('./plugins.js').DashboardPage; export const getPluginDashboardPages: typeof import('./virtuals/plugins/index.js').getPluginDashboardPages; export const frontendNavigation: typeof import('./virtuals/plugins/index.js').frontendNavigation; } declare module 'studiocms:component-registry' { /** * List of component keys that are registered in the component registry. */ export const componentKeys: string[]; /** * List of component properties that are registered in the component registry. * * Each entry in the array is an object with a `name` and `props` property. * The `props` property is an array of objects representing the properties of the component. */ export const componentProps: import('@withstudiocms/component-registry/types').ComponentRegistryEntry[]; } declare module 'studiocms:component-registry/runtime' { /** * Represents an entry in the component registry. * * Extends the `AstroComponentProps` interface to include additional metadata. * * @property safeName - A readonly string representing a safe, unique identifier for the component. */ export type ComponentRegistryEntry = import('@withstudiocms/component-registry/runtime').ComponentRegistryEntry; /** * Imports components by their keys from the 'studiocms:markdown-remark/user-components' module. * * @param keys - An array of strings representing the keys of the components to import. * @returns A promise that resolves to an object containing the imported components. * @throws {MarkdownRemarkError} If any component fails to import, an error is thrown with a prefixed message. * @deprecated This function is deprecated and will be removed in future versions. * Use `getRendererComponents` instead for importing components from the component registry. */ export const importComponentsKeys: typeof import('@withstudiocms/component-registry/runtime').importComponentsKeys; /** * @returns A promise that resolves to an object containing the imported components. */ export const getRendererComponents: typeof import('@withstudiocms/component-registry/runtime').getRendererComponents; /** * Returns the component registry entries. * * @returns {ComponentRegistryEntry[]} An object mapping safe component names to their registry entries. */ export const getRegistryComponents: typeof import('@withstudiocms/component-registry/runtime').getRegistryComponents; /** * List of component properties that are registered in the component registry. * * Each entry in the array is an object with a `name` and `props` property. * The `props` property is an array of objects representing the properties of the component. */ export const componentProps: import('@withstudiocms/component-registry/runtime').ComponentRegistryEntry[]; /** * Converts all underscores in a given string to hyphens. * * @param str - The input string containing underscores to be converted. * @returns A new string with all underscores replaced by hyphens. */ export const convertUnderscoresToHyphens: typeof import('@withstudiocms/component-registry/runtime').convertUnderscoresToHyphens; /** * Converts all hyphens in a given string to underscores. * * @param str - The input string containing hyphens to be converted. * @returns A new string with all hyphens replaced by underscores. */ export const convertHyphensToUnderscores: typeof import('@withstudiocms/component-registry/runtime').convertHyphensToUnderscores; export const setupRendererComponentProxy: typeof import('@withstudiocms/component-registry/runtime').setupRendererComponentProxy; export const createRenderer: typeof import('@withstudiocms/component-registry/runtime').createRenderer; } declare module 'studiocms:sdk' { type Mod = typeof import('./virtuals/sdk/index.js'); /** * The new Effect-TS based SDK implementation that replaces the deprecated SDK. * This unified SDK merges the normal and cached SDK functionalities. * * @example * ```ts * import { Effect } from 'studiocms/effect'; * import { SDKCore } from 'studiocms:sdk'; * * const db = Effect.gen(function* () { * const sdk = yield* SDKCore; * * return sdk.db; * }).pipe(Effect.provide(SDKCore.Default)); * ``` */ export const SDKCore: Mod['SDKCore']; /** * VanillaJS Version of the SDKCore. Most internal functions will still contain Effects, you can use `runSDK` from the 'studiocms:sdk' to run these as normal async functions * * @example * ```ts * import { SDKCoreJs, runSDK } from 'studiocms:sdk'; * * const pages = await runSDK(SDKCoreJs.GET.pages()); * ``` */ export const SDKCoreJs: Mod['SDKCoreJs']; /** * Utility function for running components of the SDKCoreJs * * @example * ```ts * import { SDKCoreJs, runSDK } from 'studiocms:sdk'; * * const pages = await runSDK(SDKCoreJs.GET.pages()); * ``` */ export const runSDK: Mod['runSDK']; } declare module 'studiocms:sdk/types' { // src/sdk/types/index export type UsePluginDataOptsBase<T> = import('./virtuals/sdk/types/index').UsePluginDataOptsBase<T>; export type UsePluginDataOpts<T> = import('./virtuals/sdk/types/index').UsePluginDataOpts<T>; export type UserPluginDataOptsImplementation<T> = import('./virtuals/sdk/types/index').UserPluginDataOptsImplementation<T>; export type PluginDataEntry<T> = import('./virtuals/sdk/types/index').PluginDataEntry<T>; export type JSONValidatorFn<T> = import('./virtuals/sdk/types/index').JSONValidatorFn<T>; export type EffectSchemaValidator<T> = import('./virtuals/sdk/types/index').EffectSchemaValidator<T>; export type ZodValidator<T> = import('./virtuals/sdk/types/index').ZodValidator<T>; export type ValidatorOptions<T> = import('./virtuals/sdk/types/index').ValidatorOptions<T>; export type CacheMap<K, V> = import('./virtuals/sdk/types/index').CacheMap<K, V>; export type PaginateInput = import('./virtuals/sdk/types/index').PaginateInput; export type MetaOnlyPageData = import('./virtuals/sdk/types/index').MetaOnlyPageData; export type PageDataReturnType<T> = import('./virtuals/sdk/types/index').PageDataReturnType<T>; export type PageDataCacheReturnType<T> = import('./virtuals/sdk/types/index').PageDataCacheReturnType<T>; export type diffItem = import('./virtuals/sdk/types/index').diffItem; export type diffReturn = import('./virtuals/sdk/types/index').diffReturn; export type DiffReturnType<T> = import('./virtuals/sdk/types/index').DiffReturnType<T>; export type FolderNode = import('./virtuals/sdk/types/index').FolderNode; export type FolderListItem = import('./virtuals/sdk/types/index').FolderListItem; export type AstroDBVirtualModule = import('./virtuals/sdk/types/index').AstroDBVirtualModule; export type CacheConfig = import('./virtuals/sdk/types/index').CacheConfig; export type ProcessedCacheConfig = import('./virtuals/sdk/types/index').ProcessedCacheConfig; export type ProcessedSDKConfig = import('./virtuals/sdk/types/index').ProcessedSDKConfig; export type BaseCacheObject = import('./virtuals/sdk/types/index').BaseCacheObject; export type PageDataCacheObject = import('./virtuals/sdk/types/index').PageDataCacheObject; export type MetaOnlyPageDataCacheObject = import('./virtuals/sdk/types/index').MetaOnlyPageDataCacheObject; export type SiteConfigCacheObject = import('./virtuals/sdk/types/index').SiteConfigCacheObject; export type VersionCacheObject = import('./virtuals/sdk/types/index').VersionCacheObject; export type FolderTreeCacheObject = import('./virtuals/sdk/types/index').FolderTreeCacheObject; export type FolderListCacheObject = import('./virtuals/sdk/types/index').FolderListCacheObject; export type addDatabaseEntryInsertPage = import('./virtuals/sdk/types/index').addDatabaseEntryInsertPage; export type CombinedUserData = import('./virtuals/sdk/types/index').CombinedUserData; export type CombinedPageData = import('./virtuals/sdk/types/index').CombinedPageData; export type DeletionResponse = import('./virtuals/sdk/types/index').DeletionResponse; export type PageInsert = import('./virtuals/sdk/types/index').PageInsert; export type MultiPageInsert = import('./virtuals/sdk/types/index').MultiPageInsert; // src/sdk/types/tableDefs export type SiteConfig = import('./virtuals/sdk/types/index').SiteConfig; export type PageDataStripped = import('./virtuals/sdk/types/index').PageDataStripped; export type PageDataReturnId = import('./virtuals/sdk/types/index').PageDataReturnId; export type PageContentReturnId = import('./virtuals/sdk/types/index').PageContentReturnId; export type PageDataTagsInsertResponse = import('./virtuals/sdk/types/index').PageDataTagsInsertResponse; export type PageDataCategoriesInsertResponse = import('./virtuals/sdk/types/index').PageDataCategoriesInsertResponse; export type DatabaseTables = import('./virtuals/sdk/types/index').DatabaseTables; export type SingleRank = import('./virtuals/sdk/types/index').SingleRank; export type CombinedRank = import('./virtuals/sdk/types/index').CombinedRank; export type AvailableLists = import('./virtuals/sdk/types/index').AvailableLists; // src/sdk/types/tsAlias export type tsPluginDataInsert = import('./virtuals/sdk/types/index').tsPluginDataInsert; export type tsPluginDataSelect = import('./virtuals/sdk/types/index').tsPluginDataSelect; export type tsEmailVerificationTokensInsert = import('./virtuals/sdk/types/index').tsEmailVerificationTokensInsert; export type tsEmailVerificationTokensSelect = import('./virtuals/sdk/types/index').tsEmailVerificationTokensSelect; export type tsNotificationSettingsInsert = import('./virtuals/sdk/types/index').tsNotificationSettingsInsert; export type tsNotificationSettingsSelect = import('./virtuals/sdk/types/index').tsNotificationSettingsSelect; export type tsUserResetTokensInsert = import('./virtuals/sdk/types/index').tsUserResetTokensInsert; export type tsUserResetTokensSelect = import('./virtuals/sdk/types/index').tsUserResetTokensSelect; export type tsPageFolderSelect = import('./virtuals/sdk/types/index').tsPageFolderSelect; export type tsPageFolderInsert = import('./virtuals/sdk/types/index').tsPageFolderInsert; export type tsUsersSelect = import('./virtuals/sdk/types/index').tsUsersSelect; export type tsUsersInsert = import('./virtuals/sdk/types/index').tsUsersInsert; export type tsUsersUpdate = import('./virtuals/sdk/types/index').tsUsersUpdate; export type tsOAuthAccountsSelect = import('./virtuals/sdk/types/index').tsOAuthAccountsSelect; export type tsSessionTableSelect = import('./virtuals/sdk/types/index').tsSessionTableSelect; export type tsSessionTableInsert = import('./virtuals/sdk/types/index').tsSessionTableInsert; export type tsPermissionsSelect = import('./virtuals/sdk/types/index').tsPermissionsSelect; export type tsPermissionsInsert = import('./virtuals/sdk/types/index').tsPermissionsInsert; export type tsPageDataSelect = import('./virtuals/sdk/types/index').tsPageDataSelect; export type tsPageDataInsert = import('./virtuals/sdk/types/index').tsPageDataInsert; export type tsPageDataTagsSelect = import('./virtuals/sdk/types/index').tsPageDataTagsSelect; export type tsPageDataTagsInsert = import('./virtuals/sdk/types/index').tsPageDataTagsInsert; export type tsPageDataCategoriesSelect = import('./virtuals/sdk/types/index').tsPageDataCategoriesSelect; export type tsPageDataCategoriesInsert = import('./virtuals/sdk/types/index').tsPageDataCategoriesInsert; export type tsPageContentSelect = import('./virtuals/sdk/types/index').tsPageContentSelect; export type tsPageContentInsert = import('./virtuals/sdk/types/index').tsPageContentInsert; export type tsDiffTrackingSelect = import('./virtuals/sdk/types/index').tsDiffTrackingSelect; export type tsDiffTrackingInsert = import('./virtuals/sdk/types/index').tsDiffTrackingInsert; export type tsSiteConfigSelect = import('./virtuals/sdk/types/index').tsSiteConfigSelect; export type tsSiteConfigInsert = import('./virtuals/sdk/types/index').tsSiteConfigInsert; export type CombinedInsertContent = import('./virtuals/sdk/types/index').CombinedInsertContent; } declare module 'studiocms-dashboard:web-vitals' { export const getWebVitals: typeof import('./integrations/webVitals/webVital').getWebVitals; export type WebVitalsResponseItem = import('./integrations/webVitals/webVital').WebVitalsResponseItem; } declare module 'studiocms:auth/utils/validImages' { export const validImages: typeof import('./virtuals/auth/validImages/index.js').validImages; } declare module 'studiocms:auth/utils/getLabelForPermissionLevel' { export const getLabelForPermissionLevel: typeof import('./virtuals/auth/getLabelForPermissionLevel.js').getLabelForPermissionLevel; } declare module 'studiocms:auth/scripts/three' { /** * This module should be imported within a script tag. * @example <script>import "studiocms:auth/scripts/three";</script> */ // biome-ignore lint/suspicious/noExplicitAny: This is a valid use case for explicit any const defaultExport: any; export default defaultExport; } declare module 'studiocms:auth/lib' { type Mod = import('./virtuals/auth/index.js').Mod; const mod: Mod; export = mod; } declare module 'studiocms:auth/lib/types' { /** * Represents a table of OAuth accounts. * * @interface OAuthAccountsTable * @property {string} provider - The name of the OAuth provider (e.g., Google, Facebook). * @property {string} providerUserId - The unique identifier for the user provided by the OAuth provider. * @property {string} userId - The unique identifier for the user within the application. */ export type OAuthAccountsTable = import('./virtuals/auth/types.js').OAuthAccountsTable; /** * Interface representing a table of user permissions. * * @interface PermissionsTable * @property {string} user - The username of the individual. * @property {string} rank - The rank or role assigned to the user. */ export type PermissionsTable = import('./virtuals/auth/types.js').PermissionsTable; /** * Represents the session data for a user. * * @property {boolean} isLoggedIn - Indicates whether the user is logged in. * @property {UserTable | null} user - The user data, or null if no user is logged in. * @property {'owner' | 'admin' | 'editor' | 'visitor' | 'unknown'} permissionLevel - The permission level of the user. */ export type UserSessionData = import('./virtuals/auth/types.js').UserSessionData; /** * Represents a user session which includes user information and session details. * * @property {UserTable} user - The user data. * @property {SessionTable} session - The session data. */ export type UserSession = import('./virtuals/auth/types.js').UserSession; /** * Represents the result of validating a session token. * * This type can either be a valid `UserSession` or an object indicating an invalid session with both `session` and `user` properties set to `null`. */ export type SessionValidationResult = import('./virtuals/auth/types.js').SessionValidationResult; /** * Represents an individual refillable token bucket. * * @interface RefillBucket * @property {number} count - The current token count in the bucket. * @property {number} refillAt - The time at which the bucket was last refilled. */ export type RefillBucket = import('./virtuals/auth/types.js').RefillBucket; /** * Represents a bucket with an expiration mechanism. * * @interface ExpiringBucket * @property {number} count - The current token count in the bucket. * @property {number} createdAt - The timestamp when the bucket was created. */ export type ExpiringBucket = import('./virtuals/auth/types.js').ExpiringBucket; /** * Interface representing a throttling counter. * * @interface ThrottlingCounter * @property {number} timeout - The duration (in milliseconds) for which the throttling is applied. * @property {number} updatedAt - The timestamp (in milliseconds since epoch) when the throttling counter was last updated. */ export type ThrottlingCounter = import('./virtuals/auth/types.js').ThrottlingCounter; } declare module 'virtual:studiocms/plugins/renderers' {} declare module 'studiocms:renderer' { export const StudioCMSRenderer: typeof import('./virtuals/components/Renderer.astro').default; } declare module 'virtual:studiocms/sdk/env' { export const dbUrl: string; export const dbSecret: string; export const cmsEncryptionKey: string; } declare module 'virtual:studiocms/sitemaps' { export const sitemaps: string[]; } declare module 'studiocms:plugins/imageService' { export const imageServiceKeys: { identifier: string; safe: string; }[]; } declare module 'studiocms:plugins/auth/providers' { export type OAuthButtons = { enabled: boolean; safeName: string; label: string; image: string; }[]; /** * An array of objects representing OAuth provider buttons. * * Each object in the array contains: * - `enabled`: Indicates if the OAuth button is active. * - `safeName`: A safe, unique identifier for the OAuth provider. * - `label`: The display label for the OAuth button. * - `image`: The URL or path to the provider's logo image. */ export const oAuthButtons: OAuthButtons; export type OAuthProviders = { safeName: string; enabled: boolean; initSession: import('astro').APIRoute | null; initCallback: import('astro').APIRoute | null; }[]; /** * An array of OAuth provider configurations. * * Each object in the array represents a single OAuth provider and contains: * - `safeName`: A string representing a safe, unique identifier for the provider. * - `enabled`: A boolean indicating whether the provider is enabled. * - `initSession`: An Astro API route handler for initiating the OAuth session. * - `initCallback`: An Astro API route handler for handling the OAuth callback. */ export const oAuthProviders: OAuthProviders; } interface StudioCMSSecurityLocals { userSessionData: import('./virtuals/auth/types').UserSessionData; emailVerificationEnabled: boolean; userPermissionLevel: { isVisitor: boolean; isEditor: boolean; isAdmin: boolean; isOwner: boolean; }; } interface StudioCMSPluginLocals { editorCSRFToken: string; } interface StudioCMSLocals { SCMSGenerator: string; SCMSUiGenerator: string; siteConfig: import('./virtuals/sdk/types/index').SiteConfigCacheObject; routeMap: typeof import('./virtuals/lib/routeMap').StudioCMSRoutes; defaultLang: import('./virtuals/i18n/config').UiTranslationKey; latestVersion: import('./virtuals/sdk/types/index').VersionCacheObject; security?: StudioCMSSecurityLocals; plugins?: StudioCMSPluginLocals; } declare namespace App { interface Locals { StudioCMS: StudioCMSLocals; } }