import type { TextInput as NativeTextInput, Animated, TextStyle, LayoutChangeEvent, ColorValue } from 'react-native';
import type { TextInputProps } from './TextInput';
import type { $Omit } from './../../types';
export declare type RenderProps = {
    ref: (a?: NativeTextInput | null) => void;
    onChangeText?: (a: string) => void;
    placeholder?: string;
    placeholderTextColor?: ColorValue;
    editable?: boolean;
    selectionColor?: string;
    onFocus?: (args: any) => void;
    onBlur?: (args: any) => void;
    underlineColorAndroid?: string;
    style: any;
    multiline?: boolean;
    numberOfLines?: number;
    value?: string;
    adjustsFontSizeToFit?: boolean;
};
declare type TextInputTypesWithoutMode = $Omit<TextInputProps, 'mode'>;
export declare type State = {
    labeled: Animated.Value;
    error: Animated.Value;
    focused: boolean;
    placeholder?: string;
    value?: string;
    labelLayout: {
        measured: boolean;
        width: number;
        height: number;
    };
    leftLayout: {
        height: number | null;
        width: number | null;
    };
    rightLayout: {
        height: number | null;
        width: number | null;
    };
};
export declare type ChildTextInputProps = {
    parentState: State;
    innerRef: (ref?: NativeTextInput | null) => void;
    onFocus?: (args: any) => void;
    onBlur?: (args: any) => void;
    forceFocus: () => void;
    onChangeText?: (value: string) => void;
    onLayoutAnimatedText: (args: any) => void;
    onLeftAffixLayoutChange: (event: LayoutChangeEvent) => void;
    onRightAffixLayoutChange: (event: LayoutChangeEvent) => void;
} & TextInputTypesWithoutMode;
export declare type LabelProps = {
    mode?: 'flat' | 'outlined';
    placeholderStyle: any;
    placeholderOpacity: number | Animated.Value | Animated.AnimatedInterpolation;
    baseLabelTranslateX: number;
    baseLabelTranslateY: number;
    wiggleOffsetX: number;
    labelScale: number;
    fontSize: number;
    fontWeight: TextStyle['fontWeight'];
    font: any;
    topPosition: number;
    paddingOffset?: {
        paddingLeft: number;
        paddingRight: number;
    } | null;
    labelTranslationXOffset?: number;
    placeholderColor: string | null;
    backgroundColor?: ColorValue;
    label?: string | null;
    hasActiveOutline?: boolean | null;
    activeColor: string;
    errorColor?: string;
    error?: boolean | null;
    onLayoutAnimatedText: (args: any) => void;
};
export declare type InputLabelProps = {
    parentState: State;
    labelProps: LabelProps;
    labelBackground?: any;
};
export declare type LabelBackgroundProps = {
    labelProps: LabelProps;
    labelStyle: any;
    parentState: State;
};
export {};
