import type IStorageUtility from "../../../storage/IStorageUtility"; import type { IOidcOptions } from "../IOidcOptions"; import type { IRedirector } from "../IRedirector"; /** * @hidden * Authorization code flow spec: https://openid.net/specs/openid-connect-core-1_0.html#CodeFlowAuth * PKCE: https://tools.ietf.org/html/rfc7636 */ export default abstract class AuthorizationCodeWithPkceOidcHandlerBase { protected storageUtility: IStorageUtility; protected redirector: IRedirector; constructor(storageUtility: IStorageUtility, redirector: IRedirector); parametersGuard: (oidcLoginOptions: IOidcOptions) => oidcLoginOptions is IOidcOptions & { redirectUrl: string; }; canHandle(oidcLoginOptions: IOidcOptions): Promise; setupRedirectHandler({ oidcLoginOptions, state, codeVerifier, targetUrl, }: { oidcLoginOptions: IOidcOptions; state: string; codeVerifier: string; targetUrl: string; }): Promise; }