import { RefreshToken, AccessToken } from "./Token";
import { RealmFactory } from "../RealmFactory";
import { Logger } from "./Logger";
import { CustomTokenValidatorConfig } from "../Server";
export declare class TokenValidator {
    private logger;
    private publicKey;
    private realmFactory;
    private tokenRevocationRealm;
    private adminRealm;
    private disableRevocation;
    private hasStarted;
    private refreshTokenValidators;
    constructor({ logger, publicKey, realmFactory, disableRevocation, refreshTokenValidators, }: {
        logger: Logger;
        publicKey: string;
        realmFactory: RealmFactory;
        disableRevocation: boolean;
        refreshTokenValidators?: CustomTokenValidatorConfig[];
    });
    start(): Promise<void>;
    stop(): void;
    parse(tokenData: string, options?: {
        mustBeAdmin?: boolean;
        ignoreExpiration?: boolean;
        checkRevocation?: boolean;
    }): AccessToken | RefreshToken;
    isAdminToken(token: AccessToken | RefreshToken): boolean;
    private isTokenRevoked;
    private openAdminRealm;
    private isLegacyToken;
    private parseLegacyToken;
    private parseJWT;
    private parseRealmToken;
    private parseCustomToken;
    private ensureUserExists;
}
