caret position:
fq_buffer:
int caretX()
int caretY()

term screen size:
fq_buffer:
int termWidth()
int termHeight()

term content:
fq_buffer:
QString allPlainTextAt(int index) const;
    
QString plainTextAt(int index, int begin, int end) const;
    
const unsigned char *colorsAt(int index) const;
    
const unsigned char *attributesAt(int index) const;
QString allAnsiTextAt(int index, const char* escape = "\x1b\x1b") const;
    
QString ansiTextAt(int index, int begin, int end, const char* escape = "\x1b\x1b") const;

client area:
fq_screen:
int clientWidth() const;
int clientHeight() const;
QList<int> mapCharToPixel(int x, int y);
QList<int> mapPixelToChar(int x, int y);

write:
fq_window:
int writeRawData(const char* data, int len);
int writeString(const QString& str);

signals:
fq_screen:
    //Value in Qt                   Mapped value
    //Qt::NoModifier                0x00000000
    //Qt::ShiftModifier             0x02000000
    //Qt::ControlModifier           0x04000000
    //Qt::AltModifier               0x08000000
    //Qt::MetaModifier              0x10000000
    //Qt::KeypadModifier            0x20000000
    //Qt::GroupSwitchModifier       0x40000000
    void keyPressEvent(int modifiers, int key);
    //QEvent::MouseButtonPress      0
    //QEvent::MouseButtonRelease    1
    //QEvent::MouseButtonDblClick   2
    //QEvent::MouseMove             3
    //Qt::NoButton                  0x00000000
    //Qt::LeftButton                0x00000001
    //Qt::RightButton               0x00000002
    //Qt::MidButton                 0x00000004
    //Qt::XButton1                  0x00000008
    //Qt::XButton2                  0x00000010
    void mouseEvent(int type, int x, int y, int button, int buttons, int modifiers);
usage:
    myKeyPressEvent(int modifiers, int key) {do something}
    fq_window.keyPressEvent.connect(myKeyPressEvent);



others:
fq_session:
void reconnect();
void disconnect();
void cancelZmodem();
....