import { Component } from 'inferno'; export interface Mixin extends Component { statics?: { [key: string]: any; }; mixins?: any; displayName?: string; propTypes?: { [index: string]: Function; }; getDefaultProps?(): P; getInitialState?(): S; } export interface ComponentClass extends Mixin { new (props?: P, context?: any): Component; propTypes?: {}; contextTypes?: {}; childContextTypes?: {}; defaultProps?: P; displayName?: string; } export interface ComponentSpec extends Mixin { [propertyName: string]: any; render(props: P, context: any): any; } export interface ClassicComponent extends Component { replaceState(nextState: S, callback?: () => any): void; isMounted(): boolean; getInitialState?(): S; } export interface ClassicComponentClass extends ComponentClass { new (props?: P, context?: any): ClassicComponent; getDefaultProps?(): P; } export declare function createClass(obj: ComponentSpec): ClassicComponentClass;