// Type definitions for react-helmet 6.0 // Project: https://github.com/nfl/react-helmet // Definitions by: Evan Bremer // Isman Usoh // François Nguyen // Kok Sam // Yui T. // Yamagishi Kazutoshi // Justin Hall // Andriy2 // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped // TypeScript Version: 2.8 import * as React from 'react'; interface OtherElementAttributes { [key: string]: string | number | boolean | null | undefined; } type HtmlProps = JSX.IntrinsicElements['html'] & OtherElementAttributes; type BodyProps = JSX.IntrinsicElements['body'] & OtherElementAttributes; type LinkProps = JSX.IntrinsicElements['link']; type MetaProps = JSX.IntrinsicElements['meta']; export interface HelmetTags { baseTag: Array; linkTags: Array; metaTags: Array; noscriptTags: Array; scriptTags: Array; styleTags: Array; } export interface HelmetProps { async?: boolean; base?: any; bodyAttributes?: BodyProps; defaultTitle?: string; defer?: boolean; encodeSpecialCharacters?: boolean; htmlAttributes?: HtmlProps; onChangeClientState?: (newState: any, addedTags: HelmetTags, removedTags: HelmetTags) => void; link?: LinkProps[]; meta?: MetaProps[]; noscript?: Array; script?: Array; style?: Array; title?: string; titleAttributes?: Object; titleTemplate?: string; } export class Helmet extends React.Component { static peek(): HelmetData; static rewind(): HelmetData; static renderStatic(): HelmetData; static canUseDOM: boolean; } export interface HelmetData { base: HelmetDatum; bodyAttributes: HelmetHTMLBodyDatum; htmlAttributes: HelmetHTMLElementDatum; link: HelmetDatum; meta: HelmetDatum; noscript: HelmetDatum; script: HelmetDatum; style: HelmetDatum; title: HelmetDatum; titleAttributes: HelmetDatum; } export interface HelmetDatum { toString(): string; toComponent(): React.Component; } export interface HelmetHTMLBodyDatum { toString(): string; toComponent(): React.HTMLAttributes; } export interface HelmetHTMLElementDatum { toString(): string; toComponent(): React.HTMLAttributes; } export const peek: () => HelmetData; export const rewind: () => HelmetData; export const renderStatic: () => HelmetData; export const canUseDOM: boolean;