import { NuxtAppContext } from "./internal/context.js"; import { DevServerLog, NuxtPayload, NuxtSSRContext, NuxtServerRuntimeHooks, PluginMeta } from "./types.js"; import { RouteMiddleware } from "./composables/router.js"; import { AsyncDataExecuteOptions, AsyncDataRequestStatus } from "./composables/asyncData.js"; import { NuxtAppManifestMeta } from "./composables/manifest.js"; import { PrefetchScheduler } from "./internal/prefetch.js"; import { LoadingIndicator } from "./composables/loading-indicator.js"; import { RouteAnnouncer } from "./composables/route-announcer.js"; import { NuxtAnnouncer } from "./composables/announcer.js"; import { App, EffectScope, Ref, VNode, onErrorCaptured } from "vue"; import "./types/augments.js"; import { EventHandlerRequest, H3Event } from "@nuxt/nitro-server/h3"; import { RouteLocationNormalizedLoaded } from "vue-router"; import { AppConfig, AppConfigInput, NuxtHookRegistry, RuntimeConfig } from "nuxt/schema"; //#region src/app/nuxt.d.ts export declare function getNuxtAppCtx(id?: string): NuxtAppContext; type HookResult = Promise | void; export interface RuntimeNuxtHooks extends NuxtServerRuntimeHooks { 'app:created': (app: App) => HookResult; 'app:beforeMount': (app: App) => HookResult; 'app:mounted': (app: App) => HookResult; 'app:redirected': () => HookResult; 'app:suspense:resolve': (Component?: VNode) => HookResult; 'app:error:cleared': (options: { redirect?: string; }) => HookResult; 'app:chunkError': (options: { error: any; }) => HookResult; 'app:data:refresh': (keys?: string[]) => HookResult; 'app:manifest:update': (meta?: NuxtAppManifestMeta) => HookResult; 'dev:ssr-logs': (logs: DevServerLog[]) => HookResult; 'link:prefetch': (link: string) => HookResult; 'page:start': (Component?: VNode) => HookResult; 'page:finish': (Component?: VNode) => HookResult; 'page:transition:finish': (Component?: VNode) => HookResult; 'page:view-transition:start': (transition: ViewTransition) => HookResult; 'page:loading:start': () => HookResult; 'page:loading:end': () => HookResult; 'vue:setup': () => void; 'vue:error': (...args: Parameters[0]>) => HookResult; } interface _NuxtApp { 'vueApp': App; 'versions': Record; 'hooks': NuxtHookRegistry; 'hook': _NuxtApp['hooks']['hook']; 'callHook': _NuxtApp['hooks']['callHook']; 'runWithContext': any>(fn: T) => ReturnType | Promise>>; [key: string]: unknown; /** @internal */ '_cookies'?: Record; /** @internal */ '_cookieJar'?: Record; /** @internal */ '_appliedSetCookies'?: number; '_cookiesChanged'?: Record; /** * The id of the Nuxt application. * @internal */ '_id': string; /** @internal */ '_scope': EffectScope; /** @internal */ '_asyncDataPromises': Record | undefined>; /** @internal */ '_asyncData': Record; pending: Ref; error: Ref; status: Ref; execute: (opts?: AsyncDataExecuteOptions) => Promise; /** @internal */ _default: () => unknown; /** @internal */ _deps: number; /** @internal */ _off: () => void; /** @internal */ _init: boolean; /** @internal */ _execute: (opts?: AsyncDataExecuteOptions) => Promise; /** @internal */ _hash?: Record; /** @internal */ _abortController?: AbortController; /** @internal */ _initialCachedData?: unknown; } | undefined>; /** @internal */ '_state': Record unknown; } | undefined>; /** @internal */ '_loadingIndicator'?: LoadingIndicator; /** @internal */ '_loadingIndicatorDeps'?: number; /** @internal */ '_middleware': { global: RouteMiddleware[]; named: Record; }; /** @internal */ '_processingMiddleware'?: string | boolean; /** @internal */ '_middlewareTo'?: Pick; /** @internal */ '_once': { [key: string]: Promise; }; /** @internal */ '_observer'?: { observe: (element: Element, callback: () => void) => () => void; }; /** @internal */ '_appConfig': AppConfig; /** @internal */ '_route': RouteLocationNormalizedLoaded & { sync?: () => void; }; /** * Restore the real route after a prerendered page hydrates against the query-less * payload route. Called by `` as its `Suspense` resolves, before mounted hooks flush. * @internal */ '~restoreDeferredRoute'?: () => void; /** @internal */ '_islandPromises'?: Record>; /** @internal */ '_payloadRevivers': Record any>; /** @internal */ '_prefetch'?: PrefetchScheduler; /** @internal */ '_routeAnnouncer'?: RouteAnnouncer; /** @internal */ '_routeAnnouncerDeps'?: number; /** @internal */ '~transitionPromise'?: Promise; /** @internal */ '~transitionFinish'?: () => void; /** @internal */ '_announcer'?: NuxtAnnouncer; /** @internal */ '_announcerDeps'?: number; '$config': RuntimeConfig; 'isHydrating'?: boolean; 'deferHydration': () => () => void | Promise; 'ssrContext'?: NuxtSSRContext; 'payload': NuxtPayload; 'static': { data: Record; }; 'provide': (name: string, value: any) => void; } export interface NuxtApp extends _NuxtApp {} export declare const NuxtPluginIndicator = "__nuxt_plugin"; export interface PluginEnvContext { /** * This enable the plugin for islands components. * Require `experimental.componentsIslands`. * @default true */ islands?: boolean; } export interface ResolvedPluginMeta { name?: string; parallel?: boolean; } export interface Plugin = Record> { (nuxt: NuxtApp): Promise | Promise<{ provide?: Injections; }> | void | { provide?: Injections; }; [NuxtPluginIndicator]?: true; meta?: ResolvedPluginMeta; } export interface ObjectPlugin = Record> extends PluginMeta { hooks?: Partial; setup?: Plugin; env?: PluginEnvContext; /** * Execute plugin in parallel with other parallel plugins. * @default false */ parallel?: boolean; /** * @internal */ _name?: string; } /** @deprecated Use `ObjectPlugin` */ export type ObjectPluginInput = Record> = ObjectPlugin; export interface CreateOptions { vueApp: NuxtApp['vueApp']; ssrContext?: NuxtApp['ssrContext']; /** * The id of the Nuxt application, overrides the default id specified in the Nuxt config (default: `nuxt-app`). */ id?: NuxtApp['_id']; } /** @since 3.0.0 */ export declare function createNuxtApp(options: CreateOptions): NuxtApp; /** @since 3.12.0 */ export declare function registerPluginHooks(nuxtApp: NuxtApp, plugin: Plugin & ObjectPlugin): void; /** @since 3.0.0 */ export declare function applyPlugin(nuxtApp: NuxtApp, plugin: Plugin & ObjectPlugin): Promise; /** @since 3.0.0 */ export declare function applyPlugins(nuxtApp: NuxtApp, plugins: Array>): Promise; /** @since 3.0.0 */ export declare function defineNuxtPlugin>(plugin: Plugin | ObjectPlugin): Plugin & ObjectPlugin; export declare const definePayloadPlugin: typeof defineNuxtPlugin; /** @since 3.0.0 */ export declare function isNuxtPlugin(plugin: unknown): plugin is Plugin; /** * Ensures that the setup function passed in has access to the Nuxt instance via `useNuxtApp`. * @param nuxt A Nuxt instance * @param setup The function to call * @since 3.0.0 */ export declare function callWithNuxt any>(nuxt: NuxtApp | _NuxtApp, setup: T, args?: Parameters): Promise>; /** * Returns the current Nuxt instance. * * Returns `null` if Nuxt instance is unavailable. * @since 3.10.0 */ export declare function tryUseNuxtApp(): NuxtApp | null; /** * Returns the current Nuxt instance. * * Throws an error if Nuxt instance is unavailable. * @since 3.0.0 */ export declare function useNuxtApp(): NuxtApp; /** * Whether the current execution context is a component setup rather than a plugin or the app scope. * * Vapor components have no vdom `getCurrentInstance()`, but their setup runs within a dedicated * effect scope distinct from the nuxt app's own scope (which plugins run in), so the scope * discriminates the two cases. * @internal */ export declare function isInComponentSetup(nuxtApp: NuxtApp): boolean; /** @since 3.0.0 */ export declare function useRuntimeConfig(_event?: H3Event): RuntimeConfig; /** @since 3.0.0 */ export declare function defineAppConfig(config: C): C; //#endregion export type { DevServerLog, NuxtPayload, NuxtSSRContext, PluginMeta };