/// <reference path="./stx.d.ts" />
export type { Store, StoreOptions, PersistOptions, DefineStoreOptions } from './state-management';
export type { StxComponentInstance, EmitFn } from './composition-api';
export type { VNode } from './jsx-runtime';
export type { StxApp, StxApp as App, StxAppPlugin, StxPluginInput, StxAppConfig } from './app';
export type { StxPlugin, PluginContext, PluginSetupContext } from './plugin-system';
export type { DoctorCheck, DoctorReport, DoctorOptions, CheckStatus } from './doctor';
export type { StxStrictDiagnostic, StxStrictOptions, StxStrictRuleId } from './strict-lint';
export type {
  ExtractPropTypes,
  PropOptions,
  PropsDefinition,
  PropValidationError,
  PropValidationResult,
} from './props';
// ============================================================
// STX Core Exports
// Note: Some modules have overlapping exports. If you need specific
// items, import directly from the module (e.g., import { x } from 'stx/reactivity')
// ============================================================
// Explicit re-exports to resolve wildcard ambiguities
export { type BuildResult } from './build-optimizer';
export { type ComponentInstance } from './reactivity';
export { type HydrationOptions } from './hydration';
// `CookieOptions` is the user-facing type for the `useCookie()` composable —
// the most common consumer path. The route-middleware module (re-exported from
// stx-router) and the SSR module each have their own internal `CookieOptions`
// shapes with different field sets; those are kept private to their modules
// to avoid silently shadowing the user-facing one. Surfaced by stacksjs/stx#1707.
export { type CookieOptions } from './composables/use-cookie';
export { formatSize, getTotalSize } from './deploy/index';
export { type ImageRenderResult, type ImageVariant, type ProcessedImage, clearImageCache, getFallbackVariant, getMimeType, groupVariantsByFormat, optimizeImage, processImage } from './image-optimization/index';
export { type AnalysisResult } from './analyzer';
export { type AnalyzeOptions, type ChunkInfo } from './production-build';
// generateReport moved to stx/visual-testing
export { fileExists } from './utils';
export { type StreamingConfig } from './types';
export { type Middleware } from './ssr';
// Re-export the Icon-collection preloader so dev servers (e.g.
// bun-plugin-stx/serve) can warm the @iconify/json cache at boot. Without
// it the IconBuiltin returns a "collection not loaded" placeholder on
// the first render of every page after server start.
export { preloadIconCollection } from './builtins/index';
// Core functionality - these are the primary modules
export * from './reactivity';
export * from './head';
export * from './route-middleware';
export * from './runtime';
export * from './forms';
// Core modules
export * from './env';
export { getPublicEnv, getPublicEnvDefine } from './public-env';
export * from './a11y';
export * from './analytics';
export * from './analyzer';
export * from './animation';
export * from './assets';
export * from './app-shell';
export * from './async-components';
export * from './auth';
export * from './build';
export * from './build-assets';
export * from './build-mode-detector';
export * from './build-optimizer';
export * from './broadcasting';
export * from './caching';
export * from './components';
export * from './config';
// craft-bridge, craft-compiler, craft-components, craft-ssr, native-build
// moved to stx/craft
export * from './csp';
export * from './custom-directives';
// database moved to stx/database
export * from './defer';
export * from './deploy/index';
export * from './dev-server';
export * from './document-shell';
export * from './directive-api';
export * from './docs';
export * from './edge-runtime';
export * from './error-handling';
export * from './events';
export * from './expressions';
export * from './formatter';
export * from './heatmap';
export * from './hot-reload';
export * from './i18n';
export * from './includes';
export * from './init';
export * from './interactive';
export * from './keep-alive';
export * from './loops';
export * from './markdown';
export * from './middleware';
export * from './parser/index';
export * from './manifest';
export * from './placeholder';
export * from './process';
export * from './production-build';
export * from './production-builder';
export * from './production-server';
export * from './release';
export * from './router';
export * from './scaffolding';
export * from './script-classifier';
export * from './seo';
export * from './serve';
export * from './style-scoping';
export * from './template-compiler';
export * from './template-hydrator';
export * from './streaming';
export * from './suspense';
export * from './teleport';
export * from './transitions';
export * from './type-checker';
export * from './web-components';
export * from './virtual-scrolling';
export * from './partial-hydration';
export * from './hydration-runtime';
export * from './client';
export * from './loading-indicator';
export * from './reactive-bindings';
export * from './client-helpers';
export * from './client-script';
export * from './component-hmr';
export * from './hydration';
// ssg moved to stx/ssg
export * from './ssr';
// State management — explicit exports to avoid conflicts with runtime.ts and reactivity.ts
export { defineStore, useStore, createStore, getStore, getStoreNames, hasStore } from './state-management';
// visual-testing moved to stx/visual-testing
export * from './image-optimization/index';
export * from './media/index';
// bundle-analyzer moved to stx/bundle-analyzer
export * from './build-views';
export * from './signals';
export * from './spa-shell';
// Vue compatibility, server bindings, and JSX support
export * from './vue-template';
export { processServerBindings } from './server-bindings';
export { provide, inject, setGlobalProvide, defineEmits, defineExpose, defineSlots, nextTick, onErrorCaptured, handleError, useSlots, useAttrs, createProvideContext, generateCompositionRuntime } from './composition-api';
export { jsx, jsxs, jsxDEV, Fragment, renderToString, renderToStream, renderToDOM, Show, For, Portal, h } from './jsx-runtime';
export { createApp, createApp as createStxApp, defineCustomElement } from './app';
export * from './dynamic-components';
export { definePlugin, pluginManager } from './plugin-system';
// These modules are exported first to establish their types
export * from './render';
export { generateCrosswindCSS, injectCrosswindCSS, extractClassNames } from './dev-server/crosswind';
export { runDoctor, formatDoctorReport, findPantryPackage } from './doctor';
export {
  applyTranslations,
  buildAlternateLinks,
  buildLangPickerScript,
  buildStaticSite,
  defineSiteConfig,
  generateRobots,
  generateSitemap,
  // injectRouterScript intentionally NOT re-exported here — it would collide
  // with the canonical runtime-injection one (re-exported via `./render` →
  // `./process` → `./runtime-injection`). The site-builder version hardcodes
  // `container:'body'` for static-site builds and would silently override
  // the dev-server's main-container injection. Static-site callers should
  // import it directly from '@stacksjs/stx/site-builder' or the explicit
  // module path if needed.
  injectSeo,
  injectThemeBootstrap,
  localizePath,
  resolveI18n,
  stripLocalePrefix,
  translate,
  type BuildOptions,
  type BuildResult as SiteBuildResult,
  type PageMeta,
  type ResolvedI18n,
  type RouterOptions,
  type SiteConfig,
  type SiteI18nOptions,
  type SiteRouterOptions,
  type SiteSeo,
  type SiteSocial,
  type SiteThemeOptions,
  type SitemapEntry,
  type ThemeOptions,
} from './site-builder/index';
export * from './utils';
export * from './slots';
// Testing module - has overlapping 'render' export with ssr
// Import from stx/testing directly if needed
// export * from './testing'
// Server components - has overlapping exports (RenderResult, clearComponentCache)
// Import from stx/server-components directly if needed
// export * from './server-components'
// stx-strict footgun linter (stacksjs/stx#1744)
export { lintStxStrict } from './strict-lint';
// Types module - note: PropType is also in props, import from stx/props if needed
export * from './types';
// Props module — surfaces the user-facing typed-props API (stacksjs/stx#1740).
// Selective re-export avoids overlap with `./types`' string-union `PropType`
// (different shape) and `./composition-api`'s `defineEmits` / `EmitFn` (the
// canonical events API — props.ts has dead duplicates kept only for
// internal back-compat). For `PropType<T>` (constructor union) and the props
// flavour of `defineEmits` / `EmitFn`, import from 'stx/props' directly.
export {
  arrayOf,
  defineProps,
  definePropsWithValidation,
  oneOf,
  optional,
  processComponentProps,
  prop,
  required,
  shape,
  validated,
  withDefaults,
} from './props';
// Default export for the stx module
export default {};
