import type { AuthenticatorComponentOverrides, AuthenticatorComponentDefaults, } from '@aws-amplify/ui-react-core'; import type { RadioFieldOptions, TextFieldOptionsType } from '../hooks'; // TODO fill these interfaces with custom style override types export interface ConfirmResetPasswordStyle {} export interface ConfirmSignInStyle {} export interface ConfirmSignUpStyle {} export interface ConfirmVerifyUserStyle {} export interface ForceNewPasswordStyle {} export interface ForgotPasswordStyle {} export interface SetupTotpStyle {} export interface SignInStyle {} export interface SignUpStyle {} export interface VerifyUserStyle {} export interface SetupEmailStyle {} export interface SelectMfaTypeStyle {} export type DefaultComponents< FieldType = {}, Props = {}, > = AuthenticatorComponentDefaults; export type DefaultConfirmResetPasswordProps = React.ComponentPropsWithoutRef< DefaultComponents< TextFieldOptionsType, { style?: ConfirmResetPasswordStyle } >['ConfirmResetPassword'] >; export type DefaultConfirmSignInProps = React.ComponentPropsWithoutRef< DefaultComponents< TextFieldOptionsType, { style?: ConfirmSignInStyle } >['ConfirmSignIn'] >; export type DefaultConfirmSignUpProps = React.ComponentPropsWithoutRef< DefaultComponents< TextFieldOptionsType, { style?: ConfirmSignUpStyle } >['ConfirmSignUp'] >; export type DefaultConfirmVerifyUserProps = React.ComponentPropsWithoutRef< DefaultComponents< TextFieldOptionsType, { style?: ConfirmVerifyUserStyle } >['ConfirmVerifyUser'] >; export type DefaultForceNewPasswordProps = React.ComponentPropsWithoutRef< DefaultComponents< TextFieldOptionsType, { style?: ForceNewPasswordStyle } >['ForceNewPassword'] >; export type DefaultForgotPasswordProps = React.ComponentPropsWithoutRef< DefaultComponents< TextFieldOptionsType, { style?: ForgotPasswordStyle } >['ForgotPassword'] >; export type DefaultSetupTotpProps = React.ComponentPropsWithoutRef< DefaultComponents< TextFieldOptionsType, { style?: SetupTotpStyle } >['SetupTotp'] >; export type DefaultSignInProps = React.ComponentPropsWithoutRef< DefaultComponents['SignIn'] >; export type DefaultSignUpProps = React.ComponentPropsWithoutRef< DefaultComponents['SignUp'] >; export type DefaultVerifyUserProps = React.ComponentPropsWithoutRef< DefaultComponents< RadioFieldOptions, { style?: VerifyUserStyle } >['VerifyUser'] >; export type DefaultSetupEmailProps = React.ComponentPropsWithoutRef< DefaultComponents< TextFieldOptionsType, { style?: SetupEmailStyle } >['SetupEmail'] >; export type DefaultSelectMfaTypeProps = React.ComponentPropsWithoutRef< DefaultComponents< RadioFieldOptions, { style?: SelectMfaTypeStyle } >['SelectMfaType'] >; /** * Custom Authenticator components */ type OverrideComponents< FieldType = {}, Props = {}, > = AuthenticatorComponentOverrides; type ConfirmSignInComponent

= OverrideComponents< TextFieldOptionsType, { style?: ConfirmSignInStyle } & P >['ConfirmSignIn']; type ConfirmSignUpComponent

= OverrideComponents< TextFieldOptionsType, { style?: ConfirmSignUpStyle } & P >['ConfirmSignUp']; type ConfirmResetPasswordComponent

= OverrideComponents< TextFieldOptionsType, { style?: ConfirmResetPasswordStyle } & P >['ConfirmResetPassword']; type ConfirmVerifyUserComponent

= OverrideComponents< TextFieldOptionsType, { style?: ConfirmVerifyUserStyle } & P >['ConfirmVerifyUser']; type ForceNewPasswordComponent

= OverrideComponents< TextFieldOptionsType, { style?: ForceNewPasswordStyle } & P >['ForceNewPassword']; type ForgotPasswordComponent

= OverrideComponents< TextFieldOptionsType, { style?: ForgotPasswordStyle } & P >['ForgotPassword']; type SetupTotpComponent

= OverrideComponents< TextFieldOptionsType, { style?: SetupTotpStyle } & P >['SetupTotp']; type SignInComponent

= OverrideComponents< TextFieldOptionsType, { style?: SignInStyle } & P >['SignIn']; type SignUpComponent

= OverrideComponents< TextFieldOptionsType, { style?: SignUpStyle } & P >['SignUp']; type VerifyUserComponent

= OverrideComponents< RadioFieldOptions, { style?: VerifyUserStyle } & P >['VerifyUser']; type SetupEmailComponent

= OverrideComponents< TextFieldOptionsType, { style?: SetupEmailStyle } & P >['SetupEmail']; type SelectMfaTypeComponent

= OverrideComponents< RadioFieldOptions, { style?: SelectMfaTypeStyle } & P >['SelectMfaType']; /** * Override `Authenticator` components param */ export interface Components { ConfirmSignIn?: ConfirmSignInComponent; ConfirmSignUp?: ConfirmSignUpComponent; ConfirmResetPassword?: ConfirmResetPasswordComponent; ConfirmVerifyUser?: ConfirmVerifyUserComponent; ForceNewPassword?: ForceNewPasswordComponent; ForgotPassword?: ForgotPasswordComponent; SelectMfaType?: SelectMfaTypeComponent; SetupEmail?: SetupEmailComponent; SetupTotp?: SetupTotpComponent; SignIn?: SignInComponent; SignUp?: SignUpComponent; VerifyUser?: VerifyUserComponent; } export interface ConfirmResetPasswordProps extends DefaultConfirmResetPasswordProps {} export interface ConfirmSignInProps extends DefaultConfirmSignInProps {} export interface ConfirmSignUpProps extends DefaultConfirmSignUpProps {} export interface ConfirmVerifyUserProps extends DefaultConfirmVerifyUserProps {} export interface ForceNewPasswordProps extends DefaultForceNewPasswordProps {} export interface ForgotPasswordProps extends DefaultForgotPasswordProps {} export interface SelectMfaTypeProps extends DefaultSelectMfaTypeProps {} export interface SetupEmailProps extends DefaultSetupEmailProps {} export interface SetupTotpProps extends DefaultSetupTotpProps {} export interface SignInProps extends DefaultSignInProps {} export interface SignUpProps extends DefaultSignUpProps {} export interface VerifyUserProps extends DefaultVerifyUserProps {}