///
import * as React from 'react';
import LabelMode from '../../enums/LabelMode';
import ValidationState from '../../enums/ValidationState';
export { ValidationState };
export interface RenderInputProps {
focused: boolean;
labelMode: LabelMode;
validationMessage?: React.ReactNode;
validationState: ValidationState;
onFocus: () => void;
onBlur: () => void;
}
export interface RenderInputLayoutProps {
renderInput: (props: RenderInputProps) => React.ReactNode;
formGroupProps: {
component: 'div' | 'label';
labelMode: LabelMode;
};
labelProps: {
labelMode: LabelMode;
required: boolean;
validationMessage: React.ReactNode;
validationState: ValidationState;
style: React.CSSProperties;
};
renderInputProps: RenderInputProps;
focused: boolean;
formGroupComponent: 'div' | 'label';
inputContainerStyle: React.CSSProperties;
label: React.ReactNode;
labelMode: LabelMode;
labelStyle: React.CSSProperties;
required: boolean;
validationMessage: React.ReactNode;
validationState: ValidationState;
onFocus: () => void;
onBlur: () => void;
}
export interface AbstractInputProps {
renderInput: (props: RenderInputProps) => React.ReactNode;
formGroupComponent?: 'div' | 'label';
inputContainerStyle?: React.CSSProperties;
label: React.ReactNode;
labelMode?: LabelMode;
labelStyle?: React.CSSProperties;
required?: boolean;
validationMessage?: React.ReactNode;
validationState: ValidationState;
onFocus?: () => void;
onBlur?: () => void;
}
export interface AbstractInputBaseProps {
inputContainerStyle?: React.CSSProperties;
label: React.ReactNode;
labelMode?: LabelMode;
labelStyle?: React.CSSProperties;
required?: boolean;
validationMessage?: React.ReactNode;
validationState?: ValidationState;
onFocus?: () => void;
onBlur?: () => void;
}
export interface State {
focused: boolean;
}
export declare function renderAbstractInput(props: RenderInputLayoutProps): JSX.Element;
declare class AbstractInput extends React.Component {
state: State;
_onFocus: () => void;
_onBlur: () => void;
render(): JSX.Element;
}
export default AbstractInput;