/// <reference types="react" />

declare namespace jest {
    interface Matchers {
        toBeChecked(): void;
        toBeDisabled(): void;
        toBeEmpty(): void;
        toBePresent(): void;
        toContainReact(component: ReactElement<any>): void;
        toHaveClassName(className: string): void;
        toHaveHTML(html: string): void;
        toHaveProp(propKey: string, propValue?: any): void;
        toHaveRef(refName: string): void;
        toHaveState(stateKey: string, stateValue?: any): void;
        toHaveStyle(styleKey: string, styleValue?: any): void;
        toHaveTagName(tagName: string): void;
        toHaveText(text: string): void;
        toIncludeText(text: string): void;
        toHaveValue(value: any): void;
        toMatchElement(element: ReactElement<any>): void;
        toMatchSelector(selector: string): void;
    }
}

/// <reference types="react" />

declare namespace jest {
    interface Matchers {
        toBeChecked(): void;
        toBeDisabled(): void;
        toBeEmpty(): void;
        toBePresent(): void;
        toContainReact(component: React.Component<any, any>): void;
        toHaveClassName(className: string): void;
        toHaveHTML(html: string): void;
        toHaveProp(propKey: string, propValue?: any): void;
        toHaveRef(refName: string): void;
        toHaveState(stateKey: string, stateValue?: any): void;
        toHaveStyle(styleKey: string, styleValue?: any): void;
        toHaveTagName(tagName: string): void;
        toHaveText(text: string): void;
        toIncludeText(text: string): void;
        toHaveValue(value: any): void;
        toMatchElement(element: ReactElement<any>): void;
        toMatchSelector(selector: string): void;
    }
}

--- 
+++ 
@@ -6,7 +6,7 @@
         toBeDisabled(): void;
         toBeEmpty(): void;
         toBePresent(): void;
-        toContainReact(component: React.Component<any, any>): void;
+        toContainReact(component: ReactElement<any>): void;
         toHaveClassName(className: string): void;
         toHaveHTML(html: string): void;
         toHaveProp(propKey: string, propValue?: any): void;
Fix typescript type of toContainReact argument

The documentation suggests that it takes a rendered element, not just the component class.

Without the fix:

```
  const child = <div id="child" />
  const element = enzyme.shallow(<div>{child}</div>);
  expect(element).toContainReact(child);
```
```
Argument of type 'Element' is not assignable to parameter of type 'Component<any, any>'.
  Property 'setState' is missing in type 'Element'.'
```

With the fix:
Compiles and runs!