import React$1, { FC, ReactNode, CSSProperties } from 'react';
import * as react_jsx_runtime from 'react/jsx-runtime';
import { DateObject } from 'react-multi-date-picker';
import { Control, FieldErrors } from 'react-hook-form';

type DynamicObject = {
    [key: string]: any;
};
interface Option {
    label: string;
    value: string | number;
}
interface DetailData {
    label: string;
    value: string | number;
}
interface Tag$1 {
    name: string;
    rankName?: string;
}

interface AccordionItemProps {
    title: string;
    children: ReactNode;
    description: string;
}
declare const AccordionItem: FC<AccordionItemProps>;

interface AttachmentButtonProps {
    setAttachments: React$1.Dispatch<React$1.SetStateAction<File[]>>;
    icon?: any;
    isMulti?: boolean;
}
declare const AttachmentButton: React$1.FC<AttachmentButtonProps>;

interface ButtonProps extends React$1.ButtonHTMLAttributes<HTMLButtonElement> {
    className?: string;
    children: React$1.ReactNode;
}
declare const Button: React$1.FC<ButtonProps>;

interface ButtonDatePickerProps {
    buttonText: string;
    className?: string;
    buttonclassName?: string;
    onChangeCallbackProps?: (date: DateObject[]) => void;
    allowDateRange?: boolean;
}
declare const ButtonDatePicker: ({ buttonText, className, buttonclassName, allowDateRange, onChangeCallbackProps, }: ButtonDatePickerProps) => react_jsx_runtime.JSX.Element;

interface CheckBoxItem$1 {
    label: string;
    value: string | number;
    description?: string;
}
interface CheckBoxPropsWithoutMulti extends Omit<React$1.InputHTMLAttributes<HTMLInputElement>, "defaultValue"> {
    name: string;
    control: Control<any>;
    errors: FieldErrors;
    labelText?: string;
    labelDescription?: string;
    defaultValue?: boolean;
    className?: string;
    isMulti?: boolean;
    checkBoxList?: CheckBoxItem$1[];
    loginCheckBox?: boolean;
}
interface CheckBoxPropsWithMulti$1 extends Omit<React$1.InputHTMLAttributes<HTMLInputElement>, "defaultValue"> {
    name: string;
    control?: Control<any>;
    errors?: FieldErrors;
    labelText?: string;
    labelDescription?: string;
    defaultValue?: boolean;
    className?: string;
    isMulti: true;
    checkBoxList: CheckBoxItem$1[];
    loginCheckBox?: boolean;
}
type CommonCheckBoxProps$1 = CheckBoxPropsWithoutMulti | CheckBoxPropsWithMulti$1;
declare const CommonCheckBox: React$1.FC<CommonCheckBoxProps$1>;

declare const CommonColorField: React$1.FC<CommonTextFieldProps$1>;
interface CommonTextFieldProps$1 extends React$1.InputHTMLAttributes<HTMLInputElement> {
    name?: string;
    control?: Control<any>;
    errors?: DynamicObject;
    labelText?: React$1.ReactNode | string;
    onClick?: () => void;
    labelClass?: string;
    required?: boolean;
    disabled?: boolean;
    translation?: string;
    icon?: any;
    beforeOnchange?: (e: any) => void;
    iconPosition?: 'left' | 'right';
}

declare const CommonPasswordField: React$1.FC<CommonPasswordFieldProps>;
interface CommonPasswordFieldProps {
    name: string;
    control: Control<any>;
    errors: DynamicObject;
    labelText?: React$1.ReactNode | string;
    className?: string;
    required?: boolean;
    disabled?: boolean;
    width?: CSSProperties["width"];
    placeholder?: string;
    translation?: string;
    limit?: number;
    labelClass?: string;
}

interface CommonPinInputProps extends React$1.InputHTMLAttributes<HTMLInputElement> {
    name?: string;
    control?: Control<any>;
    errors?: DynamicObject;
    labelText?: React$1.ReactNode | string;
    onClick?: () => void;
    labelClass?: string;
    required?: boolean;
    disabled?: boolean;
    translation?: string;
    icon?: any;
    iconPosition?: 'left' | 'right';
    discountValue?: string;
    beforeOnchange?: (e: any) => void;
    inputRef?: React$1.RefObject<HTMLInputElement>;
    onKeyDown?: (e: React$1.KeyboardEvent<HTMLInputElement>) => void;
}
declare const CommonPinInput: React$1.ForwardRefExoticComponent<CommonPinInputProps & React$1.RefAttributes<HTMLInputElement>>;

interface CheckBoxItem {
    label: string;
    value: string | number;
    description: string;
}
interface CheckBoxPropsWithMulti extends Omit<React$1.InputHTMLAttributes<HTMLInputElement>, 'defaultValue'> {
    name: string;
    labelText: string;
    labelDescription?: string;
    className?: string;
    isMulti?: Boolean;
    checkBoxList?: CheckBoxItem[];
    disabledCheckbox?: boolean;
}
type CommonCheckBoxProps = CheckBoxPropsWithMulti;
declare const CommonSimpleCheckBox: React$1.FC<CommonCheckBoxProps>;

interface ICommonEditorProps {
    name: string;
    control: Control<any>;
}
declare const CommonTextEditor: ({ name, control }: ICommonEditorProps) => react_jsx_runtime.JSX.Element;

declare const CommonTextField: React$1.FC<CommonTextFieldProps>;
interface CommonTextFieldProps extends React$1.InputHTMLAttributes<HTMLInputElement> {
    name?: string;
    control?: Control<any>;
    errors?: DynamicObject;
    labelText?: React$1.ReactNode | string;
    onClick?: () => void;
    labelClass?: string;
    required?: boolean;
    disabled?: boolean;
    translation?: string;
    icon?: any;
    iconPosition?: "left" | "right";
    discountValue?: string;
    beforeOnchange?: (e: any) => void;
    step?: string;
    onlyAlphabet?: boolean;
    wrapperClassName?: string;
}

declare const CustomSpinner: () => react_jsx_runtime.JSX.Element;

interface DashboardStatsComparisonChipProps {
    growthPercentage?: number;
    className?: string;
    growthAgainstText?: string;
    direction?: 'column' | 'row';
}
declare function DashboardStatsComparisonChip({ growthPercentage, growthAgainstText, direction, className, }: DashboardStatsComparisonChipProps): react_jsx_runtime.JSX.Element;

interface ModalProps {
    open: boolean;
    onClose: () => void;
    children: React$1.ReactNode;
    className?: string;
}
declare const Modal: React$1.FC<ModalProps>;

interface SuccessCardProps {
    imageSrc: string;
    imageAlt?: string;
    text: string;
    subText?: string;
    buttonText: string;
    onClick: () => void;
}
declare const SuccessCard: React$1.FC<SuccessCardProps>;

interface PaginationProps {
    page: number;
    totalPages: number;
    handleNext: any;
    handleBack: any;
    searchParams?: URLSearchParams;
    setSearchParams?: (params: URLSearchParams) => void;
    rowsperpage?: boolean;
    perPageOptions?: {
        label: string;
        value: number;
    }[];
    defaultRowsPerPage?: number;
}
declare const Pagination: React$1.FC<PaginationProps>;

interface NoDataFoundProps {
    notFoundClassName?: string;
}
declare const NoDataFound: React.FC<NoDataFoundProps>;

interface EnhancedTableProps {
    columns: any;
    data: DynamicObject[];
    onRowClick?: () => void;
    isLoading?: boolean;
    onLoadMore?: () => void;
    isFetchingNextPage?: boolean;
    columnsSelection?: boolean;
    customSelection?: string[];
    customSelectionMngmnt?: (ids: string | string[], checked?: boolean) => void;
    showPagination: boolean;
    currentPage: number;
    totalPages: number;
    className?: string;
    notFoundClassName?: string;
    handleNext: any;
    handleBack: any;
    rowsperpage?: boolean;
    rowsPerPageOptions?: {
        label: string;
        value: number;
    }[];
    defaultRowsPerPage?: any;
}
interface EnhancedTablePropsWithoutPagination {
    columns: any;
    data: DynamicObject[];
    onRowClick?: any;
    isLoading?: boolean;
    onLoadMore?: any;
    columnsSelection?: boolean;
    customSelection?: string[];
    customSelectionMngmnt?: (ids: string | string[], checked?: boolean) => void;
    showPagination: boolean;
    currentPage?: number;
    totalPages?: number;
    className?: string;
    notFoundClassName?: string;
    handleNext?: any;
    handleBack?: any;
    rowsperpage?: boolean;
    rowsPerPageOptions?: {
        label: string;
        value: number;
    }[];
    defaultRowsPerPage?: any;
}
type ConditionalEnhancedTableProps = EnhancedTableProps | EnhancedTablePropsWithoutPagination;
declare const EnhancedTable: React$1.FC<ConditionalEnhancedTableProps>;

interface Tag {
    name: string;
}
interface TagCellProps {
    tags: Tag[];
}
declare const TagCell: React$1.FC<TagCellProps>;

interface Step {
    title: string;
    description: string;
    icon: React.ElementType;
}
declare const CommonStepper: ({ currentStep, steps, className, }: {
    currentStep: number;
    steps: Step[];
    className?: string;
}) => react_jsx_runtime.JSX.Element;

interface DraggableEnhancedTableProps {
    columns: any;
    data: DynamicObject[];
    onRowClick?: any;
    handleDragEnd?: (dragInfo: any) => void;
    isLoading?: boolean;
    onLoadMore?: any;
    isFetchingNextPage?: boolean;
    columnsSelection?: boolean;
    showPagination: boolean;
    currentPage: number;
    className?: string;
    totalPages: number;
    handlePageChange: (currentPage: number) => void;
    renderRowSubComponent?: any;
    isExpanded: boolean;
    isExpandable: boolean;
    handleNext?: () => void;
    handleBack?: () => void;
    isDragDisabled?: boolean;
}
interface DraggableEnhancedTablePropsWithoutPagination {
    columns: any;
    data: DynamicObject[];
    onRowClick?: () => void;
    handleDragEnd?: (dragInfo: any) => void;
    isLoading?: boolean;
    columnsSelection?: boolean;
    showPagination: boolean;
    currentPage?: number;
    totalPages?: number;
    handlePageChange: (currentPage: number) => void;
    renderRowSubComponent?: any;
    isExpandable: boolean;
    handleNext: () => void;
    handleBack: () => void;
    className?: string;
    isDragDisabled?: boolean;
}
type ConditionalDraggableEnhancedTableProps = DraggableEnhancedTableProps | DraggableEnhancedTablePropsWithoutPagination;
declare const DraggableEnhancedTable: React$1.FC<ConditionalDraggableEnhancedTableProps>;

type ToastTypes = 'default' | 'error' | 'success' | 'warning' | 'info';
declare function showToaster(message: string, variant: ToastTypes): void;

export { AccordionItem, AttachmentButton, Button, ButtonDatePicker, ButtonProps, CommonCheckBox, CommonColorField, CommonPasswordField, CommonPinInput, CommonSimpleCheckBox, CommonStepper, CommonTextEditor, CommonTextField, CustomSpinner, DashboardStatsComparisonChip, DetailData, DraggableEnhancedTable, DynamicObject, EnhancedTable, Modal, ModalProps, NoDataFound, Option, Pagination, SuccessCard, Tag$1 as Tag, TagCell, showToaster };
