import { ComponentType, CSSProperties, FocusEvent, ReactElement, ReactNode } from "react";
export interface IState {
    focused: boolean;
}
interface IInputStateProps {
    disabled?: boolean;
    error?: boolean;
}
export interface IwithLabelProps<T = HTMLElement> extends IInputStateProps {
    label?: ReactNode;
    labelInfo?: ReactElement | string;
    help?: ReactNode;
    helpStyles?: CSSProperties;
    id?: string;
    error?: boolean;
    width?: string;
    required?: boolean;
    onFocus?: (e: FocusEvent<T>) => void;
    onBlur?: (e: FocusEvent<T>) => void;
    children?: ReactNode;
    innerRef?: RefType<T>;
    ref?: RefType<T>;
}
export declare const WithLabelContainer: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, {
    width?: string | undefined;
}, never>;
export declare function withLabel<T, I = HTMLElement>(EnhancedComponent: ComponentType<IwithLabelProps<I>>): {
    new (props: T & IwithLabelProps<I>): {
        state: IState;
        onFocus: (e: FocusEvent<I>) => void;
        onBlur: (e: FocusEvent<I>) => void;
        render(): import("react").JSX.Element;
        context: unknown;
        setState<K extends "focused">(state: IState | ((prevState: Readonly<IState>, props: Readonly<T & IwithLabelProps<I>>) => IState | Pick<IState, K> | null) | Pick<IState, K> | null, callback?: (() => void) | undefined): void;
        forceUpdate(callback?: (() => void) | undefined): void;
        readonly props: Readonly<T & IwithLabelProps<I>>;
        refs: {
            [key: string]: import("react").ReactInstance;
        };
        componentDidMount?(): void;
        shouldComponentUpdate?(nextProps: Readonly<T & IwithLabelProps<I>>, nextState: Readonly<IState>, nextContext: any): boolean;
        componentWillUnmount?(): void;
        componentDidCatch?(error: Error, errorInfo: import("react").ErrorInfo): void;
        getSnapshotBeforeUpdate?(prevProps: Readonly<T & IwithLabelProps<I>>, prevState: Readonly<IState>): any;
        componentDidUpdate?(prevProps: Readonly<T & IwithLabelProps<I>>, prevState: Readonly<IState>, snapshot?: any): void;
        componentWillMount?(): void;
        UNSAFE_componentWillMount?(): void;
        componentWillReceiveProps?(nextProps: Readonly<T & IwithLabelProps<I>>, nextContext: any): void;
        UNSAFE_componentWillReceiveProps?(nextProps: Readonly<T & IwithLabelProps<I>>, nextContext: any): void;
        componentWillUpdate?(nextProps: Readonly<T & IwithLabelProps<I>>, nextState: Readonly<IState>, nextContext: any): void;
        UNSAFE_componentWillUpdate?(nextProps: Readonly<T & IwithLabelProps<I>>, nextState: Readonly<IState>, nextContext: any): void;
    };
    new (props: T & IwithLabelProps<I>, context: any): {
        state: IState;
        onFocus: (e: FocusEvent<I>) => void;
        onBlur: (e: FocusEvent<I>) => void;
        render(): import("react").JSX.Element;
        context: unknown;
        setState<K extends "focused">(state: IState | ((prevState: Readonly<IState>, props: Readonly<T & IwithLabelProps<I>>) => IState | Pick<IState, K> | null) | Pick<IState, K> | null, callback?: (() => void) | undefined): void;
        forceUpdate(callback?: (() => void) | undefined): void;
        readonly props: Readonly<T & IwithLabelProps<I>>;
        refs: {
            [key: string]: import("react").ReactInstance;
        };
        componentDidMount?(): void;
        shouldComponentUpdate?(nextProps: Readonly<T & IwithLabelProps<I>>, nextState: Readonly<IState>, nextContext: any): boolean;
        componentWillUnmount?(): void;
        componentDidCatch?(error: Error, errorInfo: import("react").ErrorInfo): void;
        getSnapshotBeforeUpdate?(prevProps: Readonly<T & IwithLabelProps<I>>, prevState: Readonly<IState>): any;
        componentDidUpdate?(prevProps: Readonly<T & IwithLabelProps<I>>, prevState: Readonly<IState>, snapshot?: any): void;
        componentWillMount?(): void;
        UNSAFE_componentWillMount?(): void;
        componentWillReceiveProps?(nextProps: Readonly<T & IwithLabelProps<I>>, nextContext: any): void;
        UNSAFE_componentWillReceiveProps?(nextProps: Readonly<T & IwithLabelProps<I>>, nextContext: any): void;
        componentWillUpdate?(nextProps: Readonly<T & IwithLabelProps<I>>, nextState: Readonly<IState>, nextContext: any): void;
        UNSAFE_componentWillUpdate?(nextProps: Readonly<T & IwithLabelProps<I>>, nextState: Readonly<IState>, nextContext: any): void;
    };
    contextType?: import("react").Context<any> | undefined;
};
export {};
