From 865fc9d73d577b4c40c2e953bc43330e86527aa3 Mon Sep 17 00:00:00 2001 From: Oleksandr Fediashov Date: Thu, 24 Jan 2019 15:57:05 +0200 Subject: [PATCH] fix(react-fela): add FelaTheme to typings --- packages/react-fela/index.d.ts | 1117 ++++++++++++++++---------------- 1 file changed, 563 insertions(+), 554 deletions(-) diff --git a/packages/react-fela/index.d.ts b/packages/react-fela/index.d.ts index 7d6b636c1..1b314d4ab 100755 --- a/packages/react-fela/index.d.ts +++ b/packages/react-fela/index.d.ts @@ -1,554 +1,563 @@ -declare module "react-fela" { - import * as React from "react"; - import { - IRenderer, - TRule, - IStyle - } from "fela"; - import { - TMultiRuleObject, - TMultiRule, - TPartialMultiRule, - } from "fela-tools"; - - interface ThemeProviderProps { - theme: object; - overwrite?: boolean; - } - - /** - * Fela Theme Provider - */ - export class ThemeProvider extends React.Component { } - - interface ProviderProps { - renderer: object; - mountNode?: any; - } - - interface FelaWithThemeProps { - /** - * ref to underlying component - * - * @see {@link https://github.com/rofrischmann/fela/blob/master/modules/bindings/createComponentFactory.js#L68} - */ - innerRef?: (instance: any) => void, - theme: Theme, - } - /** - * - * @param {React.ComponentType} Component - component to inject theme into. - */ - export function withTheme(Component: React.ComponentType & Props>): React.ComponentType; - - /** - * Fela Provider - * - * @see {@link https://github.com/rofrischmann/fela/blob/master/modules/bindings/react/ThemeProvider.js} - */ - export class Provider extends React.Component { } - export class RendererProvider extends React.Component { } - - type Style = TRule | IStyle; - - type PassThroughFunction = (props: Props) => Array - - type PassThroughProps = Array | PassThroughFunction; - - export type Rules = TMultiRuleObject - - export interface FelaWithStylesProps { - styles: {[key in keyof Styles]: string}, - rules: {[key in keyof Styles]: TRule>>}, - } - - interface FelaWithStylesInjectedProps { - extend?: TPartialMultiRule, Styles> - } - - /** - * - * @param {React.ComponentType} Component - component to inject styles theme into. - */ - interface WithRules{ - (Component: React.ComponentType & Props>) - : React.ComponentType> - } - - export type ConnectConfig = { - pure?: boolean - } - - /** - * - * @param {TMultiRule} rules - rules that will be injected in the Component. - * @param {ConnectConfig} config - settings to configure Wrapper Component. - */ - export function connect( - rules: TMultiRule, Styles>, - config?: ConnectConfig, - ): WithRules - - /** - * Fela injects theme props. - * - * @see {@link https://github.com/rofrischmann/fela/blob/master/modules/bindings/createComponentFactory.js#L52} - */ - interface FelaInjectedProps { - theme?: Theme; - /** - * To change the type on runtime and/or for each component, you may use the as prop. - */ - as?: string | React.ComponentType; - /** - * This use case is especially important for library owners. - * Instead of passing the passThroughProps to the createComponent call directly, - * one can also use the passThrough prop on the created component to achieve the same effect. - */ - passThrough?: PassThroughProps; - /** - * ref to underlying component - * - * @see {@link https://github.com/rofrischmann/fela/blob/master/modules/bindings/createComponentFactory.js#L68} - */ - innerRef?: (instance: any) => void; - /** - * Extend component styles. - * - * @see {@link https://github.com/rofrischmann/fela/blob/master/packages/react-fela/docs/createComponent.md#extending-styles} - */ - extend?: Style; - } - - /** - * Returns a stateless HTML React component with Fela styles. - * - * @see {@link https://github.com/rofrischmann/fela/blob/master/modules/bindings/createComponentFactory.js#L15-L82} - */ - type FelaHtmlComponent = React.ComponentType & React.HTMLProps>; - - /** - * Returns a stateless SVG React component with Fela styles. - */ - type FelaSvgComponent = React.ComponentType & React.SVGAttributes>; - - /** - * By default, Fela returns a `div` stateless React component. - * - * @see {@link https://github.com/rofrischmann/fela/blob/master/modules/bindings/createComponentFactory.js#L12} - */ - type DefaultFelaHtmlComponent = FelaHtmlComponent; - - /** - * - * @param {Style} style - style function - */ - export function createComponent(style: Style): DefaultFelaHtmlComponent; - - /** - * - * @param {Style} style - style function - * @param {string} base - HTML element tag name - * @param {Array} passThroughProps - A list of props that get passed to the underlying element. - */ - export function createComponent(style: Style, base: string, passThroughProps?: PassThroughProps): FelaHtmlComponent; - - /** - * - * @param {Style} style - style function - * @param {FelaHtmlComponent} base - Fela component - * @param {Array} passThroughProps - A list of props that get passed to the underlying element. - */ - export function createComponent(style: Style, base: FelaHtmlComponent, passThroughProps?: PassThroughProps): FelaHtmlComponent; - - export function createComponent(style: Style, base: "a", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponent(style: Style, base: "abbr", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponent(style: Style, base: "address", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponent(style: Style, base: "area", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponent(style: Style, base: "article", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponent(style: Style, base: "aside", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponent(style: Style, base: "audio", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponent(style: Style, base: "b", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponent(style: Style, base: "base", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponent(style: Style, base: "bdi", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponent(style: Style, base: "bdo", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponent(style: Style, base: "big", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponent(style: Style, base: "blockquote", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponent(style: Style, base: "body", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponent(style: Style, base: "br", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponent(style: Style, base: "button", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponent(style: Style, base: "canvas", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponent(style: Style, base: "caption", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponent(style: Style, base: "cite", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponent(style: Style, base: "code", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponent(style: Style, base: "col", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponent(style: Style, base: "colgroup", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponent(style: Style, base: "data", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponent(style: Style, base: "datalist", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponent(style: Style, base: "dd", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponent(style: Style, base: "del", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponent(style: Style, base: "details", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponent(style: Style, base: "dfn", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponent(style: Style, base: "dialog", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponent(style: Style, base: "div", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponent(style: Style, base: "dl", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponent(style: Style, base: "dt", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponent(style: Style, base: "em", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponent(style: Style, base: "embed", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponent(style: Style, base: "fieldset", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponent(style: Style, base: "figcaption", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponent(style: Style, base: "figure", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponent(style: Style, base: "footer", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponent(style: Style, base: "form", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponent(style: Style, base: "h1", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponent(style: Style, base: "h2", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponent(style: Style, base: "h3", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponent(style: Style, base: "h4", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponent(style: Style, base: "h5", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponent(style: Style, base: "h6", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponent(style: Style, base: "head", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponent(style: Style, base: "header", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponent(style: Style, base: "hgroup", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponent(style: Style, base: "hr", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponent(style: Style, base: "html", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponent(style: Style, base: "i", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponent(style: Style, base: "iframe", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponent(style: Style, base: "img", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponent(style: Style, base: "input", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponent(style: Style, base: "ins", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponent(style: Style, base: "kbd", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponent(style: Style, base: "keygen", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponent(style: Style, base: "label", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponent(style: Style, base: "legend", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponent(style: Style, base: "li", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponent(style: Style, base: "link", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponent(style: Style, base: "main", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponent(style: Style, base: "map", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponent(style: Style, base: "mark", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponent(style: Style, base: "menu", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponent(style: Style, base: "menuitem", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponent(style: Style, base: "meta", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponent(style: Style, base: "meter", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponent(style: Style, base: "nav", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponent(style: Style, base: "noindex", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponent(style: Style, base: "noscript", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponent(style: Style, base: "object", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponent(style: Style, base: "ol", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponent(style: Style, base: "optgroup", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponent(style: Style, base: "option", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponent(style: Style, base: "output", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponent(style: Style, base: "p", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponent(style: Style, base: "param", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponent(style: Style, base: "picture", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponent(style: Style, base: "pre", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponent(style: Style, base: "progress", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponent(style: Style, base: "q", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponent(style: Style, base: "rp", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponent(style: Style, base: "rt", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponent(style: Style, base: "ruby", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponent(style: Style, base: "s", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponent(style: Style, base: "samp", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponent(style: Style, base: "script", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponent(style: Style, base: "section", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponent(style: Style, base: "select", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponent(style: Style, base: "small", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponent(style: Style, base: "source", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponent(style: Style, base: "span", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponent(style: Style, base: "strong", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponent(style: Style, base: "style", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponent(style: Style, base: "sub", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponent(style: Style, base: "summary", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponent(style: Style, base: "sup", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponent(style: Style, base: "table", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponent(style: Style, base: "tbody", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponent(style: Style, base: "td", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponent(style: Style, base: "textarea", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponent(style: Style, base: "tfoot", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponent(style: Style, base: "th", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponent(style: Style, base: "thead", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponent(style: Style, base: "time", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponent(style: Style, base: "title", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponent(style: Style, base: "tr", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponent(style: Style, base: "track", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponent(style: Style, base: "u", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponent(style: Style, base: "ul", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponent(style: Style, base: "var", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponent(style: Style, base: "video", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponent(style: Style, base: "wbr", passThroughProps?: PassThroughProps): FelaHtmlComponent; - - export function createComponent(style: Style, base: "svg", passThroughProps?: PassThroughProps): FelaSvgComponent; - export function createComponent(style: Style, base: "circle", passThroughProps?: PassThroughProps): FelaSvgComponent; - export function createComponent(style: Style, base: "clipPath", passThroughProps?: PassThroughProps): FelaSvgComponent; - export function createComponent(style: Style, base: "defs", passThroughProps?: PassThroughProps): FelaSvgComponent; - export function createComponent(style: Style, base: "desc", passThroughProps?: PassThroughProps): FelaSvgComponent; - export function createComponent(style: Style, base: "ellipse", passThroughProps?: PassThroughProps): FelaSvgComponent; - export function createComponent(style: Style, base: "feBlend", passThroughProps?: PassThroughProps): FelaSvgComponent; - export function createComponent(style: Style, base: "feColorMatrix", passThroughProps?: PassThroughProps): FelaSvgComponent; - export function createComponent(style: Style, base: "feComponentTransfer", passThroughProps?: PassThroughProps): FelaSvgComponent; - export function createComponent(style: Style, base: "feComposite", passThroughProps?: PassThroughProps): FelaSvgComponent; - export function createComponent(style: Style, base: "feConvolveMatrix", passThroughProps?: PassThroughProps): FelaSvgComponent; - export function createComponent(style: Style, base: "feDiffuseLighting", passThroughProps?: PassThroughProps): FelaSvgComponent; - export function createComponent(style: Style, base: "feDisplacementMap", passThroughProps?: PassThroughProps): FelaSvgComponent; - export function createComponent(style: Style, base: "feDistantLight", passThroughProps?: PassThroughProps): FelaSvgComponent; - export function createComponent(style: Style, base: "feFlood", passThroughProps?: PassThroughProps): FelaSvgComponent; - export function createComponent(style: Style, base: "feFuncA", passThroughProps?: PassThroughProps): FelaSvgComponent; - export function createComponent(style: Style, base: "feFuncB", passThroughProps?: PassThroughProps): FelaSvgComponent; - export function createComponent(style: Style, base: "feFuncG", passThroughProps?: PassThroughProps): FelaSvgComponent; - export function createComponent(style: Style, base: "feFuncR", passThroughProps?: PassThroughProps): FelaSvgComponent; - export function createComponent(style: Style, base: "feGaussianBlur", passThroughProps?: PassThroughProps): FelaSvgComponent; - export function createComponent(style: Style, base: "feImage", passThroughProps?: PassThroughProps): FelaSvgComponent; - export function createComponent(style: Style, base: "feMerge", passThroughProps?: PassThroughProps): FelaSvgComponent; - export function createComponent(style: Style, base: "feMergeNode", passThroughProps?: PassThroughProps): FelaSvgComponent; - export function createComponent(style: Style, base: "feMorphology", passThroughProps?: PassThroughProps): FelaSvgComponent; - export function createComponent(style: Style, base: "feOffset", passThroughProps?: PassThroughProps): FelaSvgComponent; - export function createComponent(style: Style, base: "fePointLight", passThroughProps?: PassThroughProps): FelaSvgComponent; - export function createComponent(style: Style, base: "feSpecularLighting", passThroughProps?: PassThroughProps): FelaSvgComponent; - export function createComponent(style: Style, base: "feSpotLight", passThroughProps?: PassThroughProps): FelaSvgComponent; - export function createComponent(style: Style, base: "feTile", passThroughProps?: PassThroughProps): FelaSvgComponent; - export function createComponent(style: Style, base: "feTurbulence", passThroughProps?: PassThroughProps): FelaSvgComponent; - export function createComponent(style: Style, base: "filter", passThroughProps?: PassThroughProps): FelaSvgComponent; - export function createComponent(style: Style, base: "foreignObject", passThroughProps?: PassThroughProps): FelaSvgComponent; - export function createComponent(style: Style, base: "g", passThroughProps?: PassThroughProps): FelaSvgComponent; - export function createComponent(style: Style, base: "image", passThroughProps?: PassThroughProps): FelaSvgComponent; - export function createComponent(style: Style, base: "line", passThroughProps?: PassThroughProps): FelaSvgComponent; - export function createComponent(style: Style, base: "linearGradient", passThroughProps?: PassThroughProps): FelaSvgComponent; - export function createComponent(style: Style, base: "marker", passThroughProps?: PassThroughProps): FelaSvgComponent; - export function createComponent(style: Style, base: "mask", passThroughProps?: PassThroughProps): FelaSvgComponent; - export function createComponent(style: Style, base: "metadata", passThroughProps?: PassThroughProps): FelaSvgComponent; - export function createComponent(style: Style, base: "path", passThroughProps?: PassThroughProps): FelaSvgComponent; - export function createComponent(style: Style, base: "pattern", passThroughProps?: PassThroughProps): FelaSvgComponent; - export function createComponent(style: Style, base: "polygon", passThroughProps?: PassThroughProps): FelaSvgComponent; - export function createComponent(style: Style, base: "polyline", passThroughProps?: PassThroughProps): FelaSvgComponent; - export function createComponent(style: Style, base: "radialGradient", passThroughProps?: PassThroughProps): FelaSvgComponent; - export function createComponent(style: Style, base: "rect", passThroughProps?: PassThroughProps): FelaSvgComponent; - export function createComponent(style: Style, base: "stop", passThroughProps?: PassThroughProps): FelaSvgComponent; - export function createComponent(style: Style, base: "switch", passThroughProps?: PassThroughProps): FelaSvgComponent; - export function createComponent(style: Style, base: "symbol", passThroughProps?: PassThroughProps): FelaSvgComponent; - export function createComponent(style: Style, base: "text", passThroughProps?: PassThroughProps): FelaSvgComponent; - export function createComponent(style: Style, base: "textPath", passThroughProps?: PassThroughProps): FelaSvgComponent; - export function createComponent(style: Style, base: "tspan", passThroughProps?: PassThroughProps): FelaSvgComponent; - export function createComponent(style: Style, base: "use", passThroughProps?: PassThroughProps): FelaSvgComponent; - export function createComponent(style: Style, base: "view", passThroughProps?: PassThroughProps): FelaSvgComponent; - - - /** - * - * @param {Style} style - style function - */ - export function createComponentWithProxy(style: Style): DefaultFelaHtmlComponent; - - /** - * - * @param {Style} style - style function - * @param {string} base - HTML element tag name - * @param {Array} passThroughProps - A list of props that get passed to the underlying element. - */ - export function createComponentWithProxy(style: Style, base: string, passThroughProps?: PassThroughProps): FelaHtmlComponent; - - /** - * - * @param {Style} style - style function - * @param {FelaHtmlComponent} base - Fela component - * @param {Array} passThroughProps - A list of props that get passed to the underlying element. - */ - export function createComponentWithProxy(style: Style, base: FelaHtmlComponent, passThroughProps?: PassThroughProps): FelaHtmlComponent; - - export function createComponentWithProxy(style: Style, base: "a", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponentWithProxy(style: Style, base: "abbr", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponentWithProxy(style: Style, base: "address", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponentWithProxy(style: Style, base: "area", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponentWithProxy(style: Style, base: "article", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponentWithProxy(style: Style, base: "aside", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponentWithProxy(style: Style, base: "audio", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponentWithProxy(style: Style, base: "b", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponentWithProxy(style: Style, base: "base", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponentWithProxy(style: Style, base: "bdi", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponentWithProxy(style: Style, base: "bdo", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponentWithProxy(style: Style, base: "big", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponentWithProxy(style: Style, base: "blockquote", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponentWithProxy(style: Style, base: "body", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponentWithProxy(style: Style, base: "br", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponentWithProxy(style: Style, base: "button", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponentWithProxy(style: Style, base: "canvas", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponentWithProxy(style: Style, base: "caption", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponentWithProxy(style: Style, base: "cite", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponentWithProxy(style: Style, base: "code", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponentWithProxy(style: Style, base: "col", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponentWithProxy(style: Style, base: "colgroup", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponentWithProxy(style: Style, base: "data", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponentWithProxy(style: Style, base: "datalist", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponentWithProxy(style: Style, base: "dd", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponentWithProxy(style: Style, base: "del", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponentWithProxy(style: Style, base: "details", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponentWithProxy(style: Style, base: "dfn", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponentWithProxy(style: Style, base: "dialog", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponentWithProxy(style: Style, base: "div", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponentWithProxy(style: Style, base: "dl", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponentWithProxy(style: Style, base: "dt", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponentWithProxy(style: Style, base: "em", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponentWithProxy(style: Style, base: "embed", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponentWithProxy(style: Style, base: "fieldset", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponentWithProxy(style: Style, base: "figcaption", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponentWithProxy(style: Style, base: "figure", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponentWithProxy(style: Style, base: "footer", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponentWithProxy(style: Style, base: "form", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponentWithProxy(style: Style, base: "h1", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponentWithProxy(style: Style, base: "h2", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponentWithProxy(style: Style, base: "h3", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponentWithProxy(style: Style, base: "h4", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponentWithProxy(style: Style, base: "h5", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponentWithProxy(style: Style, base: "h6", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponentWithProxy(style: Style, base: "head", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponentWithProxy(style: Style, base: "header", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponentWithProxy(style: Style, base: "hgroup", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponentWithProxy(style: Style, base: "hr", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponentWithProxy(style: Style, base: "html", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponentWithProxy(style: Style, base: "i", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponentWithProxy(style: Style, base: "iframe", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponentWithProxy(style: Style, base: "img", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponentWithProxy(style: Style, base: "input", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponentWithProxy(style: Style, base: "ins", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponentWithProxy(style: Style, base: "kbd", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponentWithProxy(style: Style, base: "keygen", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponentWithProxy(style: Style, base: "label", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponentWithProxy(style: Style, base: "legend", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponentWithProxy(style: Style, base: "li", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponentWithProxy(style: Style, base: "link", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponentWithProxy(style: Style, base: "main", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponentWithProxy(style: Style, base: "map", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponentWithProxy(style: Style, base: "mark", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponentWithProxy(style: Style, base: "menu", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponentWithProxy(style: Style, base: "menuitem", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponentWithProxy(style: Style, base: "meta", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponentWithProxy(style: Style, base: "meter", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponentWithProxy(style: Style, base: "nav", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponentWithProxy(style: Style, base: "noindex", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponentWithProxy(style: Style, base: "noscript", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponentWithProxy(style: Style, base: "object", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponentWithProxy(style: Style, base: "ol", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponentWithProxy(style: Style, base: "optgroup", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponentWithProxy(style: Style, base: "option", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponentWithProxy(style: Style, base: "output", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponentWithProxy(style: Style, base: "p", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponentWithProxy(style: Style, base: "param", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponentWithProxy(style: Style, base: "picture", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponentWithProxy(style: Style, base: "pre", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponentWithProxy(style: Style, base: "progress", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponentWithProxy(style: Style, base: "q", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponentWithProxy(style: Style, base: "rp", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponentWithProxy(style: Style, base: "rt", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponentWithProxy(style: Style, base: "ruby", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponentWithProxy(style: Style, base: "s", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponentWithProxy(style: Style, base: "samp", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponentWithProxy(style: Style, base: "script", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponentWithProxy(style: Style, base: "section", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponentWithProxy(style: Style, base: "select", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponentWithProxy(style: Style, base: "small", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponentWithProxy(style: Style, base: "source", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponentWithProxy(style: Style, base: "span", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponentWithProxy(style: Style, base: "strong", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponentWithProxy(style: Style, base: "style", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponentWithProxy(style: Style, base: "sub", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponentWithProxy(style: Style, base: "summary", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponentWithProxy(style: Style, base: "sup", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponentWithProxy(style: Style, base: "table", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponentWithProxy(style: Style, base: "tbody", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponentWithProxy(style: Style, base: "td", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponentWithProxy(style: Style, base: "textarea", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponentWithProxy(style: Style, base: "tfoot", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponentWithProxy(style: Style, base: "th", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponentWithProxy(style: Style, base: "thead", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponentWithProxy(style: Style, base: "time", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponentWithProxy(style: Style, base: "title", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponentWithProxy(style: Style, base: "tr", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponentWithProxy(style: Style, base: "track", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponentWithProxy(style: Style, base: "u", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponentWithProxy(style: Style, base: "ul", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponentWithProxy(style: Style, base: "var", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponentWithProxy(style: Style, base: "video", passThroughProps?: PassThroughProps): FelaHtmlComponent; - export function createComponentWithProxy(style: Style, base: "wbr", passThroughProps?: PassThroughProps): FelaHtmlComponent; - - export function createComponentWithProxy(style: Style, base: "svg", passThroughProps?: PassThroughProps): FelaSvgComponent; - export function createComponentWithProxy(style: Style, base: "circle", passThroughProps?: PassThroughProps): FelaSvgComponent; - export function createComponentWithProxy(style: Style, base: "clipPath", passThroughProps?: PassThroughProps): FelaSvgComponent; - export function createComponentWithProxy(style: Style, base: "defs", passThroughProps?: PassThroughProps): FelaSvgComponent; - export function createComponentWithProxy(style: Style, base: "desc", passThroughProps?: PassThroughProps): FelaSvgComponent; - export function createComponentWithProxy(style: Style, base: "ellipse", passThroughProps?: PassThroughProps): FelaSvgComponent; - export function createComponentWithProxy(style: Style, base: "feBlend", passThroughProps?: PassThroughProps): FelaSvgComponent; - export function createComponentWithProxy(style: Style, base: "feColorMatrix", passThroughProps?: PassThroughProps): FelaSvgComponent; - export function createComponentWithProxy(style: Style, base: "feComponentTransfer", passThroughProps?: PassThroughProps): FelaSvgComponent; - export function createComponentWithProxy(style: Style, base: "feComposite", passThroughProps?: PassThroughProps): FelaSvgComponent; - export function createComponentWithProxy(style: Style, base: "feConvolveMatrix", passThroughProps?: PassThroughProps): FelaSvgComponent; - export function createComponentWithProxy(style: Style, base: "feDiffuseLighting", passThroughProps?: PassThroughProps): FelaSvgComponent; - export function createComponentWithProxy(style: Style, base: "feDisplacementMap", passThroughProps?: PassThroughProps): FelaSvgComponent; - export function createComponentWithProxy(style: Style, base: "feDistantLight", passThroughProps?: PassThroughProps): FelaSvgComponent; - export function createComponentWithProxy(style: Style, base: "feFlood", passThroughProps?: PassThroughProps): FelaSvgComponent; - export function createComponentWithProxy(style: Style, base: "feFuncA", passThroughProps?: PassThroughProps): FelaSvgComponent; - export function createComponentWithProxy(style: Style, base: "feFuncB", passThroughProps?: PassThroughProps): FelaSvgComponent; - export function createComponentWithProxy(style: Style, base: "feFuncG", passThroughProps?: PassThroughProps): FelaSvgComponent; - export function createComponentWithProxy(style: Style, base: "feFuncR", passThroughProps?: PassThroughProps): FelaSvgComponent; - export function createComponentWithProxy(style: Style, base: "feGaussianBlur", passThroughProps?: PassThroughProps): FelaSvgComponent; - export function createComponentWithProxy(style: Style, base: "feImage", passThroughProps?: PassThroughProps): FelaSvgComponent; - export function createComponentWithProxy(style: Style, base: "feMerge", passThroughProps?: PassThroughProps): FelaSvgComponent; - export function createComponentWithProxy(style: Style, base: "feMergeNode", passThroughProps?: PassThroughProps): FelaSvgComponent; - export function createComponentWithProxy(style: Style, base: "feMorphology", passThroughProps?: PassThroughProps): FelaSvgComponent; - export function createComponentWithProxy(style: Style, base: "feOffset", passThroughProps?: PassThroughProps): FelaSvgComponent; - export function createComponentWithProxy(style: Style, base: "fePointLight", passThroughProps?: PassThroughProps): FelaSvgComponent; - export function createComponentWithProxy(style: Style, base: "feSpecularLighting", passThroughProps?: PassThroughProps): FelaSvgComponent; - export function createComponentWithProxy(style: Style, base: "feSpotLight", passThroughProps?: PassThroughProps): FelaSvgComponent; - export function createComponentWithProxy(style: Style, base: "feTile", passThroughProps?: PassThroughProps): FelaSvgComponent; - export function createComponentWithProxy(style: Style, base: "feTurbulence", passThroughProps?: PassThroughProps): FelaSvgComponent; - export function createComponentWithProxy(style: Style, base: "filter", passThroughProps?: PassThroughProps): FelaSvgComponent; - export function createComponentWithProxy(style: Style, base: "foreignObject", passThroughProps?: PassThroughProps): FelaSvgComponent; - export function createComponentWithProxy(style: Style, base: "g", passThroughProps?: PassThroughProps): FelaSvgComponent; - export function createComponentWithProxy(style: Style, base: "image", passThroughProps?: PassThroughProps): FelaSvgComponent; - export function createComponentWithProxy(style: Style, base: "line", passThroughProps?: PassThroughProps): FelaSvgComponent; - export function createComponentWithProxy(style: Style, base: "linearGradient", passThroughProps?: PassThroughProps): FelaSvgComponent; - export function createComponentWithProxy(style: Style, base: "marker", passThroughProps?: PassThroughProps): FelaSvgComponent; - export function createComponentWithProxy(style: Style, base: "mask", passThroughProps?: PassThroughProps): FelaSvgComponent; - export function createComponentWithProxy(style: Style, base: "metadata", passThroughProps?: PassThroughProps): FelaSvgComponent; - export function createComponentWithProxy(style: Style, base: "path", passThroughProps?: PassThroughProps): FelaSvgComponent; - export function createComponentWithProxy(style: Style, base: "pattern", passThroughProps?: PassThroughProps): FelaSvgComponent; - export function createComponentWithProxy(style: Style, base: "polygon", passThroughProps?: PassThroughProps): FelaSvgComponent; - export function createComponentWithProxy(style: Style, base: "polyline", passThroughProps?: PassThroughProps): FelaSvgComponent; - export function createComponentWithProxy(style: Style, base: "radialGradient", passThroughProps?: PassThroughProps): FelaSvgComponent; - export function createComponentWithProxy(style: Style, base: "rect", passThroughProps?: PassThroughProps): FelaSvgComponent; - export function createComponentWithProxy(style: Style, base: "stop", passThroughProps?: PassThroughProps): FelaSvgComponent; - export function createComponentWithProxy(style: Style, base: "switch", passThroughProps?: PassThroughProps): FelaSvgComponent; - export function createComponentWithProxy(style: Style, base: "symbol", passThroughProps?: PassThroughProps): FelaSvgComponent; - export function createComponentWithProxy(style: Style, base: "text", passThroughProps?: PassThroughProps): FelaSvgComponent; - export function createComponentWithProxy(style: Style, base: "textPath", passThroughProps?: PassThroughProps): FelaSvgComponent; - export function createComponentWithProxy(style: Style, base: "tspan", passThroughProps?: PassThroughProps): FelaSvgComponent; - export function createComponentWithProxy(style: Style, base: "use", passThroughProps?: PassThroughProps): FelaSvgComponent; - export function createComponentWithProxy(style: Style, base: "view", passThroughProps?: PassThroughProps): FelaSvgComponent; - - export const RendererContext: React.Context - - interface RenderProps { - className: string, - theme: T, - as: keyof React.ReactHTML, - } - - export type StyleProps = { theme: T } & { - [K in keyof P]?: P[K] - } - - export type StyleFunction = (styleProps: StyleProps) => IStyle - - export type FelaStyle = IStyle | StyleFunction | Array | IStyle> - - export interface WithStyle { - style: FelaStyle - } - - interface FelaComponentProps { - children?: ((renderProps: RenderProps) => React.ReactNode) | React.ReactNode, - customClass?: string, - style: FelaStyle, - as?: keyof React.ReactHTML, - } - - export class FelaComponent extends React.Component & P> { - } -} +declare module "react-fela" { + import * as React from "react"; + import { + IRenderer, + TRule, + IStyle + } from "fela"; + import { + TMultiRuleObject, + TMultiRule, + TPartialMultiRule, + } from "fela-tools"; + + interface ThemeProviderProps { + theme: object; + overwrite?: boolean; + } + + /** + * Fela Theme Provider + */ + export class ThemeProvider extends React.Component { } + + interface FelaThemeProps { + children: (theme: object) => React.ReactNode; + } + + /** + * Fela Theme + */ + export class FelaTheme extends React.Component {} + + interface ProviderProps { + renderer: object; + mountNode?: any; + } + + interface FelaWithThemeProps { + /** + * ref to underlying component + * + * @see {@link https://github.com/rofrischmann/fela/blob/master/modules/bindings/createComponentFactory.js#L68} + */ + innerRef?: (instance: any) => void, + theme: Theme, + } + /** + * + * @param {React.ComponentType} Component - component to inject theme into. + */ + export function withTheme(Component: React.ComponentType & Props>): React.ComponentType; + + /** + * Fela Provider + * + * @see {@link https://github.com/rofrischmann/fela/blob/master/modules/bindings/react/ThemeProvider.js} + */ + export class Provider extends React.Component { } + export class RendererProvider extends React.Component { } + + type Style = TRule | IStyle; + + type PassThroughFunction = (props: Props) => Array + + type PassThroughProps = Array | PassThroughFunction; + + export type Rules = TMultiRuleObject + + export interface FelaWithStylesProps { + styles: {[key in keyof Styles]: string}, + rules: {[key in keyof Styles]: TRule>>}, + } + + interface FelaWithStylesInjectedProps { + extend?: TPartialMultiRule, Styles> + } + + /** + * + * @param {React.ComponentType} Component - component to inject styles theme into. + */ + interface WithRules{ + (Component: React.ComponentType & Props>) + : React.ComponentType> + } + + export type ConnectConfig = { + pure?: boolean + } + + /** + * + * @param {TMultiRule} rules - rules that will be injected in the Component. + * @param {ConnectConfig} config - settings to configure Wrapper Component. + */ + export function connect( + rules: TMultiRule, Styles>, + config?: ConnectConfig, + ): WithRules + + /** + * Fela injects theme props. + * + * @see {@link https://github.com/rofrischmann/fela/blob/master/modules/bindings/createComponentFactory.js#L52} + */ + interface FelaInjectedProps { + theme?: Theme; + /** + * To change the type on runtime and/or for each component, you may use the as prop. + */ + as?: string | React.ComponentType; + /** + * This use case is especially important for library owners. + * Instead of passing the passThroughProps to the createComponent call directly, + * one can also use the passThrough prop on the created component to achieve the same effect. + */ + passThrough?: PassThroughProps; + /** + * ref to underlying component + * + * @see {@link https://github.com/rofrischmann/fela/blob/master/modules/bindings/createComponentFactory.js#L68} + */ + innerRef?: (instance: any) => void; + /** + * Extend component styles. + * + * @see {@link https://github.com/rofrischmann/fela/blob/master/packages/react-fela/docs/createComponent.md#extending-styles} + */ + extend?: Style; + } + + /** + * Returns a stateless HTML React component with Fela styles. + * + * @see {@link https://github.com/rofrischmann/fela/blob/master/modules/bindings/createComponentFactory.js#L15-L82} + */ + type FelaHtmlComponent = React.ComponentType & React.HTMLProps>; + + /** + * Returns a stateless SVG React component with Fela styles. + */ + type FelaSvgComponent = React.ComponentType & React.SVGAttributes>; + + /** + * By default, Fela returns a `div` stateless React component. + * + * @see {@link https://github.com/rofrischmann/fela/blob/master/modules/bindings/createComponentFactory.js#L12} + */ + type DefaultFelaHtmlComponent = FelaHtmlComponent; + + /** + * + * @param {Style} style - style function + */ + export function createComponent(style: Style): DefaultFelaHtmlComponent; + + /** + * + * @param {Style} style - style function + * @param {string} base - HTML element tag name + * @param {Array} passThroughProps - A list of props that get passed to the underlying element. + */ + export function createComponent(style: Style, base: string, passThroughProps?: PassThroughProps): FelaHtmlComponent; + + /** + * + * @param {Style} style - style function + * @param {FelaHtmlComponent} base - Fela component + * @param {Array} passThroughProps - A list of props that get passed to the underlying element. + */ + export function createComponent(style: Style, base: FelaHtmlComponent, passThroughProps?: PassThroughProps): FelaHtmlComponent; + + export function createComponent(style: Style, base: "a", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponent(style: Style, base: "abbr", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponent(style: Style, base: "address", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponent(style: Style, base: "area", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponent(style: Style, base: "article", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponent(style: Style, base: "aside", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponent(style: Style, base: "audio", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponent(style: Style, base: "b", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponent(style: Style, base: "base", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponent(style: Style, base: "bdi", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponent(style: Style, base: "bdo", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponent(style: Style, base: "big", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponent(style: Style, base: "blockquote", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponent(style: Style, base: "body", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponent(style: Style, base: "br", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponent(style: Style, base: "button", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponent(style: Style, base: "canvas", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponent(style: Style, base: "caption", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponent(style: Style, base: "cite", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponent(style: Style, base: "code", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponent(style: Style, base: "col", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponent(style: Style, base: "colgroup", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponent(style: Style, base: "data", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponent(style: Style, base: "datalist", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponent(style: Style, base: "dd", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponent(style: Style, base: "del", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponent(style: Style, base: "details", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponent(style: Style, base: "dfn", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponent(style: Style, base: "dialog", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponent(style: Style, base: "div", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponent(style: Style, base: "dl", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponent(style: Style, base: "dt", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponent(style: Style, base: "em", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponent(style: Style, base: "embed", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponent(style: Style, base: "fieldset", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponent(style: Style, base: "figcaption", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponent(style: Style, base: "figure", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponent(style: Style, base: "footer", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponent(style: Style, base: "form", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponent(style: Style, base: "h1", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponent(style: Style, base: "h2", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponent(style: Style, base: "h3", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponent(style: Style, base: "h4", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponent(style: Style, base: "h5", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponent(style: Style, base: "h6", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponent(style: Style, base: "head", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponent(style: Style, base: "header", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponent(style: Style, base: "hgroup", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponent(style: Style, base: "hr", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponent(style: Style, base: "html", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponent(style: Style, base: "i", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponent(style: Style, base: "iframe", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponent(style: Style, base: "img", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponent(style: Style, base: "input", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponent(style: Style, base: "ins", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponent(style: Style, base: "kbd", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponent(style: Style, base: "keygen", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponent(style: Style, base: "label", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponent(style: Style, base: "legend", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponent(style: Style, base: "li", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponent(style: Style, base: "link", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponent(style: Style, base: "main", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponent(style: Style, base: "map", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponent(style: Style, base: "mark", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponent(style: Style, base: "menu", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponent(style: Style, base: "menuitem", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponent(style: Style, base: "meta", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponent(style: Style, base: "meter", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponent(style: Style, base: "nav", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponent(style: Style, base: "noindex", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponent(style: Style, base: "noscript", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponent(style: Style, base: "object", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponent(style: Style, base: "ol", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponent(style: Style, base: "optgroup", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponent(style: Style, base: "option", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponent(style: Style, base: "output", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponent(style: Style, base: "p", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponent(style: Style, base: "param", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponent(style: Style, base: "picture", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponent(style: Style, base: "pre", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponent(style: Style, base: "progress", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponent(style: Style, base: "q", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponent(style: Style, base: "rp", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponent(style: Style, base: "rt", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponent(style: Style, base: "ruby", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponent(style: Style, base: "s", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponent(style: Style, base: "samp", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponent(style: Style, base: "script", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponent(style: Style, base: "section", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponent(style: Style, base: "select", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponent(style: Style, base: "small", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponent(style: Style, base: "source", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponent(style: Style, base: "span", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponent(style: Style, base: "strong", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponent(style: Style, base: "style", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponent(style: Style, base: "sub", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponent(style: Style, base: "summary", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponent(style: Style, base: "sup", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponent(style: Style, base: "table", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponent(style: Style, base: "tbody", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponent(style: Style, base: "td", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponent(style: Style, base: "textarea", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponent(style: Style, base: "tfoot", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponent(style: Style, base: "th", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponent(style: Style, base: "thead", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponent(style: Style, base: "time", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponent(style: Style, base: "title", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponent(style: Style, base: "tr", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponent(style: Style, base: "track", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponent(style: Style, base: "u", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponent(style: Style, base: "ul", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponent(style: Style, base: "var", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponent(style: Style, base: "video", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponent(style: Style, base: "wbr", passThroughProps?: PassThroughProps): FelaHtmlComponent; + + export function createComponent(style: Style, base: "svg", passThroughProps?: PassThroughProps): FelaSvgComponent; + export function createComponent(style: Style, base: "circle", passThroughProps?: PassThroughProps): FelaSvgComponent; + export function createComponent(style: Style, base: "clipPath", passThroughProps?: PassThroughProps): FelaSvgComponent; + export function createComponent(style: Style, base: "defs", passThroughProps?: PassThroughProps): FelaSvgComponent; + export function createComponent(style: Style, base: "desc", passThroughProps?: PassThroughProps): FelaSvgComponent; + export function createComponent(style: Style, base: "ellipse", passThroughProps?: PassThroughProps): FelaSvgComponent; + export function createComponent(style: Style, base: "feBlend", passThroughProps?: PassThroughProps): FelaSvgComponent; + export function createComponent(style: Style, base: "feColorMatrix", passThroughProps?: PassThroughProps): FelaSvgComponent; + export function createComponent(style: Style, base: "feComponentTransfer", passThroughProps?: PassThroughProps): FelaSvgComponent; + export function createComponent(style: Style, base: "feComposite", passThroughProps?: PassThroughProps): FelaSvgComponent; + export function createComponent(style: Style, base: "feConvolveMatrix", passThroughProps?: PassThroughProps): FelaSvgComponent; + export function createComponent(style: Style, base: "feDiffuseLighting", passThroughProps?: PassThroughProps): FelaSvgComponent; + export function createComponent(style: Style, base: "feDisplacementMap", passThroughProps?: PassThroughProps): FelaSvgComponent; + export function createComponent(style: Style, base: "feDistantLight", passThroughProps?: PassThroughProps): FelaSvgComponent; + export function createComponent(style: Style, base: "feFlood", passThroughProps?: PassThroughProps): FelaSvgComponent; + export function createComponent(style: Style, base: "feFuncA", passThroughProps?: PassThroughProps): FelaSvgComponent; + export function createComponent(style: Style, base: "feFuncB", passThroughProps?: PassThroughProps): FelaSvgComponent; + export function createComponent(style: Style, base: "feFuncG", passThroughProps?: PassThroughProps): FelaSvgComponent; + export function createComponent(style: Style, base: "feFuncR", passThroughProps?: PassThroughProps): FelaSvgComponent; + export function createComponent(style: Style, base: "feGaussianBlur", passThroughProps?: PassThroughProps): FelaSvgComponent; + export function createComponent(style: Style, base: "feImage", passThroughProps?: PassThroughProps): FelaSvgComponent; + export function createComponent(style: Style, base: "feMerge", passThroughProps?: PassThroughProps): FelaSvgComponent; + export function createComponent(style: Style, base: "feMergeNode", passThroughProps?: PassThroughProps): FelaSvgComponent; + export function createComponent(style: Style, base: "feMorphology", passThroughProps?: PassThroughProps): FelaSvgComponent; + export function createComponent(style: Style, base: "feOffset", passThroughProps?: PassThroughProps): FelaSvgComponent; + export function createComponent(style: Style, base: "fePointLight", passThroughProps?: PassThroughProps): FelaSvgComponent; + export function createComponent(style: Style, base: "feSpecularLighting", passThroughProps?: PassThroughProps): FelaSvgComponent; + export function createComponent(style: Style, base: "feSpotLight", passThroughProps?: PassThroughProps): FelaSvgComponent; + export function createComponent(style: Style, base: "feTile", passThroughProps?: PassThroughProps): FelaSvgComponent; + export function createComponent(style: Style, base: "feTurbulence", passThroughProps?: PassThroughProps): FelaSvgComponent; + export function createComponent(style: Style, base: "filter", passThroughProps?: PassThroughProps): FelaSvgComponent; + export function createComponent(style: Style, base: "foreignObject", passThroughProps?: PassThroughProps): FelaSvgComponent; + export function createComponent(style: Style, base: "g", passThroughProps?: PassThroughProps): FelaSvgComponent; + export function createComponent(style: Style, base: "image", passThroughProps?: PassThroughProps): FelaSvgComponent; + export function createComponent(style: Style, base: "line", passThroughProps?: PassThroughProps): FelaSvgComponent; + export function createComponent(style: Style, base: "linearGradient", passThroughProps?: PassThroughProps): FelaSvgComponent; + export function createComponent(style: Style, base: "marker", passThroughProps?: PassThroughProps): FelaSvgComponent; + export function createComponent(style: Style, base: "mask", passThroughProps?: PassThroughProps): FelaSvgComponent; + export function createComponent(style: Style, base: "metadata", passThroughProps?: PassThroughProps): FelaSvgComponent; + export function createComponent(style: Style, base: "path", passThroughProps?: PassThroughProps): FelaSvgComponent; + export function createComponent(style: Style, base: "pattern", passThroughProps?: PassThroughProps): FelaSvgComponent; + export function createComponent(style: Style, base: "polygon", passThroughProps?: PassThroughProps): FelaSvgComponent; + export function createComponent(style: Style, base: "polyline", passThroughProps?: PassThroughProps): FelaSvgComponent; + export function createComponent(style: Style, base: "radialGradient", passThroughProps?: PassThroughProps): FelaSvgComponent; + export function createComponent(style: Style, base: "rect", passThroughProps?: PassThroughProps): FelaSvgComponent; + export function createComponent(style: Style, base: "stop", passThroughProps?: PassThroughProps): FelaSvgComponent; + export function createComponent(style: Style, base: "switch", passThroughProps?: PassThroughProps): FelaSvgComponent; + export function createComponent(style: Style, base: "symbol", passThroughProps?: PassThroughProps): FelaSvgComponent; + export function createComponent(style: Style, base: "text", passThroughProps?: PassThroughProps): FelaSvgComponent; + export function createComponent(style: Style, base: "textPath", passThroughProps?: PassThroughProps): FelaSvgComponent; + export function createComponent(style: Style, base: "tspan", passThroughProps?: PassThroughProps): FelaSvgComponent; + export function createComponent(style: Style, base: "use", passThroughProps?: PassThroughProps): FelaSvgComponent; + export function createComponent(style: Style, base: "view", passThroughProps?: PassThroughProps): FelaSvgComponent; + + + /** + * + * @param {Style} style - style function + */ + export function createComponentWithProxy(style: Style): DefaultFelaHtmlComponent; + + /** + * + * @param {Style} style - style function + * @param {string} base - HTML element tag name + * @param {Array} passThroughProps - A list of props that get passed to the underlying element. + */ + export function createComponentWithProxy(style: Style, base: string, passThroughProps?: PassThroughProps): FelaHtmlComponent; + + /** + * + * @param {Style} style - style function + * @param {FelaHtmlComponent} base - Fela component + * @param {Array} passThroughProps - A list of props that get passed to the underlying element. + */ + export function createComponentWithProxy(style: Style, base: FelaHtmlComponent, passThroughProps?: PassThroughProps): FelaHtmlComponent; + + export function createComponentWithProxy(style: Style, base: "a", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponentWithProxy(style: Style, base: "abbr", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponentWithProxy(style: Style, base: "address", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponentWithProxy(style: Style, base: "area", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponentWithProxy(style: Style, base: "article", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponentWithProxy(style: Style, base: "aside", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponentWithProxy(style: Style, base: "audio", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponentWithProxy(style: Style, base: "b", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponentWithProxy(style: Style, base: "base", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponentWithProxy(style: Style, base: "bdi", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponentWithProxy(style: Style, base: "bdo", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponentWithProxy(style: Style, base: "big", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponentWithProxy(style: Style, base: "blockquote", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponentWithProxy(style: Style, base: "body", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponentWithProxy(style: Style, base: "br", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponentWithProxy(style: Style, base: "button", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponentWithProxy(style: Style, base: "canvas", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponentWithProxy(style: Style, base: "caption", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponentWithProxy(style: Style, base: "cite", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponentWithProxy(style: Style, base: "code", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponentWithProxy(style: Style, base: "col", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponentWithProxy(style: Style, base: "colgroup", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponentWithProxy(style: Style, base: "data", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponentWithProxy(style: Style, base: "datalist", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponentWithProxy(style: Style, base: "dd", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponentWithProxy(style: Style, base: "del", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponentWithProxy(style: Style, base: "details", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponentWithProxy(style: Style, base: "dfn", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponentWithProxy(style: Style, base: "dialog", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponentWithProxy(style: Style, base: "div", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponentWithProxy(style: Style, base: "dl", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponentWithProxy(style: Style, base: "dt", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponentWithProxy(style: Style, base: "em", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponentWithProxy(style: Style, base: "embed", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponentWithProxy(style: Style, base: "fieldset", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponentWithProxy(style: Style, base: "figcaption", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponentWithProxy(style: Style, base: "figure", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponentWithProxy(style: Style, base: "footer", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponentWithProxy(style: Style, base: "form", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponentWithProxy(style: Style, base: "h1", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponentWithProxy(style: Style, base: "h2", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponentWithProxy(style: Style, base: "h3", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponentWithProxy(style: Style, base: "h4", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponentWithProxy(style: Style, base: "h5", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponentWithProxy(style: Style, base: "h6", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponentWithProxy(style: Style, base: "head", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponentWithProxy(style: Style, base: "header", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponentWithProxy(style: Style, base: "hgroup", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponentWithProxy(style: Style, base: "hr", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponentWithProxy(style: Style, base: "html", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponentWithProxy(style: Style, base: "i", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponentWithProxy(style: Style, base: "iframe", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponentWithProxy(style: Style, base: "img", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponentWithProxy(style: Style, base: "input", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponentWithProxy(style: Style, base: "ins", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponentWithProxy(style: Style, base: "kbd", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponentWithProxy(style: Style, base: "keygen", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponentWithProxy(style: Style, base: "label", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponentWithProxy(style: Style, base: "legend", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponentWithProxy(style: Style, base: "li", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponentWithProxy(style: Style, base: "link", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponentWithProxy(style: Style, base: "main", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponentWithProxy(style: Style, base: "map", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponentWithProxy(style: Style, base: "mark", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponentWithProxy(style: Style, base: "menu", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponentWithProxy(style: Style, base: "menuitem", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponentWithProxy(style: Style, base: "meta", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponentWithProxy(style: Style, base: "meter", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponentWithProxy(style: Style, base: "nav", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponentWithProxy(style: Style, base: "noindex", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponentWithProxy(style: Style, base: "noscript", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponentWithProxy(style: Style, base: "object", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponentWithProxy(style: Style, base: "ol", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponentWithProxy(style: Style, base: "optgroup", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponentWithProxy(style: Style, base: "option", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponentWithProxy(style: Style, base: "output", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponentWithProxy(style: Style, base: "p", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponentWithProxy(style: Style, base: "param", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponentWithProxy(style: Style, base: "picture", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponentWithProxy(style: Style, base: "pre", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponentWithProxy(style: Style, base: "progress", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponentWithProxy(style: Style, base: "q", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponentWithProxy(style: Style, base: "rp", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponentWithProxy(style: Style, base: "rt", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponentWithProxy(style: Style, base: "ruby", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponentWithProxy(style: Style, base: "s", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponentWithProxy(style: Style, base: "samp", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponentWithProxy(style: Style, base: "script", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponentWithProxy(style: Style, base: "section", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponentWithProxy(style: Style, base: "select", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponentWithProxy(style: Style, base: "small", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponentWithProxy(style: Style, base: "source", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponentWithProxy(style: Style, base: "span", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponentWithProxy(style: Style, base: "strong", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponentWithProxy(style: Style, base: "style", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponentWithProxy(style: Style, base: "sub", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponentWithProxy(style: Style, base: "summary", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponentWithProxy(style: Style, base: "sup", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponentWithProxy(style: Style, base: "table", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponentWithProxy(style: Style, base: "tbody", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponentWithProxy(style: Style, base: "td", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponentWithProxy(style: Style, base: "textarea", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponentWithProxy(style: Style, base: "tfoot", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponentWithProxy(style: Style, base: "th", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponentWithProxy(style: Style, base: "thead", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponentWithProxy(style: Style, base: "time", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponentWithProxy(style: Style, base: "title", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponentWithProxy(style: Style, base: "tr", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponentWithProxy(style: Style, base: "track", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponentWithProxy(style: Style, base: "u", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponentWithProxy(style: Style, base: "ul", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponentWithProxy(style: Style, base: "var", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponentWithProxy(style: Style, base: "video", passThroughProps?: PassThroughProps): FelaHtmlComponent; + export function createComponentWithProxy(style: Style, base: "wbr", passThroughProps?: PassThroughProps): FelaHtmlComponent; + + export function createComponentWithProxy(style: Style, base: "svg", passThroughProps?: PassThroughProps): FelaSvgComponent; + export function createComponentWithProxy(style: Style, base: "circle", passThroughProps?: PassThroughProps): FelaSvgComponent; + export function createComponentWithProxy(style: Style, base: "clipPath", passThroughProps?: PassThroughProps): FelaSvgComponent; + export function createComponentWithProxy(style: Style, base: "defs", passThroughProps?: PassThroughProps): FelaSvgComponent; + export function createComponentWithProxy(style: Style, base: "desc", passThroughProps?: PassThroughProps): FelaSvgComponent; + export function createComponentWithProxy(style: Style, base: "ellipse", passThroughProps?: PassThroughProps): FelaSvgComponent; + export function createComponentWithProxy(style: Style, base: "feBlend", passThroughProps?: PassThroughProps): FelaSvgComponent; + export function createComponentWithProxy(style: Style, base: "feColorMatrix", passThroughProps?: PassThroughProps): FelaSvgComponent; + export function createComponentWithProxy(style: Style, base: "feComponentTransfer", passThroughProps?: PassThroughProps): FelaSvgComponent; + export function createComponentWithProxy(style: Style, base: "feComposite", passThroughProps?: PassThroughProps): FelaSvgComponent; + export function createComponentWithProxy(style: Style, base: "feConvolveMatrix", passThroughProps?: PassThroughProps): FelaSvgComponent; + export function createComponentWithProxy(style: Style, base: "feDiffuseLighting", passThroughProps?: PassThroughProps): FelaSvgComponent; + export function createComponentWithProxy(style: Style, base: "feDisplacementMap", passThroughProps?: PassThroughProps): FelaSvgComponent; + export function createComponentWithProxy(style: Style, base: "feDistantLight", passThroughProps?: PassThroughProps): FelaSvgComponent; + export function createComponentWithProxy(style: Style, base: "feFlood", passThroughProps?: PassThroughProps): FelaSvgComponent; + export function createComponentWithProxy(style: Style, base: "feFuncA", passThroughProps?: PassThroughProps): FelaSvgComponent; + export function createComponentWithProxy(style: Style, base: "feFuncB", passThroughProps?: PassThroughProps): FelaSvgComponent; + export function createComponentWithProxy(style: Style, base: "feFuncG", passThroughProps?: PassThroughProps): FelaSvgComponent; + export function createComponentWithProxy(style: Style, base: "feFuncR", passThroughProps?: PassThroughProps): FelaSvgComponent; + export function createComponentWithProxy(style: Style, base: "feGaussianBlur", passThroughProps?: PassThroughProps): FelaSvgComponent; + export function createComponentWithProxy(style: Style, base: "feImage", passThroughProps?: PassThroughProps): FelaSvgComponent; + export function createComponentWithProxy(style: Style, base: "feMerge", passThroughProps?: PassThroughProps): FelaSvgComponent; + export function createComponentWithProxy(style: Style, base: "feMergeNode", passThroughProps?: PassThroughProps): FelaSvgComponent; + export function createComponentWithProxy(style: Style, base: "feMorphology", passThroughProps?: PassThroughProps): FelaSvgComponent; + export function createComponentWithProxy(style: Style, base: "feOffset", passThroughProps?: PassThroughProps): FelaSvgComponent; + export function createComponentWithProxy(style: Style, base: "fePointLight", passThroughProps?: PassThroughProps): FelaSvgComponent; + export function createComponentWithProxy(style: Style, base: "feSpecularLighting", passThroughProps?: PassThroughProps): FelaSvgComponent; + export function createComponentWithProxy(style: Style, base: "feSpotLight", passThroughProps?: PassThroughProps): FelaSvgComponent; + export function createComponentWithProxy(style: Style, base: "feTile", passThroughProps?: PassThroughProps): FelaSvgComponent; + export function createComponentWithProxy(style: Style, base: "feTurbulence", passThroughProps?: PassThroughProps): FelaSvgComponent; + export function createComponentWithProxy(style: Style, base: "filter", passThroughProps?: PassThroughProps): FelaSvgComponent; + export function createComponentWithProxy(style: Style, base: "foreignObject", passThroughProps?: PassThroughProps): FelaSvgComponent; + export function createComponentWithProxy(style: Style, base: "g", passThroughProps?: PassThroughProps): FelaSvgComponent; + export function createComponentWithProxy(style: Style, base: "image", passThroughProps?: PassThroughProps): FelaSvgComponent; + export function createComponentWithProxy(style: Style, base: "line", passThroughProps?: PassThroughProps): FelaSvgComponent; + export function createComponentWithProxy(style: Style, base: "linearGradient", passThroughProps?: PassThroughProps): FelaSvgComponent; + export function createComponentWithProxy(style: Style, base: "marker", passThroughProps?: PassThroughProps): FelaSvgComponent; + export function createComponentWithProxy(style: Style, base: "mask", passThroughProps?: PassThroughProps): FelaSvgComponent; + export function createComponentWithProxy(style: Style, base: "metadata", passThroughProps?: PassThroughProps): FelaSvgComponent; + export function createComponentWithProxy(style: Style, base: "path", passThroughProps?: PassThroughProps): FelaSvgComponent; + export function createComponentWithProxy(style: Style, base: "pattern", passThroughProps?: PassThroughProps): FelaSvgComponent; + export function createComponentWithProxy(style: Style, base: "polygon", passThroughProps?: PassThroughProps): FelaSvgComponent; + export function createComponentWithProxy(style: Style, base: "polyline", passThroughProps?: PassThroughProps): FelaSvgComponent; + export function createComponentWithProxy(style: Style, base: "radialGradient", passThroughProps?: PassThroughProps): FelaSvgComponent; + export function createComponentWithProxy(style: Style, base: "rect", passThroughProps?: PassThroughProps): FelaSvgComponent; + export function createComponentWithProxy(style: Style, base: "stop", passThroughProps?: PassThroughProps): FelaSvgComponent; + export function createComponentWithProxy(style: Style, base: "switch", passThroughProps?: PassThroughProps): FelaSvgComponent; + export function createComponentWithProxy(style: Style, base: "symbol", passThroughProps?: PassThroughProps): FelaSvgComponent; + export function createComponentWithProxy(style: Style, base: "text", passThroughProps?: PassThroughProps): FelaSvgComponent; + export function createComponentWithProxy(style: Style, base: "textPath", passThroughProps?: PassThroughProps): FelaSvgComponent; + export function createComponentWithProxy(style: Style, base: "tspan", passThroughProps?: PassThroughProps): FelaSvgComponent; + export function createComponentWithProxy(style: Style, base: "use", passThroughProps?: PassThroughProps): FelaSvgComponent; + export function createComponentWithProxy(style: Style, base: "view", passThroughProps?: PassThroughProps): FelaSvgComponent; + + export const RendererContext: React.Context + + interface RenderProps { + className: string, + theme: T, + as: keyof React.ReactHTML, + } + + export type StyleProps = { theme: T } & { + [K in keyof P]?: P[K] + } + + export type StyleFunction = (styleProps: StyleProps) => IStyle + + export type FelaStyle = IStyle | StyleFunction | Array | IStyle> + + export interface WithStyle { + style: FelaStyle + } + + interface FelaComponentProps { + children?: ((renderProps: RenderProps) => React.ReactNode) | React.ReactNode, + customClass?: string, + style: FelaStyle, + as?: keyof React.ReactHTML, + } + + export class FelaComponent extends React.Component & P> { + } +}