import React, { ReactNode, InputHTMLAttributes, TextareaHTMLAttributes } from 'react';
import { Button as Button$1, TextField } from '@radix-ui/themes';
import { DateRangeProps } from 'react-date-range';
import reactSelect from 'react-select';
export { ToastContainer } from 'react-toastify';

declare type ButtonProps = {
    buttonVariant: "primary" | "secondary" | "outline" | "text" | "message" | "warning" | "error" | "success" | "information";
    text: string;
    dimention?: "large" | "largeFull" | "small" | "smallFull";
    disabled?: boolean;
    isLoading?: boolean;
    isIcon?: boolean;
    icon?: ReactNode;
} & React.ComponentProps<typeof Button$1>;
declare const Button: React.FC<ButtonProps>;

declare type ActionButtonProps = {
    disabled?: boolean;
    buttonVariant: "primary" | "outline";
} & React.ComponentProps<typeof Button$1>;
declare const ActionButton: React.FC<ActionButtonProps>;

interface InputProps extends InputHTMLAttributes<HTMLInputElement> {
    field: string;
    label: string;
    inputVariant: "standardPJ" | "standardPF" | "iconPJ" | "iconPF";
    sizeInput?: "small" | "largeFull";
    disabled?: boolean;
    isError?: boolean;
    errorMessage?: string;
    legend?: string;
    isIcon?: boolean;
    isPassword?: boolean;
    icon?: ReactNode;
    color?: string;
    register: any;
}
declare function Input({ field, label, inputVariant, disabled, isIcon, sizeInput, icon, isError, isPassword, legend, errorMessage, color, register, ...props }: InputProps): React.JSX.Element;

interface TextAreaProps extends TextareaHTMLAttributes<HTMLTextAreaElement> {
    label: string;
    textAreaVariant: "standard";
    disabled?: boolean;
    isError?: boolean;
    errorMessage?: string;
    legend?: string;
}
declare const TextArea: React.FC<TextAreaProps>;

declare type AvatarProps = {
    avatarVariant: "square" | "circle";
    text: string;
    url?: string;
    bg: string;
    color: string;
    size: "default" | "xs" | "sm" | "lg" | "xl" | "2xl" | "3xl";
};
declare const Avatar: React.FC<AvatarProps>;

declare type BadgeProps = {
    badgeVariant: "success" | "error" | "warning" | "message" | "information";
    text: string;
};
declare const Badge: React.FC<BadgeProps>;

interface InputDataProps extends DateRangeProps {
    label: string;
    setDate: (dateComparation: {
        startDate: string;
        endDate: string;
    }) => void;
    isError?: boolean;
    disabled?: boolean;
    legend?: string;
    errorMessage: string;
}
declare type DateType = {
    startDate: string;
    endDate: string;
};
declare const InputData: React.FC<InputDataProps>;

declare type InputStepperProps = {
    label: string;
    inputVariant: "standard";
    size?: "small" | "largeFull";
    disabled?: boolean;
    isError?: boolean;
    errorMessage?: string;
    legend?: string;
    isIcon?: boolean;
    icon?: ReactNode;
    max?: number;
    min?: number;
    color?: string;
    changeValue?: (value: number) => void;
} & React.ComponentProps<typeof TextField.Input>;
declare const InputStepper: React.FC<InputStepperProps>;

declare type SelectProps = {
    label: string;
    size?: "small" | "largeFull";
    isError?: boolean;
    errorMessage?: string;
    legend?: string;
    isIcon?: boolean;
    icon?: ReactNode;
    options: Array<{
        label: string;
        value: string | number;
    }>;
} & React.ComponentProps<typeof reactSelect>;
declare const SelectComponente: React.FC<SelectProps>;

declare type StatusVariants = {
    statusVariant: "success" | "error" | "message" | "warning" | "disabled";
    typeVariant: "standard" | "shape";
    text: string;
};
declare const Status: React.FC<StatusVariants>;

interface ToastProps {
    toastVariant: "success" | "error" | "warning" | "message" | "information";
    title: string;
    description?: string;
    typeToast: "outline" | "solid" | "inline";
}
declare const Toast: React.FC<ToastProps>;

export { ActionButton, Avatar, Badge, Button, type DateType, Input, InputData, InputStepper, SelectComponente, Status, TextArea, Toast };
