import { Request } from 'express';
import { ParamsDictionary } from 'express-serve-static-core';
import passport from 'passport';
import { ParsedQs } from 'qs';
import { createRemoteJWKSet, JWTPayload } from 'jose';
export interface CriiptoVerifyStrategyOptions {
    domain: string;
    clientID: string;
}
export default class CriiptoVerifyStrategy implements passport.Strategy {
    options: CriiptoVerifyStrategyOptions;
    claimsToUser: (input: JWTPayload) => Express.User;
    jwks: ReturnType<typeof createRemoteJWKSet>;
    constructor(options: CriiptoVerifyStrategyOptions, claimsToUser: (input: JWTPayload) => Express.User);
    authenticate(this: passport.StrategyCreated<this, this & passport.StrategyCreatedStatic> & this, req: Request<ParamsDictionary, any, any, ParsedQs, Record<string, any>>, options?: any): void;
}
