import { OAuthConfig } from 'aws-amplify/adapter-core/internals'; import { NextApiRequest, NextApiResponse } from 'next'; import { CookieStorage } from 'aws-amplify/adapter-core'; import { CreateAuthRoutesHandlersInput } from '../types'; interface AuthApiRequestHandlerInputBase { oAuthConfig: OAuthConfig; origin: string; userPoolClientId: string; setCookieOptions: CookieStorage.SetCookieOptions; } interface HandleSignInSignUpRequestInputBase extends AuthApiRequestHandlerInputBase { customState?: string; type: 'signIn' | 'signUp'; } interface HandleSignInSignUpRequestInput extends HandleSignInSignUpRequestInputBase { request: Request; } interface HandleSignInSigUpRequestForPagesRouterInput extends HandleSignInSignUpRequestInputBase { request: NextApiRequest; response: NextApiResponse; } export type HandleSignInSignUpRequest = (input: HandleSignInSignUpRequestInput) => Response; export type HandleSignInSignUpRequestForPagesRouter = (input: HandleSignInSigUpRequestForPagesRouterInput) => void; interface HandleSignInCallbackRequestInput extends AuthApiRequestHandlerInputBase { request: Request; handlerInput: CreateAuthRoutesHandlersInput; } interface HandleSignInCallbackRequestForPagesRouterInput extends AuthApiRequestHandlerInputBase { request: NextApiRequest; response: NextApiResponse; handlerInput: CreateAuthRoutesHandlersInput; } export type HandleSignInCallbackRequest = (input: HandleSignInCallbackRequestInput) => Promise; export type HandleSignInCallbackRequestForPagesRouter = (input: HandleSignInCallbackRequestForPagesRouterInput) => Promise; type handleSignOutRequestInput = AuthApiRequestHandlerInputBase; interface handleSignOutRequestForPagesRouterInput extends AuthApiRequestHandlerInputBase { response: NextApiResponse; } export type HandleSignOutRequest = (input: handleSignOutRequestInput) => Response; export type HandleSignOutRequestForPagesRouter = (input: handleSignOutRequestForPagesRouterInput) => void; interface HandleSignOutCallbackRequestInput extends AuthApiRequestHandlerInputBase { request: Request; handlerInput: CreateAuthRoutesHandlersInput; } interface HandleSignOutCallbackRequestForPagesHandlerInput extends AuthApiRequestHandlerInputBase { request: NextApiRequest; response: NextApiResponse; handlerInput: CreateAuthRoutesHandlersInput; } export type HandleSignOutCallbackRequest = (input: HandleSignOutCallbackRequestInput) => Promise; export type HandleSignOutCallbackRequestForPagesRouter = (input: HandleSignOutCallbackRequestForPagesHandlerInput) => Promise; export {};