import { Extends, HotModule } from './interface'; export declare type ComponentDef = Extends; export declare function component(module?: HotModule): ComponentDef; export interface Class { new (...args: {}[]): T; } export interface PlainProp { type?: Class; validator?(value: T): boolean; required?: boolean; } export interface DefaultProp extends PlainProp { default: T | (() => T); } export interface RequiredProp extends PlainProp { required: true; default?: T | (() => T); } export interface FuncProp { type?: FunctionConstructor; defaultFunc?: T; required?: boolean; } export declare function p(tpe: NumberConstructor): number | undefined; export declare function p(tpe: StringConstructor): string | undefined; export declare function p(tpe: BooleanConstructor): boolean | undefined; export declare function p(tpe: Class): T | undefined; export declare function p(conf: RequiredProp): T; export declare function p(conf: DefaultProp): T; export declare function p(conf: PlainProp): T | undefined; export declare function p(conf: FuncProp): T;