import type { Client, TokenSet } from 'openid-client'; import { UsersService } from '../../services/users.js'; import type { User } from '../../types/index.js'; import { LocalAuthDriver } from './local.js'; export interface UserPayload { provider: string; first_name: any; last_name: any; email: any; external_identifier: string; role: string; auth_data: any; } export declare abstract class BaseOAuthDriver extends LocalAuthDriver { abstract getClient(): Promise; abstract getredirectUrl(): string; abstract getUserService(): UsersService; abstract getConfig(): Record; abstract getClientName(): string; abstract getTokenSetAndUserInfo(payload: Record): Promise<[TokenSet, Record, UserPayload]>; generateCodeVerifier(): string; fetchUserId(identifier: string): Promise; getUserID(payload: Record): Promise; logout(user: User): Promise; login(user: User): Promise; refresh(user: User): Promise; handleError: (e: any) => any; }