import React, { ReactNode } from 'react';

interface IFlexBoxProps {
    children: ReactNode;
    flexDirection: 'row' | 'row-reverse' | 'column' | 'column-reverse' | 'initial' | 'inherit';
    alignItems: 'stretch' | 'center' | 'baseline' | 'start' | 'end' | 'flex-start' | 'flex-end' | 'initial' | 'inherit';
    justifyContent: 'center' | 'flex-start' | 'flex-end' | 'start' | 'end' | 'space-between' | 'space-around' | 'space-evenly' | 'initial' | 'inherit';
    flexWrap?: 'nowrap' | 'wrap' | 'wrap-reverse' | 'initial';
    gap?: number | 'normal' | 'initial' | 'inherit';
    rowGap?: number | 'normal' | 'initial' | 'inherit';
    columnGap?: number | 'normal' | 'initial' | 'inherit';
}
declare function FlexBox(props: IFlexBoxProps): React.JSX.Element;

interface IButtonProps {
    label: string;
    width: number;
    height: number;
    fontSize: number;
    fontColor: string;
    backgroundColor: string;
    borderRadius: number;
}
declare function Button(props: IButtonProps): React.JSX.Element;

interface useFetchProps {
    apiHost: string;
    endpoint: string;
    param?: string | number;
}
declare function useFetch(props: useFetchProps): {
    data: any[] | null;
    isLoading: boolean;
    isError: boolean;
    refetch: () => void;
};

export { Button, FlexBox, useFetch };
