declare module "use-transition-state" {
  // @ts-expect-error
  import { Dispatch, useTransition } from "react";

  type UseTransition = typeof useTransition;

  type IsPending = ReturnType<UseTransition>[0];

  type StartTransition = ReturnType<UseTransition>[1];

  type SetState<S> = Dispatch<S | ((prevState: S) => S)>;

  export type Options = Parameters<UseTransition>;

  export default function UseTransitionState<S = any>(
    initialState?: S,
    options?: Options
  ): [
    S,
    SetState<S>,
    {
      isPending: IsPending;
      startTransition: StartTransition;
      setState: SetState<S>;
    }
  ];
}
