import * as React from 'react';
import type { JSX, PropsWithChildren, ReactElement, ReactNode } from 'react';
import { Component } from 'react';
import type { HelmetProps } from './types';
export * from './types';
export { default as HelmetData } from './HelmetData';
export { default as HelmetProvider } from './Provider';
type Props = {
    [key: string]: any;
};
export declare class Helmet extends Component<PropsWithChildren<HelmetProps>> {
    static defaultProps: {
        defer: boolean;
        encodeSpecialCharacters: boolean;
        prioritizeSeoTags: boolean;
    };
    shouldComponentUpdate(nextProps: HelmetProps): boolean;
    mapNestedChildrenToProps(child: ReactElement, nestedChildren: ReactNode): {
        innerHTML: string | number | bigint | true | React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | Iterable<React.ReactNode> | React.ReactPortal | Promise<string | number | bigint | boolean | React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | React.ReactPortal | Iterable<React.ReactNode>>;
        cssText?: undefined;
    } | {
        cssText: string | number | bigint | true | React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | Iterable<React.ReactNode> | React.ReactPortal | Promise<string | number | bigint | boolean | React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | React.ReactPortal | Iterable<React.ReactNode>>;
        innerHTML?: undefined;
    };
    flattenArrayTypeChildren(child: JSX.Element, arrayTypeChildren: {
        [key: string]: JSX.Element[];
    }, newChildProps: Props, nestedChildren: ReactNode): {};
    mapObjectTypeChildren(child: JSX.Element, newProps: Props, newChildProps: Props, nestedChildren: ReactNode): {};
    mapArrayTypeChildrenToProps(arrayTypeChildren: {
        [key: string]: JSX.Element;
    }, newProps: Props): {
        [key: string]: any;
    };
    warnOnInvalidChildren(child: JSX.Element, nestedChildren: ReactNode): boolean;
    mapChildrenToProps(children: ReactNode, newProps: Props): {
        [key: string]: any;
    };
    render(): JSX.Element;
}
