import { DocsPage as FumadocsDocsPage } from "fumadocs-ui/layouts/docs/page"; import type { MDXComponents } from "mdx/types"; import type { Metadata } from "next"; import { type ComponentProps, type ComponentType, type ReactNode } from "react"; import { NativeDocsLink } from "../components/link"; import { type GeistdocsConfig } from "../config"; import { type GeistdocsPageVisibilityData } from "../page-visibility"; import type { GeistdocsSourceBundle } from "../source"; type SourceBundle = GeistdocsSourceBundle; type GeistdocsPage = NonNullable>; type PageActionsBundle = ReturnType; type DocsPageLink = MDXComponents["a"]; type TableOfContentOptions = NonNullable["tableOfContent"]>; export interface DocsPageParams extends Record { lang: string; slug?: string[]; } export interface DocsPageAccessContext { params: Params; source: SourceBundle; } export type DocsPageAccessFilter = (page: GeistdocsPage, context: DocsPageAccessContext) => boolean | Promise; type DocsPageMdx = MDXComponents | ((context: { link: DocsPageLink; page: GeistdocsPage; source: SourceBundle; }) => MDXComponents); type OpenGraphImages = NonNullable["images"]; interface DocsPageOpenGraphOptions { images?: boolean | OpenGraphImages; } interface PageUrlContext { page: GeistdocsPage; params: Params; } interface PublicPageUrlContext extends PageUrlContext { pageUrl: string; } interface MarkdownUrlContext extends PublicPageUrlContext { publicPageUrl: string; } export interface ResolvePageMarkdownUrlOptions { basePath?: string; isRootMountedPage?: boolean; pageUrl: string; publicPageUrl?: string; } export declare const resolvePageMarkdownUrl: (options: ResolvePageMarkdownUrlOptions) => string; interface DocsPageData extends GeistdocsPageVisibilityData { body: ComponentType<{ components?: MDXComponents; }>; description?: string; full?: boolean; title: string; toc: ComponentProps["toc"]; } export interface CreateDocsPageOptions { /** Return false to make a page unavailable for the current route params. */ canViewPage?: DocsPageAccessFilter; config: Pick; filterStaticParams?: (params: DocsPageParams) => boolean; getMarkdownUrl?: (context: MarkdownUrlContext) => string; getPageUrl?: (context: PageUrlContext) => string; getPublicPageUrl?: (context: PublicPageUrlContext) => string; mdx?: DocsPageMdx; metadata?: (context: { metadata: Metadata; page: GeistdocsPage; params: Params; }) => Metadata | Promise; openGraph?: DocsPageOpenGraphOptions; pageActions?: PageActionsBundle; renderTop?: (context: { data: DocsPageData; markdown: string; markdownUrl: string; page: GeistdocsPage; pageUrl: string; publicPageUrl: string; }) => ReactNode; resolveLink?: (context: { link: DocsPageLink; nativeLink: typeof NativeDocsLink; page: GeistdocsPage; source: SourceBundle; }) => DocsPageLink; source: SourceBundle; tableOfContent?: TableOfContentOptions; tableOfContentPopover?: ComponentProps["tableOfContentPopover"]; } export declare const createDocsPage: ({ canViewPage, config, source, mdx, pageActions, filterStaticParams, getMarkdownUrl, getPageUrl, getPublicPageUrl, metadata, openGraph, renderTop, resolveLink, tableOfContent, tableOfContentPopover, }: CreateDocsPageOptions) => { Page: ({ params }: { params: Promise; }) => import("react/jsx-runtime").JSX.Element; getPageTree: (params: Params) => Promise; generateStaticParams: () => DocsPageParams[]; generateMetadata: ({ params, }: { params: Promise; }) => Promise; }; export declare const createPageActions: ({ config, getExtraActions, }: import("../internal/page-actions").CreatePageActionsOptions) => { config: Pick; getExtraActions: ((context: import("../internal/page-actions").PageActionRenderContext) => ReactNode[]) | undefined; }; export {}; //# sourceMappingURL=docs.d.ts.map