import type { Node } from '@markdoc/markdoc'; import type { JSX } from 'react'; import type { CommonError, GlobalData } from '../types/index.js'; import type { WildcardRedirectsTree } from './types'; import type { MiddlewareDetails, PageRouteInit, PageRouteDetails, RouteDetails, LifecycleContext, MarkdownParseInput, ApiRoute, MarkdocDeps } from './types'; import type { RedoclyConfig, RedirectConfig, CompilationError, PageStaticData } from '@redocly/config'; import type { SearchFacet } from '@redocly/theme/core/types'; import type { BundledDefinition as OpenApiBundledDefinition } from './plugins/openapi-docs/load-definition.js'; import type { BundledDefinition as AsyncApiBundledDefinition } from './plugins/asyncapi-docs/asyncapi-doc-loader.js'; import type { SearchEngine } from './plugins/search/engines/search-engine.js'; import { KvService } from './persistence/kv/services/kv-service.js'; export declare const MARKDOC_PARTIALS_DATA_KEY = "markdown/partials"; export declare const MARKDOC_PARTIALS_DEPS_KEY = "markdown/partials-deps"; export declare const USER_DEFINED_API_FUNCTIONS_COUNTER_KEY = "userDefinedApiFunctions"; type LifecycleEventType = 'global-data-updated' | 'shared-data-updated' | 'routes-updated' | 'build-updated' | 'build-started' | 'errors-updated' | 'pages-updated'; export type StoreOptions = { contentDir: string; outdir: string; serverOutDir: string; serverMode?: boolean; }; export type ComputedRedoclyConfig = { configFilePath: string; linkTags?: string; headScriptTags?: string; postBodyScriptTags?: string; preBodyScriptTags?: string; wildcardRedirectsTree: WildcardRedirectsTree; [key: string]: unknown; }; export declare class Store { #private; routesBySlug: Map; replacedEnvVars: Record; unsetEnvVars: Set; lifecycleContext: LifecycleContext | undefined; newRoutes: PageRouteInit[]; routesByFsPath: Map; apiRoutes: ApiRoute[]; middleware: MiddlewareDetails[]; routesSharedData: Map>; sharedDataDeps: Map>; sharedDataMarkdocComponents: Map>; routesDynamicComponents: Map>; routesPartials: Map; ssr: { preBodyTags: string[]; postBodyTags: string[]; headTags: string[]; }; searchFacets: Map; searchEngine: SearchEngine | undefined; templates: Map; browserPlugins: Set; apiRoutesRequestHandlers: Map; serverPropsGetters: Map; pagePropsGetters: Map; listeners: Map void>>; globalData: GlobalData; config: WithRequired & ComputedRedoclyConfig; serverMode: boolean; serverOutDir: string; outdir: string; buildRevision: number; hasSitemap: boolean; compilationErrors: CompilationError[]; userCodeReady: Promise; constructor({ outdir, contentDir, serverMode, serverOutDir }: StoreOptions); on(type: 'routes-updated', cb: () => void): void; on(type: 'build-updated', cb: () => void): void; on(type: 'build-started', cb: () => void): void; on(type: 'shared-data-updated', cb: (id: string, data: unknown) => void): void; on(type: 'errors-updated', cb: (errors: CommonError[]) => void): void; on(type: 'pages-updated', cb: (pages: number) => void): void; on(type: 'global-data-updated', cb: (data: Record) => void): void; queueEvent: >(type: LifecycleEventType, id?: string, ...args: T) => void; runListeners: >(type: LifecycleEventType, id?: string, ...args: T) => void; startPluginsRun(): void; waitForPluginsLifecycle(): Promise<[void, void]>; finishPluginsRun(): void; startEsbuildRun(): void; finishEsbuildRun(): void; get contentDir(): string; markUserCodeReady(): void; reloadMarkdocOptions(): Promise; get markdocOptions(): { partials: any; themeConfig: { frontMatterKeysToResolve?: string[] | undefined; partialsFolders?: string[] | undefined; lastUpdatedBlock?: { format?: "timeago" | "iso" | "long" | "short" | undefined; hide?: boolean | undefined; locale?: string | undefined; } | undefined; toc?: { hide?: boolean | undefined; header?: string | undefined; depth?: number | undefined; } | undefined; editPage?: { hide?: boolean | undefined; baseUrl?: string | undefined; } | undefined; } | undefined; tags?: any; nodes?: any; variables?: Record | undefined; functions?: Record | undefined; validation?: { parents?: Node[]; validateFunctions?: boolean; environment?: string; }; }; setGlobalData: (data: GlobalData) => void; getGlobalData: () => GlobalData; getKv: () => Promise; parseMarkdoc: (input: MarkdownParseInput, context: LifecycleContext, deps?: MarkdocDeps) => Promise<{ info: { sharedDataDeps?: Set; dynamicMarkdocComponents?: string[]; partials?: string[]; tagList?: string[]; htmlTagsList?: string[]; tagOccurrence?: Record; codeSnippetLanguages?: Record; codeWalkthroughLanguages?: Record; }; ast: Node; compoundHash: string; }>; loadOpenApiDefinitions(context: LifecycleContext): Promise; loadAsyncApiDefinitions(context: LifecycleContext): Promise; setSearchEngine(engine: SearchEngine): void; setSearchFacets: (searchFacets: Map) => void; setGlobalConfig: (data: Partial) => void; getConfig: () => RedoclyConfig; getGlobalConfig: (key: string) => T; getSearchFacets: () => Map; addRedirect: (from: string, to: RedirectConfig) => void; getRedirect: (from: string) => WithRequired | null; createSharedData: (id: string, data: unknown, hash?: string) => Promise; addRouteSharedData: (routeSlug: string, dataKey: string, dataId: string) => void; getRouteSharedDataByFsPath: (fsPath: string) => Record; getPartialsForRoute: (slug: string) => Record; addRoute: (route: PageRouteInit) => void; addRouteSharedDataToAllLocales: (slug: string, dataKey: string, dataId: string) => void; addApiRoute: (route: ApiRoute) => void; addMiddleware: (middleware: MiddlewareDetails) => void; getRouteByFsPath: (relativePath: string) => PageRouteDetails | undefined; getRouteBySlug: (slug: string, opts?: { followRedirect?: boolean; }) => PageRouteDetails | undefined; slugHasRouteOrRedirect: (slug: string) => boolean; getRoutesByTemplateId: (templateId: string) => PageRouteInit[]; getAllRoutesForLocale: (locale?: string) => PageRouteDetails[]; getAllRoutes: () => PageRouteDetails[]; getAllApiRoutes: () => ApiRoute[]; getAllMiddleware: () => MiddlewareDetails[]; getTemplate: (id: string) => string | undefined; getRequestHandler: (id: string) => string | undefined; createTemplate: (id: string, importPath: string) => string; addBrowserPlugin: (importPath: string) => void; createRequestHandler: (id: string, importPath: string) => string; registerServerPropsGetter: (id: string, importPath: string) => string; registerPagePropsGetter: (id: string, importPath: string) => void; writeRouteStaticData(route: RouteDetails, context: LifecycleContext): Promise; resolveRouteStaticData(route: RouteDetails, _context?: LifecycleContext, skipLastModified?: boolean): Promise; addSsrComponents(components: JSX.Element[] | string[], position: 'head' | 'preBody' | 'postBody'): void; clear: () => void; toJson(): Promise<{ [k: string]: unknown; }>; static fromJson(json: Record, options: StoreOptions): Store; getConfigWithEnvPlaceholders(): Promise; reportUnsetEnvVars(): Promise; } export {}; //# sourceMappingURL=store.d.ts.map