import { JwtPayload, Secret } from 'jsonwebtoken';
import { AKAuthUser } from '../types.js';
export declare enum AKJwtTokenType {
    access = "access",
    refresh = "refresh",
    setPassword = "setPassword"
}
export type AKJwtServiceOptions = {
    secret: Secret;
};
export declare class AKJwtService<User extends AKAuthUser> {
    #private;
    constructor(options: AKJwtServiceOptions);
    static tokenHasType(payload: any, type: string | string[]): boolean;
    verify(token: string): Promise<JwtPayload | string>;
    accessToken(user: User): Promise<string>;
    refreshToken(user: User): Promise<string>;
    createSetPasswordToken(user: User): Promise<string>;
}
