///
import { CallbackOptions, LoginOrSignupView, StyleConfig, Session, StytchClient, User } from "@stytch/stytch-js";
import React from "react";
import { ReactNode } from "react";
interface StytchProps {
publicToken?: string;
loginOrSignupView?: LoginOrSignupView;
style?: StyleConfig;
callbacks?: CallbackOptions;
}
/**
* Stytch JS React Component
*
* [Documentation](https://stytch.com/docs/javascript-sdk)
*/
declare const Stytch: ({ publicToken, style, callbacks, loginOrSignupView }: StytchProps) => JSX.Element;
declare const useStytchUser: () => User | null;
declare const useStytchSession: () => Session | null;
declare const useStytch: () => StytchClient;
declare const useStytchLazy: () => StytchClient;
declare const withStytch: (Component: React.ComponentType) => React.ComponentType;
declare const withStytchLazy: (Component: React.ComponentType) => React.ComponentType;
declare const withStytchUser: (Component: React.ComponentType) => React.ComponentType;
declare const withStytchSession: (Component: React.ComponentType) => React.ComponentType;
type StytchProviderProps = {
stytch: StytchClient | null | Promise;
children?: ReactNode;
};
declare const StytchProvider: ({ stytch, children }: StytchProviderProps) => JSX.Element;
export * from '@stytch/stytch-js';
export { Stytch, StytchProps, StytchProvider, StytchProviderProps, useStytch, useStytchLazy, useStytchSession, useStytchUser, withStytch, withStytchLazy, withStytchSession, withStytchUser };