import { H as HttpClientConfig } from './types-C8x5GGVP.cjs'; import { ContentstackRegion } from './regions/index.cjs'; /** * All available Contentstack OAuth scopes. * * Sourced from the Developer Hub API (`/manifests/oauth/scopes` endpoint). * * Use `OAUTH_SCOPE_DESCRIPTIONS` for human-readable explanations of each scope. * Use `OAUTH_SCOPE_PRESETS` for common scope combinations. * * @see https://www.contentstack.com/docs/developers/developer-hub/oauth-scopes */ type ContentstackOAuthScope = "app.manifests:read" | "app.manifest:read" | "app.manifest:write" | "app.hosting:read" | "app.hosting:write" | "app.installations:read" | "app.installations.management:read" | "app.installations.management:write" | "app.authorizations:manage" | "app.authorizations.management:write" | "app.requests:write" | "app.requests.management:write" | "scim:manage" | "user.profile:read" | "user:read" | "user:write" | "user.tfa:write" | "user.assignments:read" | "user.assignments:write" | "user.notifications:read" | "user.notifications:write" | "organizations:read" | "organization:read" | "organization.roles:read" | "organization.share:read" | "organization.share:write" | "organization.ownership:write" | "organization.settings:write" | "organization.logs:read" | "organization.usage:read" | "organization.jobs:read" | "organization.jobs:write" | "cm.stacks.management:read" | "cm.stacks.management:write" | "cm.stack.management:read" | "cm.stack.management:write" | "cm.stack.settings:read" | "cm.stack.settings:write" | "cm.stack:share" | "cm.stack:unshare" | "cm.stack.users:read" | "cm.stack.users:write" | "cm.stack.delivery-tokens:read" | "cm.stack.delivery-tokens:write" | "cm.stack.management-tokens:read" | "cm.stack.management-tokens:write" | "cm.content-types.management:read" | "cm.content-types.management:write" | "cm.content-types:import" | "cm.content-types:export" | "cm.content-type:read" | "cm.content-type:write" | "cm.content-type:copy" | "cm.global-fields.management:read" | "cm.global-fields.management:write" | "cm.global-fields:import" | "cm.global-fields:export" | "cm.entries.management:read" | "cm.entries.management:write" | "cm.entries:import" | "cm.entries:export" | "cm.entry:read" | "cm.entry:write" | "cm.entry:publish" | "cm.entry:unpublish" | "cm.entry.workflow:write" | "cm.webhooks.management:read" | "cm.webhooks.management:write" | "cm.webhooks:import" | "cm.webhooks:export" | "cm.webhook:read" | "cm.webhook:write" | "cm.assets.management:read" | "cm.assets.management:write" | "cm.assets.rt:read" | "cm.assets.rt:write" | "cm.assets:download" | "cm.asset:read" | "cm.asset:write" | "cm.asset:publish" | "cm.asset:unpublish" | "cm.workflows.management:read" | "cm.workflows.management:write" | "cm.workflows.publishing-rules:read" | "cm.workflows.publishing-rules:write" | "cm.environments.management:read" | "cm.environments.management:write" | "cm.extensions.management:read" | "cm.extensions.management:write" | "cm.languages.management:read" | "cm.languages.management:write" | "cm.labels.management:read" | "cm.labels.management:write" | "cm.bulk-operations:publish" | "cm.bulk-operations:unpublish" | "cm.bulk-operations:add-to-release" | "cm.bulk-operations:delete" | "cm.bulk-operations:move-to-folder" | "cm.bulk-operations:workflow" | "cm.releases.management:read" | "cm.releases.management:write" | "cm.release:read" | "cm.release:write" | "cm.release:clone" | "cm.release:deploy" | "cm.roles.management:read" | "cm.roles.management:write" | "cm.audit-logs:read" | "cm.publish-queue.management:read" | "cm.publish-queue.management:write" | "personalize:read" | "personalize:manage" | "cm.taxonomies.management:read" | "cm.taxonomies.management:write" | "cm.taxonomy.terms:read" | "cm.taxonomy.terms:write" | "cm.branches.management:read" | "cm.branches.management:write" | "cm.branches:compare-merge" | "cm.branch-aliases.management:read" | "cm.branch-aliases.management:write" | "launch:manage" | "launch.projects:read" | "launch.projects:write" | "launch.projects:delete" | "launch.gitproviders:manage" | "automationhub.projects.management:read" | "automationhub.projects.management:write" | "automationhub.automations:read" | "automationhub.automations:write" | "automationhub.executions:read" | "automationhub.audit-logs:read" | "automationhub.variables:read" | "automationhub.variables:write" | "automationhub.accounts:read" | "brand-kits:read" | "brand-kits:manage" | "cm.variant:read" | "cm.variant:write" | "analytics:read" | "auditlogs:read" | "teams:read" | "teams:write"; /** * Human-readable descriptions for every Contentstack OAuth scope. * * Sourced from the Developer Hub API (`/manifests/oauth/scopes` endpoint). * * @example * ```ts * import { OAUTH_SCOPE_DESCRIPTIONS } from "@timbenniks/contentstack-platform-sdk/auth" * * // Get description for a scope * console.log(OAUTH_SCOPE_DESCRIPTIONS["cm.entries.management:read"]) * // → "View all entries" * ``` */ declare const OAUTH_SCOPE_DESCRIPTIONS: Record; /** * Pre-built scope combinations for common use cases. * * Each preset includes `user:read` as a baseline since it is required * for all OAuth flows that need user profile information. * * @example * ```ts * import { OAUTH_SCOPE_PRESETS } from "@timbenniks/contentstack-platform-sdk/auth" * * const config: OAuthConfig = { * scopes: OAUTH_SCOPE_PRESETS.cmsAuthoring, * // ... * } * ``` */ declare const OAUTH_SCOPE_PRESETS: { /** Minimal: only read the authenticated user's profile. */ readOnly: readonly ["user:read"]; /** Read content types, entries, and assets. */ contentReader: readonly ["user:read", "cm.content-types.management:read", "cm.entries.management:read", "cm.assets.management:read"]; /** Read and write entries and assets; read content types. */ cmsAuthoring: readonly ["user:read", "cm.content-types.management:read", "cm.entries.management:read", "cm.entries.management:write", "cm.entry:publish", "cm.entry:unpublish", "cm.assets.management:read", "cm.assets.management:write", "cm.asset:publish", "cm.asset:unpublish"]; /** CMS authoring plus taxonomy management. */ cmsAuthoringWithTaxonomies: readonly ["user:read", "cm.content-types.management:read", "cm.entries.management:read", "cm.entries.management:write", "cm.entry:publish", "cm.entry:unpublish", "cm.assets.management:read", "cm.assets.management:write", "cm.asset:publish", "cm.asset:unpublish", "cm.taxonomies.management:read", "cm.taxonomies.management:write", "cm.taxonomy.terms:read", "cm.taxonomy.terms:write"]; /** Brand Kit: read and manage voice profiles and knowledge vault. */ brandKit: readonly ["user:read", "brand-kits:read", "brand-kits:manage"]; /** Launch: manage projects and deployments. */ launch: readonly ["user:read", "launch:manage", "launch.projects:read", "launch.projects:write", "launch.projects:delete"]; /** Personalization: read and manage experiences. */ personalization: readonly ["user:read", "personalize:read", "personalize:manage"]; /** Developer Hub: read and manage apps, installations, authorizations, and hosting. */ developerHub: readonly ["user:read", "app.manifests:read", "app.manifest:read", "app.manifest:write", "app.hosting:read", "app.hosting:write", "app.installations:read", "app.installations.management:read", "app.installations.management:write", "app.authorizations:manage", "app.authorizations.management:write", "app.requests:write", "app.requests.management:write"]; /** Automation Hub: manage automations and variables. */ automationHub: readonly ["user:read", "automationhub.projects.management:read", "automationhub.projects.management:write", "automationhub.automations:read", "automationhub.automations:write", "automationhub.executions:read", "automationhub.variables:read", "automationhub.variables:write", "automationhub.accounts:read"]; }; interface OAuthConfig { region: ContentstackRegion; appId: string; clientId: string; clientSecret: string; scopes: ContentstackOAuthScope[]; redirectUri: string; } interface OAuthTokens { accessToken: string; refreshToken: string; expiresIn: number; tokenType: string; } interface AuthHttpOptions extends Pick { } interface ContentstackCredentials { email: string; password: string; otp?: string; tfaToken?: string; } interface ContentstackCredentialsSession { authtoken: string; user: ContentstackUser; notice?: string; } interface ContentstackUser { uid: string; email: string; firstName?: string; lastName?: string; username?: string; profileImage?: string; } export { type AuthHttpOptions as A, type ContentstackCredentials as C, OAUTH_SCOPE_DESCRIPTIONS as O, type ContentstackCredentialsSession as a, type ContentstackOAuthScope as b, type ContentstackUser as c, OAUTH_SCOPE_PRESETS as d, type OAuthConfig as e, type OAuthTokens as f };