This is to get you going. I dug this out form the script listener.
rotateCurrentLayer(-10 , 532, 412)
function rotateCurrentLayer( angle, X, Y){
var idTrnf = charIDToTypeID( "Trnf" );
var desc77 = new ActionDescriptor();
var idnull = charIDToTypeID( "null" );
var ref8 = new ActionReference();
var idLyr = charIDToTypeID( "Lyr " );
var idOrdn = charIDToTypeID( "Ordn" );
var idTrgt = charIDToTypeID( "Trgt" );
ref8.putEnumerated( idLyr, idOrdn, idTrgt );
desc77.putReference( idnull, ref8 );
var idFTcs = charIDToTypeID( "FTcs" );
var idQCSt = charIDToTypeID( "QCSt" );
var idQcsi = charIDToTypeID( "Qcsi" );
desc77.putEnumerated( idFTcs, idQCSt, idQcsi );
var idPstn = charIDToTypeID( "Pstn" );
var desc78 = new ActionDescriptor();
var idRlt = charIDToTypeID( "#Rlt" );
desc78.putUnitDouble( charIDToTypeID( "Hrzn" ), idRlt, X);
desc78.putUnitDouble( charIDToTypeID( "Vrtc" ), idRlt, Y);
var idPnt = charIDToTypeID( "Pnt " );
desc77.putObject( idPstn, idPnt, desc78 );
var idAng = charIDToTypeID( "#Ang" );
desc77.putUnitDouble( charIDToTypeID( "Angl" ), idAng, angle);
executeAction( idTrnf, desc77, DialogModes.NO );
}