/**
 * @license
 * Copyright 2026 Amodal Labs, Inc.
 * SPDX-License-Identifier: MIT
 */
/**
 * @amodalai/studio — public API.
 *
 * Exports the backend interface, types, auth hooks, startup hooks,
 * error classes, and utilities that external deployments (e.g. cloud-studio)
 * need to build on top of Studio.
 */
export type { StudioBackend } from "./backend.js";
export { DrizzleStudioBackend } from "./drizzle-backend.js";
export type { DrizzleStudioBackendOptions } from "./drizzle-backend.js";
export type { DraftFile, PublishResult, PreviewResult, WorkspaceFile, WorkspaceBundle, BatchChange, BatchChangeAction, BatchRequest, BatchResponse, StudioUser, StudioDeploy, StudioDeployListResponse, ChangeProposal, } from "./types.js";
export type { StudioAuth } from "./auth.js";
export { getUser, setAuthProvider } from "./auth.js";
export type { BackendFactory } from "./startup.js";
export { getBackend, setBackendFactory, resetBackend } from "./startup.js";
export { StudioError, StudioStorageError, StudioPublishError, StudioPathError, StudioValidationError, StudioNotFoundError, StudioFeatureUnavailableError, } from "./errors.js";
export { validateDraftPath } from "./draft-path.js";
export { logger } from "./logger.js";
export type { Logger } from "./logger.js";
export { setStudioDbProvider } from "./db.js";
export { disableEventBridge } from "./event-bridge.js";
export { getDeployBackend, setDeployBackend } from "./deploy-backend.js";
export { getGeneralSettingsBackend, setGeneralSettingsBackend, } from "./general-settings-backend.js";
export type { GeneralSettings, GeneralSettingsBackend, GeneralSettingsUpdate, } from "./general-settings-backend.js";
export { getSourceSettingsBackend, setSourceSettingsBackend, } from "./source-settings-backend.js";
export type { SourceConnectInput, SourceSettingsBackend, SourceSettingsOperation, } from "./source-settings-backend.js";
export type { SourceConnectionStatus, SourceGitStatus, SourceRefInfo, SourceRepository, SourceSettings, SourceSettingsResponse, } from "./source-settings-shape.js";
export { getDomainsBackend, setDomainsBackend } from "./domains-backend.js";
export type { DomainsBackend } from "./domains-backend.js";
export type { ApprovedDomain, CustomDomain, CustomDomainCapabilities, CustomDomainOperationResponse, CustomDomainOperationResult, DomainsSettings, DomainsSettingsResponse, } from "./domains-shape.js";
export { getApiKeysBackend, setApiKeysBackend } from "./api-keys-backend.js";
export type { ApiKeysBackend, StudioApiKeysCreateInput, } from "./api-keys-backend.js";
export type { StudioApiKey, StudioApiKeysCreateResponse, StudioApiKeysDeleteResponse, StudioApiKeysListResponse, } from "./api-keys-shape.js";
export { getSecretsBackend, setSecretsBackend, validateSecretName, } from "./secrets-backend.js";
export type { ListSecretsOptions, SecretOrigin, SecretsBackend, SecretValueResult, StudioSecret, } from "./secrets-backend.js";
export type { DeployBackend } from "./deploy-backend.js";
export { getAutomationsBackend, setAutomationsBackend, } from "./automations-backend.js";
export type { AutomationsBackend, StudioAutomation, StudioAutomationDetailResponse, StudioAutomationMutationResponse, StudioAutomationOperations, StudioAutomationRun, StudioAutomationRunInput, StudioAutomationsListResponse, StudioAutomationUpsertInput, } from "./automations-backend.js";
export { classifyStudioRuntimePath, normalizeStudioRuntimePath, runtimeBoundaryUsesSelectedDeploy, runtimePathUsesSelectedDeploy, studioRuntimeProxyPath, } from "./runtime-route-boundaries.js";
export type { StudioRuntimeRouteBoundary } from "./runtime-route-boundaries.js";
export { getChangeProposalBackend, setChangeProposalBackend, } from "./change-proposal-backend.js";
export type { ChangeProposalBackend, CreateChangeProposalInput, CommitProposalChangesInput, DeploySourceInput, } from "./change-proposal-backend.js";
