import { Router } from 'express';
import type { Client } from 'openid-client';
import type { AuthDriverOptions, User } from '../../types/index.js';
import type { RoleMap } from '../../types/rolemap.js';
import { LocalAuthDriver } from './local.js';
export declare class OpenIDAuthDriver extends LocalAuthDriver {
    client: null | Client;
    config: Record<string, any>;
    roleMap: RoleMap;
    constructor(options: AuthDriverOptions, config: Record<string, any>);
    private getClient;
    generateCodeVerifier(): string;
    generateAuthUrl(codeVerifier: string, prompt?: boolean, callbackUrl?: string): Promise<string>;
    private fetchUserId;
    getUserID(payload: Record<string, any>): Promise<string>;
    login(user: User): Promise<void>;
    refresh(user: User): Promise<void>;
}
export declare function createOpenIDAuthRouter(providerName: string): Router;
