import type { Node } from '@markdoc/markdoc';
import type { PageStaticData, REDOCLY_ROUTE_RBAC, REDOCLY_TEAMS_RBAC, RbacScopeItems } from '@redocly/config';
import type { PluginDefaultOptions, PageRouteDetails, LifecycleContext, AfterRoutesCreatedActions, MarkdownParseInput } from '../../types';
import type { LINK_ORIGINAL_ATTR_NAME } from '../../constants/common';
import type { RenderForLlmsContext } from '@redocly/theme/markdoc/tags/types';
export type RoutesInfoActions = {
    outdir: string;
    getRouteByFsPath: (relativePath: string) => PageRouteDetails | undefined;
    getRouteBySlug: (slug: string, opts?: {
        followRedirect?: boolean;
    }) => PageRouteDetails | undefined;
    getAllRoutesForLocale: (locale?: string) => PageRouteDetails[];
    hasRouteOrRedirectBySlug: (slug: string) => boolean;
    buildRevision: number;
};
export type MarkdocResolveContext = {
    context: LifecycleContext;
    actions: PluginDefaultOptions & RoutesInfoActions & Pick<AfterRoutesCreatedActions, 'getGlobalConfig'>;
};
export type MarkdocDeps = {
    routeSlugs?: string[];
    sharedDataIds?: string[];
};
export type MdPageStaticData = {
    ast: string;
    frontmatter: Record<string, unknown>;
    editPage?: {
        to: string;
    };
    [REDOCLY_TEAMS_RBAC]?: RbacScopeItems;
    [REDOCLY_ROUTE_RBAC]?: {
        slug?: string;
        fsPath?: string;
    };
} & PageStaticData;
export type WithOriginalAttr<T, P = string> = T & {
    [K in `${typeof LINK_ORIGINAL_ATTR_NAME}:${string}`]?: P | null;
};
export type ParseMarkdocOpts = {
    input: MarkdownParseInput;
    context: LifecycleContext;
    deps?: MarkdocDeps;
    resource?: string;
};
export type RenderTagFn = (node: Node, context: RenderForLlmsContext) => string | undefined;
//# sourceMappingURL=markdown.d.ts.map