import type { Element } from "hast";
import { type ComponentPropsWithoutRef } from "react";
type PreOverrideProps = ComponentPropsWithoutRef<"pre"> & {
    node?: Element | undefined;
};
/**
 * Stores the original pre props for descendants inside a block code fence.
 * Streamdown itself uses a data-block marker for block detection, but we keep
 * this context for compatibility and access to pre metadata.
 */
export declare const PreContext: import("react").Context<PreOverrideProps | null>;
/**
 * Hook to check if the current element is rendered within a block code fence.
 */
export declare function useIsStreamdownCodeBlock(): boolean;
/**
 * Hook to get the original pre element props for the current block code fence.
 * Returns null if not inside a code block.
 */
export declare function useStreamdownPreProps(): PreOverrideProps | null;
/**
 * Mirrors streamdown's pre override by marking the child code element as block
 * content without adding an extra <pre> wrapper around it.
 */
export declare const PreOverride: import("react").MemoExoticComponent<({ children, node, ...rest }: PreOverrideProps) => import("react/jsx-runtime").JSX.Element>;
export {};
//# sourceMappingURL=PreOverride.d.ts.map