///
import { ToastPosition } from "react-hot-toast";
import { Action, RequiredToasterProps } from "../../types";
import { BoxProps } from "../Box";
import { IconType } from "../Icon";
export type SnackbarToasterProps = RequiredToasterProps;
type SnackbarPosition = Extract;
type SnackbarSharedProps = {
position?: SnackbarPosition;
duration?: number;
};
type SnackbarWithComponentProps = {
component: React.ReactNode;
message?: never;
};
type SnackbarWithMessageProps = {
message: React.ReactNode;
component?: never;
};
type SnackbarIsVisibleProp = {
isVisible: boolean;
};
type SnackbarOtherProps = {
action?: Action;
icon?: IconType;
disableClose?: boolean;
};
export type SnackbarProps = Omit & SnackbarOtherProps & SnackbarSharedProps & BoxProps;
export type SnackbarRootProps = BoxProps;
export type SnackbarIconProps = Pick;
export type SnackbarTextProps = {
children: React.ReactNode;
};
export type SnackbarContextProps = SnackbarToasterProps & SnackbarSharedProps;
export type SnackbarProviderProps = SnackbarToasterProps & SnackbarSharedProps & Omit;
type ShowSnackbarWithMessageProps = SnackbarWithMessageProps & SnackbarOtherProps & SnackbarSharedProps & BoxProps;
type ShowSnackbarWithComponentProps = SnackbarWithComponentProps & SnackbarSharedProps;
export type ShowSnackbarProps = ShowSnackbarWithMessageProps | ShowSnackbarWithComponentProps;
type SnackbarWithMessageHookProps = SnackbarWithMessageProps & SnackbarOtherProps & SnackbarSharedProps & SnackbarIsVisibleProp & BoxProps;
type SnackbarWithComponentHookProps = SnackbarWithComponentProps & SnackbarSharedProps & SnackbarIsVisibleProp;
export type SnackbarHookProps = SnackbarWithMessageHookProps | SnackbarWithComponentHookProps;
export {};