import { Config } from '@backstage/config';
import { LoggerService } from '@backstage/backend-plugin-api';
import { TokenManager } from './types';
/**
 * Options for {@link ServerTokenManager}.
 *
 * @public
 */
export interface ServerTokenManagerOptions {
    /**
     * The logger to use.
     */
    logger: LoggerService;
}
/**
 * Creates and validates tokens for use during service-to-service
 * authentication.
 *
 * @public
 */
export declare class ServerTokenManager implements TokenManager {
    private readonly options;
    private readonly verificationKeys;
    private signingKey;
    private privateKeyPromise;
    private currentTokenPromise;
    /**
     * Creates a token manager that issues static fake tokens and never fails
     * authentication. This can be useful for testing.
     */
    static noop(): TokenManager;
    static fromConfig(config: Config, options: ServerTokenManagerOptions): ServerTokenManager;
    private constructor();
    private generateKeys;
    getToken(): Promise<{
        token: string;
    }>;
    authenticate(token: string): Promise<void>;
}
