import type { ReactNode } from "react"; export declare const normalizeBasePath: (basePath: string | undefined) => string; /** Convert an app-local path to the URL exposed by a Next.js base-path app. */ export declare const getPublicPath: (href: string, basePath: string | undefined) => string; /** Keep public paths stable while adding a base path to app-local paths. */ export declare const withBasePath: (href: string, basePath: string | undefined) => string; export interface GeistdocsNavLink { external?: boolean; href: string; label: string; } /** A link inside a navbar dropdown. */ export interface GeistdocsNavDropdownItem { external?: boolean; href: string; label: string; /** * Optional column heading in the desktop panel, like the OSS flyout's * sections. Items without one group under the dropdown's own label. */ section?: string; } /** * A navbar item that opens a full-width panel of links instead of navigating, * following the vercel.com header pattern (and the OSS products flyout): * columned sections of plain links on desktop, a collapsible section in the * mobile menu. */ export interface GeistdocsNavDropdown { items: GeistdocsNavDropdownItem[]; label: string; } export type GeistdocsNavItem = GeistdocsNavLink | GeistdocsNavDropdown; export interface GeistdocsNavbarOssProduct { description?: string; external?: boolean; featured?: boolean; href: string; /** Stable identifier used to match `navbarActiveProduct`. */ id?: string; label: string; logo?: ReactNode; section?: string; } export interface GeistdocsGithubConfig { branch?: string; editPath?: string; owner: string; repo: string; } export type GeistdocsPageSurface = "chat" | "llms" | "search" | "sitemap"; export interface GeistdocsTranslation { displayName: string; search?: string; } export type GeistdocsTranslations = Record; export interface GeistdocsFeatureConfig { enabled?: boolean; } export interface GeistdocsEveAgentConfig { /** * Base URL of a deployed eve framework agent, such as * `"https://help-eve.vercel.app"`. When set, Ask AI requests are answered * by the agent through eve's session API instead of the default AI * Gateway model. The URL is public configuration; authentication is * handled server-side (Vercel OIDC by default, or the `eveAgent.headers` * option on `createChatRoute`). */ url: string; } export interface GeistdocsAIConfig extends GeistdocsFeatureConfig { /** * Answer Ask AI requests with a hosted eve framework agent. * Mutually exclusive with the `proxy` option on `createChatRoute`. */ eveAgent?: GeistdocsEveAgentConfig; /** Content rendered below the chat prompt on desktop and mobile. */ footer?: ReactNode; prompt?: string; /** * Documentation retrieval used by Ask AI. Defaults to the local Orama * index. Mixedbread credentials stay server-side in environment variables. */ retrieval?: "local" | "mixedbread"; suggestions?: string[]; } export interface GeistdocsAgentResourceLink { description?: string; href: string; label: string; } export interface GeistdocsAgentProductConfig { audience?: string[]; category?: string; description?: string; name?: string; useCases?: string[]; } export interface GeistdocsAgentApiConfig { authDocsUrl?: string; errorsUrl?: string; openApiSpecs?: GeistdocsAgentOpenApiSpecConfig[]; openApiUrl?: string; rateLimitsUrl?: string; scopesDocsUrl?: string; } export interface GeistdocsAgentOpenApiSpecConfig { description?: string; label: string; url: string; } export interface GeistdocsAgentMcpServerConfig { description?: string; name: string; url: string; } export interface GeistdocsAgentMcpConfig { manifestUrl?: string; servers?: GeistdocsAgentMcpServerConfig[]; } export interface GeistdocsAgentReadinessConfig extends GeistdocsFeatureConfig { api?: GeistdocsAgentApiConfig; instructions?: string[]; links?: GeistdocsAgentResourceLink[]; mcp?: GeistdocsAgentMcpConfig; product?: GeistdocsAgentProductConfig; } export interface GeistdocsPageActionsConfig { askAI?: boolean; copyPage?: boolean; editSource?: boolean; openInChat?: boolean; scrollTop?: boolean; } export interface GeistdocsFooterConfig { override?: unknown; } export interface GeistdocsContentSectionConfig { dir?: string; id: string; label: string; route: `/${string}`; } export interface GeistdocsVersionConfig { description?: string; href?: string; icon?: ReactNode; id: string; label: string; routePrefix?: string; } export interface GeistdocsVersionsConfig { current: string; items: GeistdocsVersionConfig[]; } export type GeistdocsNavbarBrand = "vercel" | "labs"; export interface GeistdocsConfig { agent?: GeistdocsAgentReadinessConfig; ai?: GeistdocsAIConfig; basePath?: string; content?: GeistdocsContentSectionConfig[]; defaultLanguage?: string; feedback?: GeistdocsFeatureConfig; footer?: GeistdocsFooterConfig; github?: GeistdocsGithubConfig; language?: GeistdocsFeatureConfig; logo?: ReactNode; /** * Where the navbar wordmark (`logo`) links. Defaults to the site root * (`/`). Like other navbar links, the href is prefixed with the active * non-default language. Point it at a docs page when the site root * redirects elsewhere, so the wordmark keeps visitors on the docs. */ logoHref?: string; nav?: GeistdocsNavItem[]; /** The product this docs site is for. */ navbarActiveProduct?: string; navbarBrand?: GeistdocsNavbarBrand; /** * GitHub icon link in the navbar's action cluster. Rendered when * `github` is configured; set `{ enabled: false }` to hide it. */ navbarGithub?: GeistdocsFeatureConfig; navbarOssProducts?: GeistdocsNavbarOssProduct[]; navbarVariant?: "oss" | "standard"; pageActions?: GeistdocsPageActionsConfig; prompt?: string; search?: GeistdocsFeatureConfig; siteId?: string; /** Absolute production URL used for canonical and structured-data URLs. */ siteUrl?: string; suggestions?: string[]; theme?: GeistdocsFeatureConfig; title: string; translations?: GeistdocsTranslations; versions?: GeistdocsVersionsConfig; webmcp?: GeistdocsFeatureConfig; } export declare const defineConfig: (config: T) => T; //# sourceMappingURL=config.d.ts.map