import type { PageEvent, Renderer } from "../../index.js";
import type { Internationalization, TranslationProxy } from "../../../internationalization/internationalization.js";
import type { DocumentReflection, CommentDisplayPart, DeclarationReflection, Reflection } from "../../../models/index.js";
import { type NeverIfInternal, type Options } from "../../../utils/index.js";
import type { DefaultTheme } from "./DefaultTheme.js";
import { type icons } from "./partials/icon.js";
export declare class DefaultThemeRenderContext {
    readonly theme: DefaultTheme;
    page: PageEvent<Reflection>;
    private _refIcons;
    options: Options;
    internationalization: Internationalization;
    i18n: TranslationProxy;
    constructor(theme: DefaultTheme, page: PageEvent<Reflection>, options: Options);
    /**
     * Icons available for use within the page.
     *
     * Note: This creates a reference to icons declared by {@link DefaultTheme.icons},
     * to customize icons, that object must be modified instead.
     */
    get icons(): Readonly<typeof icons>;
    get slugger(): import("./Slugger.js").Slugger;
    hook: Renderer["hooks"]["emit"];
    /** Avoid this in favor of urlTo if possible */
    relativeURL: (url: string, cacheBust?: boolean) => string;
    urlTo: (reflection: Reflection) => string;
    markdown: (md: readonly CommentDisplayPart[] | NeverIfInternal<string | undefined>) => string;
    /** Renders user comment markdown wrapped in a tsd-comment div */
    displayParts: (parts: readonly CommentDisplayPart[] | undefined) => import("../../../utils/jsx.elements.js").JsxElement | undefined;
    getNavigation: () => import("./DefaultTheme.js").NavigationElement[];
    getReflectionClasses: (refl: DeclarationReflection | DocumentReflection) => string;
    documentTemplate: (props: PageEvent<DocumentReflection>) => import("../../../utils/jsx.elements.js").JsxElement;
    reflectionTemplate: (props: PageEvent<import("../../../models/index.js").ContainerReflection>) => import("../../../utils/jsx.elements.js").JsxElement;
    indexTemplate: (props: PageEvent<import("../../../models/index.js").ProjectReflection>) => import("../../../utils/jsx.elements.js").JsxElement;
    hierarchyTemplate: (props: PageEvent<import("../../../models/index.js").ProjectReflection>) => import("../../../utils/jsx.elements.js").JsxElement;
    defaultLayout: (template: import("../../index.js").RenderTemplate<PageEvent<Reflection>>, props: PageEvent<Reflection>) => import("../../../utils/jsx.elements.js").JsxElement;
    /**
     * Rendered just after the description for a reflection.
     * This can be used to render a shortened type display of a reflection that the
     * rest of the page expands on.
     *
     * Note: Will not be called for variables/type aliases, as they are summarized
     * by their type declaration, which is already rendered by {@link DefaultThemeRenderContext.memberDeclaration}
     */
    reflectionPreview: (props: Reflection) => import("../../../utils/jsx.elements.js").JsxElement | undefined;
    /**
     * Used to render additional details about a type. This is used to implement
     * the `@expand` tag, comments on union members, comments on object type members...
     */
    typeDetails: (type: import("../../../models/types.js").SomeType, renderAnchors: boolean) => import("../../../utils/jsx.elements.js").JsxChildren;
    /**
     * Should call the {@link typeDetails} helper if rendering additional details
     * about the type will provide the user with more information about the type.
     */
    typeDetailsIfUseful: (type: import("../../../models/types.js").SomeType | undefined) => import("../../../utils/jsx.elements.js").JsxChildren;
    /**
     * Wrapper around {@link typeDetails} which checks if it is useful
     * and includes a "Type Declaration" header.
     */
    typeDeclaration: (type: import("../../../models/types.js").SomeType) => import("../../../utils/jsx.elements.js").JsxChildren;
    breadcrumb: (props: Reflection) => import("../../../utils/jsx.elements.js").JsxElement | undefined;
    commentShortSummary: (props: Reflection) => import("../../../utils/jsx.elements.js").JsxElement | undefined;
    commentSummary: (props: Reflection) => import("../../../utils/jsx.elements.js").JsxElement | undefined;
    commentTags: (props: Reflection) => import("../../../utils/jsx.elements.js").JsxElement | undefined;
    reflectionFlags: (props: Reflection) => import("../../../utils/jsx.elements.js").JsxElement;
    footer: () => import("../../../utils/jsx.elements.js").JsxElement;
    header: (props: PageEvent<Reflection>) => import("../../../utils/jsx.elements.js").JsxElement;
    hierarchy: (typeHierarchy: import("../../../models/index.js").DeclarationHierarchy | undefined) => import("../../../utils/jsx.elements.js").JsxElement | undefined;
    index: (props: import("../../../models/index.js").ContainerReflection) => import("../../../utils/jsx.elements.js").JsxElement;
    member: (props: DeclarationReflection | DocumentReflection) => import("../../../utils/jsx.elements.js").JsxElement;
    moduleReflection: (mod: DeclarationReflection | import("../../../models/index.js").ProjectReflection) => import("../../../utils/jsx.elements.js").JsxElement;
    moduleMemberSummary: (member: DeclarationReflection | DocumentReflection) => import("../../../utils/jsx.elements.js").JsxElement;
    memberDeclaration: (props: DeclarationReflection) => import("../../../utils/jsx.elements.js").JsxElement;
    memberGetterSetter: (props: DeclarationReflection) => import("../../../utils/jsx.elements.js").JsxElement;
    memberSignatureBody: (props: import("../../../models/index.js").SignatureReflection, r_1?: {
        hideSources?: boolean;
    } | undefined) => import("../../../utils/jsx.elements.js").JsxElement;
    memberSignatureTitle: (props: import("../../../models/index.js").SignatureReflection, options?: {
        hideName?: boolean;
    } | undefined) => import("../../../utils/jsx.elements.js").JsxElement;
    memberSignatures: (props: DeclarationReflection) => import("../../../utils/jsx.elements.js").JsxElement;
    memberSources: (props: DeclarationReflection | import("../../../models/index.js").SignatureReflection) => import("../../../utils/jsx.elements.js").JsxElement;
    members: (props: import("../../../models/index.js").ContainerReflection) => import("../../../utils/jsx.elements.js").JsxElement;
    sidebar: (props: PageEvent<Reflection>) => import("../../../utils/jsx.elements.js").JsxElement;
    pageSidebar: (props: PageEvent<Reflection>) => import("../../../utils/jsx.elements.js").JsxElement;
    sidebarLinks: () => import("../../../utils/jsx.elements.js").JsxElement | null;
    settings: () => import("../../../utils/jsx.elements.js").JsxElement;
    navigation: (props: PageEvent<Reflection>) => import("../../../utils/jsx.elements.js").JsxElement;
    pageNavigation: (props: PageEvent<Reflection>) => import("../../../utils/jsx.elements.js").JsxElement;
    toolbar: (props: PageEvent<Reflection>) => import("../../../utils/jsx.elements.js").JsxElement;
    type: (type: import("../../../models/types.js").SomeType | undefined, options?: {
        topLevelLinks: boolean;
    } | undefined) => import("../../../utils/jsx.elements.js").JsxElement;
    typeAndParent: (props: import("../../../models/types.js").Type) => import("../../../utils/jsx.elements.js").JsxElement;
    typeParameters: (typeParameters: import("../../../models/index.js").TypeParameterReflection[]) => import("../../../utils/jsx.elements.js").JsxElement;
}
