plugin_options: TObject<
    {
        ajv: TOptional<TAny>;
        authorizationCodeExpiration: TOptional<TString>;
        components: TOptional<
            TObject<
                {
                    "consent-form": TOptional<TString>;
                    "scope-list": TOptional<TString>;
                    "the-footer": TOptional<TString>;
                    "the-header": TOptional<TString>;
                },
            >,
        >;
        includeErrorDescription: TOptional<TBoolean>;
        issuer: TOptional<TString>;
        logPrefix: TOptional<TString>;
        onAuthorizationCodeVerified: TFunction<[TString], TPromise<TVoid>>;
        onUserApprovedRequest: TFunction<
            [
                TObject<
                    {
                        client_id: TString;
                        code: TString;
                        code_challenge: TRef;
                        code_challenge_method: TRef;
                        exp: TNumber;
                        iss: TOptional<TString>;
                        me: TString;
                        redirect_uri: TString;
                        scope: TString;
                        used: TOptional<TBoolean>;
                    },
                >,
            ],
            TPromise<TVoid>,
        >;
        redirectPathOnSubmit: TOptional<TString>;
        reportAllAjvErrors: TOptional<TBoolean>;
        retrieveAuthorizationCode: TFunction<
            [TString],
            TPromise<
                TUnion<
                    [
                        TObject<
                            {
                                client_id: TString;
                                code: TString;
                                code_challenge: TRef;
                                code_challenge_method: TRef;
                                created_at: TNumber;
                                exp: TNumber;
                                id: TUnion<[TNumber, TString]>;
                                iss: TOptional<TString>;
                                me: TString;
                                redirect_uri: TString;
                                scope: TString;
                                used: TOptional<TBoolean>;
                            },
                        >,
                        TObject<
                            {
                                client_id: TString;
                                code: TString;
                                code_challenge: TRef;
                                code_challenge_method: TRef;
                                created_at: TUnion<[TNumber, TNull]>;
                                deleted_at: TOptional<TUnion<[(...), (...)]>>;
                                exp: TNumber;
                                id: TUnion<[TNumber, TString]>;
                                iss: TOptional<TString>;
                                me: TString;
                                redirect_uri: TString;
                                scope: TString;
                                undeleted_at: TOptional<TUnion<[(...), (...)]>>;
                                updated_at: TOptional<TUnion<[(...), (...)]>>;
                                used: TOptional<TBoolean>;
                            },
                        >,
                    ],
                >,
            >,
        >;
        templates: TOptional<TArray<TString>>;
    },
> = ...