export interface SignedToken {
  token: string;
  expiresAt: Date;
}

/**
 * OAuth token issuance: signs access and refresh tokens using the RS256 key pair.
 *
 * Hub session management (signHubSession / verifyHubSession / verifyAccessToken)
 * has been moved to IHubSessionManager to keep each port's surface area minimal.
 */
export interface IJwtSigner {
  signAccess(payload: { aci: string }): Promise<SignedToken>;
  signRefresh(): Promise<SignedToken>;
}
