## API Report File for "@microsoft/fast-react-wrapper"

> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).

```ts

import { Constructable } from '@microsoft/fast-element';
import { DesignSystem } from '@microsoft/fast-foundation';
import { FoundationElementDefinition } from '@microsoft/fast-foundation';
import { FoundationElementRegistry } from '@microsoft/fast-foundation';
import type ReactModule from 'react';
import { Registry } from '@microsoft/fast-foundation';

// @public
export type FoundationElementRegistryElement<TRegistry> = TRegistry extends FoundationElementRegistry<FoundationElementDefinition, infer TElement> ? TElement extends typeof HTMLElement ? InstanceType<TElement> : any : any;

// @public (undocumented)
export function provideReactWrapper(React: any, designSystem?: DesignSystem): {
    wrap: {
        <TRegistry extends FoundationElementRegistry<FoundationElementDefinition, any>, TEvents>(registry: TRegistry, config?: ReactWrapperConfig<TEvents> | undefined): ReactWrapper<FoundationElementRegistryElement<TRegistry>, TEvents>;
        <TElement extends HTMLElement, TEvents_1>(type: Constructable<TElement>, config?: ReactWrapperConfig<TEvents_1> | undefined): ReactWrapper<TElement, TEvents_1>;
    };
    registry: Registry;
};

// @public
export type ReactEventMap<T> = {
    [P in keyof T]: string;
};

// @public
export type ReactEvents<T> = {
    [P in keyof T]?: (e: Event) => unknown;
};

// @public
export type ReactWrapper<TElement extends HTMLElement, TEvents> = Constructable<ReactModule.Component<ReactWrapperProps<TElement, TEvents>>>;

// @public
export type ReactWrapperConfig<TEvents> = {
    name?: string;
    events?: ReactEventMap<TEvents>;
    properties?: string[];
};

// @public
export type ReactWrapperProps<TElement extends HTMLElement, TEvents> = ReactModule.PropsWithChildren<ReactModule.PropsWithRef<Partial<Omit<TElement, "children" | "style">> & ReactEvents<TEvents> & ReactModule.HTMLAttributes<HTMLElement>> & {
    style?: ReactModule.CSSProperties;
}>;

// (No @packageDocumentation comment for this package)

```
