import { AuthService } from "../services/AuthService";
import { User } from "../realms/AdminRealm";
export interface IAuthProvider {
    name: string;
    start?(): Promise<void>;
    stop?(): Promise<void>;
    authenticateOrCreateUser(body: any): Promise<User>;
    update?(user: User, body: any): Promise<any>;
    deleteUser?(userId: string): Promise<boolean>;
    updateProviderAccount?(providerId: string, user: User, data: any, isAuthenticated: boolean, userAgent: any, remoteIp: string): Promise<any>;
    enhanceLog?(body: any): string;
}
export declare abstract class AuthProvider implements IAuthProvider {
    protected service: AuthService;
    abstract readonly name: string;
    start(): Promise<void>;
    stop(): Promise<void>;
    abstract authenticateOrCreateUser(body: any): Promise<User>;
    update(user: User, body: any): Promise<any>;
    deleteUser(userId: string): Promise<boolean>;
}
