import { ComponentType, Context, FC, ReactNode } from 'react'; import { TypographyProps } from '@mui/material'; import { Translator } from '../internationalization'; import { User } from '../api/types'; import { DeepPartial } from '../util'; import { MakeLoginFormResult } from '../components/LoginForm'; import { MakeRegisterFormResult } from '../components/Register'; import { MakeForgotPasswordFormResult } from '../components/ForgotPassword'; import { MakeResetPasswordFormResult } from '../components/ResetPassword'; import { MakeActivateEmailAddressResult } from '../components/ActivateEmailAddress'; import { MakeEmailSentCardResult } from '../components/EmailSent'; import { AuthViewProps, ErrorViewProps } from '../components/AuthView'; import { ErrorCardProps } from '../components/ErrorCard'; import { ApiConfig, MakeGenericUserStoreResult } from '../store/UserStore'; import { AuthFunctionContextValue } from '../store/types'; export declare enum Identifier { Username = 1, Email = 2, UsernameOrEmail = 3 } export interface DefaultConfig { paths: { mainPage: string; base: string; login: string; register: string; activation: string; forgotPassword: string; resetPassword: string; emailSent: string; }; defaultTranslator: Translator; userIdentifier: Identifier; disableUserRegistration: boolean; components: { backgroundImage: () => React.JSX.Element; loadingIndicator: () => React.JSX.Element; }; } export declare const defaultComponentConfig: DefaultConfig; export interface LinkProps extends Pick { href: string; children?: ReactNode; } export type UrlDescriptor = string | { pathname: string; query?: { [key: string]: string; }; }; export interface RouteHandler { push: (url: UrlDescriptor) => void; replace: (url: UrlDescriptor) => void; } export interface MandatoryConfig { routing: { link: ComponentType; useRouteHandler: () => RouteHandler; useQueryParams: () => Record; }; api: ApiConfig; } export type InputConfig = DeepPartial & MandatoryConfig; export type FullConfig = DefaultConfig & MandatoryConfig; export interface MakeComponentsResult extends MakeGenericUserStoreResult, MakeLoginFormResult, MakeRegisterFormResult, MakeForgotPasswordFormResult, MakeResetPasswordFormResult, MakeActivateEmailAddressResult, MakeEmailSentCardResult { AuthFunctionContext: Context; AuthView: FC; ErrorCard: FC; ErrorView: FC; fullConfig: FullConfig; } export declare function makeComponents(config: InputConfig): MakeComponentsResult;