///
import * as React from 'react';
import { ThemedOuterStyledProps } from 'styled-components';
import { AbstractButtonProps } from './components/AbstractButton/AbstractButton';
import { AbstractFormGroupProps } from './components/AbstractFormGroup/AbstractFormGroup';
import { AbstractInputBoxProps } from './components/AbstractInputBox/AbstractInputBox';
import { AbstractLabelTextProps } from './components/AbstractLabelText/AbstractLabelText';
import { AbstractValidationMessageProps } from './components/AbstractValidationMessage/AbstractValidationMessage';
import { ButtonProps } from './components/Button/Button';
export declare enum ThemableComponents {
Button = 0,
FormGroup = 1,
InputBox = 2,
LabelText = 3,
ValidationMessage = 4,
PrimaryButton = 5,
SecondaryButton = 6,
SuccessButton = 7,
InfoButton = 8,
WarningButton = 9,
DangerButton = 10,
LinkButton = 11,
InlineLinkButton = 12,
}
export declare type ComponentClass = React.ComponentClass>;
export declare type StatelessComponent = React.StatelessComponent>;
export declare type Component = ComponentClass | StatelessComponent;
export interface BaseThemeRegister {
register(component: ThemableComponents.Button, theme: ((abstractValidationmessage: ComponentClass) => Component)): this;
register(component: ThemableComponents.FormGroup, theme: ((abstractValidationmessage: ComponentClass) => Component)): this;
register(component: ThemableComponents.InputBox, theme: ((abstractValidationmessage: ComponentClass) => Component)): this;
register(component: ThemableComponents.LabelText, theme: ((abstractValidationmessage: ComponentClass) => Component)): this;
register(component: ThemableComponents.ValidationMessage, theme: ((abstractValidationmessage: ComponentClass) => Component)): this;
register(component: ThemableComponents.PrimaryButton, theme: ((abstractValidationmessage: ComponentClass) => Component)): this;
register(component: ThemableComponents.SecondaryButton, theme: ((abstractValidationmessage: ComponentClass) => Component)): this;
register(component: ThemableComponents.SuccessButton, theme: ((abstractValidationmessage: ComponentClass) => Component)): this;
register(component: ThemableComponents.InfoButton, theme: ((abstractValidationmessage: ComponentClass) => Component)): this;
register(component: ThemableComponents.WarningButton, theme: ((abstractValidationmessage: ComponentClass) => Component)): this;
register(component: ThemableComponents.DangerButton, theme: ((abstractValidationmessage: ComponentClass) => Component)): this;
register(component: ThemableComponents.LinkButton, theme: ((abstractValidationmessage: ComponentClass) => Component)): this;
register(component: ThemableComponents.InlineLinkButton, theme: ((abstractValidationmessage: ComponentClass) => Component)): this;
}
export interface AbstractComponentRegister {
registerAbstractComponent(component: ThemableComponents.Button, implementation: Component): StatelessComponent;
registerAbstractComponent(component: ThemableComponents.FormGroup, implementation: Component): StatelessComponent;
registerAbstractComponent(component: ThemableComponents.InputBox, implementation: Component): StatelessComponent;
registerAbstractComponent(component: ThemableComponents.LabelText, implementation: Component): StatelessComponent;
registerAbstractComponent(component: ThemableComponents.ValidationMessage, implementation: Component): StatelessComponent;
registerAbstractComponent(component: ThemableComponents.PrimaryButton, implementation: Component): StatelessComponent;
registerAbstractComponent(component: ThemableComponents.SecondaryButton, implementation: Component): StatelessComponent;
registerAbstractComponent(component: ThemableComponents.SuccessButton, implementation: Component): StatelessComponent;
registerAbstractComponent(component: ThemableComponents.InfoButton, implementation: Component): StatelessComponent;
registerAbstractComponent(component: ThemableComponents.WarningButton, implementation: Component): StatelessComponent;
registerAbstractComponent(component: ThemableComponents.DangerButton, implementation: Component): StatelessComponent;
registerAbstractComponent(component: ThemableComponents.LinkButton, implementation: Component): StatelessComponent;
registerAbstractComponent(component: ThemableComponents.InlineLinkButton, implementation: Component): StatelessComponent;
}