import type { CSSModule } from 'reactstrap/types/lib/utils';
import type { InputProps } from './Input';
type ValidationProps = Pick<InputProps, 'valid'>;
type TypeProps = Pick<InputProps, 'plaintext' | 'type'> & {
    staticInput?: boolean;
};
type FormControlProps = Pick<InputProps, 'normalized'> & TypeProps;
export declare function getFormControlClass(props: FormControlProps, cssModule?: CSSModule): string;
export declare function getValidationTextControlClass({ valid }: ValidationProps, cssModule?: CSSModule): string;
export declare function getTag({ tag, plaintext, staticInput, type }: Pick<InputProps, 'tag'> & TypeProps): import("react").ElementType;
type InputClassesParams = ValidationProps & Pick<InputProps, 'bsSize' | 'placeholder' | 'value' | 'label' | 'validationText' | 'normalized'> & {
    isFocused: boolean;
    inputPassword?: boolean;
    formControlClass?: string;
    validationTextControlClass?: string;
    originalWrapperClass: InputProps['wrapperClassName'];
};
export declare function getClasses(className: string | undefined, type: string, { isFocused, valid, bsSize, placeholder, value, label, validationText, normalized, inputPassword, formControlClass, validationTextControlClass, originalWrapperClass }: InputClassesParams, cssModule?: CSSModule): {
    wrapperClass: string;
    inputClasses: string;
    activeClass: string;
    extraLabelClass: string;
    validationTextClass: string;
};
export declare function useFocus<T extends HTMLInputElement | HTMLTextAreaElement>({ onFocus, onBlur }: {
    onFocus: React.FocusEventHandler<T> | undefined;
    onBlur: React.FocusEventHandler<T> | undefined;
}): {
    toggleFocusLabel: (e: React.FocusEvent<T>) => void;
    toggleBlurLabel: (e: React.FocusEvent<T>) => void;
    isFocused: boolean;
};
export {};
