import react__default, { ReactNode } from 'react';

interface HelmetProps {
    children?: ReactNode;
    /**
     * A default title to use when no `<title>` child is provided.
     *
     * Equivalent to react-helmet's `defaultTitle`.
     */
    defaultTitle?: string;
    /**
     * A template for the title. Use `%s` as a placeholder for the page title.
     *
     * @example `%s | My Site`
     */
    titleTemplate?: string;
    /**
     * Called after the document head has been updated in the browser.
     *
     * Equivalent to react-helmet's `onChangeClientState`.
     *
     * @param newState - The new head state after rendering.
     * @param addedTags - Always empty — unhead manages DOM diffing internally.
     * @param removedTags - Always empty — unhead manages DOM diffing internally.
     */
    onChangeClientState?: (newState: Record<string, any>, addedTags: Record<string, HTMLElement[]>, removedTags: Record<string, HTMLElement[]>) => void;
    /**
     * Whether to encode special characters in attributes.
     *
     * @default true
     * @deprecated Unhead handles encoding automatically. This prop is accepted for compatibility but has no effect.
     */
    encodeSpecialCharacters?: boolean;
    /**
     * Whether to defer DOM updates until the browser is idle.
     *
     * @default true
     * @deprecated Unhead batches DOM updates automatically. This prop is accepted for compatibility but has no effect.
     */
    defer?: boolean;
    title?: string;
    base?: Record<string, any>;
    meta?: Array<Record<string, any>>;
    link?: Array<Record<string, any>>;
    script?: Array<Record<string, any>>;
    style?: Array<Record<string, any>>;
    noscript?: Array<Record<string, any>>;
    htmlAttributes?: Record<string, any>;
    bodyAttributes?: Record<string, any>;
}
/**
 * A react-helmet compatible component powered by unhead.
 *
 * Drop-in replacement for `<Helmet>` — import from `@unhead/react/helmet` instead of `react-helmet`.
 *
 * @example
 * ```tsx
 * import { Helmet } from '@unhead/react/helmet'
 *
 * <Helmet
 *   defaultTitle="My Site"
 *   titleTemplate="%s | My Site"
 *   onChangeClientState={(newState) => console.log(newState)}
 * >
 *   <title>Page Title</title>
 *   <meta name="description" content="Page description" />
 * </Helmet>
 * ```
 */
declare const Helmet: react__default.FC<HelmetProps>;

export { Helmet };
export type { HelmetProps };
