import type { PropsWithChildren, ReactNode } from "react";

export type NoticeType = "success" | "fail" | "caution";
export type NoticeVariant = "default" | "md";

export interface NoticeApi {
  success: (message: ReactNode) => void;
  fail: (message: ReactNode) => void;
  caution: (message: ReactNode) => void;
  md: {
    success: (message: ReactNode) => void;
    fail: (message: ReactNode) => void;
    caution: (message: ReactNode) => void;
  };
}

export declare function NoticeProvider(props: PropsWithChildren): JSX.Element;

export declare function useNotice(): NoticeApi;
