/// <reference types="react" />
import { CSSObject } from "styled-components";
import { TextInputProps } from "react-native";
export interface ITheme {
    [name: string]: string;
}
export interface IWeight {
    [name: string]: number;
}
export interface IFont {
    main: ITheme;
    secondary: ITheme;
    weight: IWeight;
}
export interface ISetup {
    currentTheme: string;
    fontFamily: IFont;
    mediaQuery: IMedia;
}
export interface IFontWeight {
    [name: string]: string;
}
export interface ICountriesProps {
    icon: string;
    name: string;
    code: number;
    id: string;
}
export interface IInputProps extends React.InputHTMLAttributes<HTMLInputElement> {
    /** Enable or disable the input */
    disabled?: boolean;
    /** Text when nothing is written */
    placeholder?: string;
    /** Unable to change value */
    readOnly?: boolean;
    /** Regular expression to test value */
    regex?: string;
    /** Flag to know if the value is required */
    required?: boolean;
    /** Action of changing input value */
    onChange?: (value: any) => void;
    /** Action to submit a error */
    errorCallback?: (type: ErrorsInput) => void;
    /** Css proprieties */
    styles?: CSSObject;
}
export interface IInputPropsNative extends TextInputProps {
    /** Enable or disable the input */
    disabled?: boolean;
    /** Text when nothing is written */
    placeholder?: string;
    /** Unable to change value */
    readOnly?: boolean;
    /** Regular expression to test value */
    regex?: string;
    /** Flag to know if the value is required */
    required?: boolean;
    /** Action of changing input value */
    onChange?: (value: any) => void;
    /** Action to submit a error */
    errorCallback?: (type: ErrorsInput) => void;
    /** Css proprieties */
    styles?: CSSObject;
    name?: string;
    /** Select text when user focus */
    selectTextOnFocus?: boolean;
}
export declare type ErrorsInput = "min" | "max" | "minLength" | "maxLength" | "regExp" | "required" | null;
export interface IMedia {
    desktop: IMediaSize;
    tablet: IMediaSize;
    mobile: IMediaSize;
}
export declare type IMediaSize = {
    min?: string;
    max?: string;
};
