import type { TRet } from "../deps";
import type { JSXProps, NJSX } from "./index";
export type HelmetRewind = {
head: JSX.Element[];
footer: JSX.Element[];
attr: {
body: NJSX.HTMLAttributes;
html: NJSX.HTMLAttributes;
};
body?: JSX.Element;
title?: string;
};
type FCHelmet = ((props: JSXProps<{
footer?: boolean;
children?: JSX.Element[] | JSX.Element | TRet;
}>) => TRet) & {
/**
* Rewind Helmet.
* @example
* const { head, footer, body, attr } = Helmet.rewind();
*/
rewind: (elem?: JSX.Element) => HelmetRewind;
/**
* Custom render.
* @deprecated
*/
render: (elem: JSX.Element) => string;
/**
* Write head tags.
* @example
* const current = Helmet.writeHeadTag?.() ?? [];
* Helmet.writeHeadTag = () => [
* ...current,
*
* ];
*/
writeHeadTag?: () => JSX.Element[];
/**
* Write body tags.
* @example
* const current = Helmet.writeFooterTag?.() ?? [];
* Helmet.writeFooterTag = () => [
* ...current,
*
* ];
*/
writeFooterTag?: () => JSX.Element[];
writeHtmlAttr?: () => NJSX.HTMLAttributes;
writeBodyAttr?: () => NJSX.HTMLAttributes;
title?: string;
reset: () => void;
};
/**
* Simple SSR Helmet for SEO
* @example
* const Home: FC = (props) => {
* return (
* <>
*
* Home Title
*
*
Home Page
* >
* )
* }
*/
export declare const Helmet: FCHelmet;
export {};