import { Strategy } from 'passport-jwt';
import { TokenPayload, UserPayload, JwtConfig } from '../interfaces';
declare const TntJwtStrategy_base: new (...args: [opt: import("passport-jwt").StrategyOptionsWithRequest] | [opt: import("passport-jwt").StrategyOptionsWithoutRequest]) => Strategy & {
    validate(...args: any[]): unknown;
};
/**
 * TNT JWT Strategy - Abstract base JWT strategy that services can extend.
 * This provides common JWT validation logic while allowing
 * each service to implement its own user lookup.
 */
export declare abstract class TntJwtStrategy extends TntJwtStrategy_base {
    constructor(jwtConfig: JwtConfig);
    /**
     * Validates the JWT payload and returns the authenticated user.
     * Each service must implement this method to perform its own user lookup.
     *
     * @param payload - The decoded JWT payload
     * @returns The authenticated user payload
     * @throws UnauthorizedException if validation fails
     */
    abstract validate(payload: TokenPayload): Promise<UserPayload>;
}
export {};
