+int kmscon_text_register(const struct kmscon_text_ops *ops);
+void kmscon_text_unregister(const char *name);
+
+int kmscon_text_new(struct kmscon_text **out, const char *backend);
+void kmscon_text_ref(struct kmscon_text *txt);
+void kmscon_text_unref(struct kmscon_text *txt);
+
+int kmscon_text_set(struct kmscon_text *txt,
+ struct kmscon_font *font,
+ struct kmscon_font *bold_font,
+ struct uterm_display *disp);
+void kmscon_text_unset(struct kmscon_text *txt);
+unsigned int kmscon_text_get_cols(struct kmscon_text *txt);
+unsigned int kmscon_text_get_rows(struct kmscon_text *txt);
+
+int kmscon_text_prepare(struct kmscon_text *txt);
+int kmscon_text_draw(struct kmscon_text *txt,
+ uint32_t id, const uint32_t *ch, size_t len,
+ unsigned int width,
+ unsigned int posx, unsigned int posy,
+ const struct tsm_screen_attr *attr);
+int kmscon_text_render(struct kmscon_text *txt);
+void kmscon_text_abort(struct kmscon_text *txt);
+
+int kmscon_text_draw_cb(struct tsm_screen *con,
+ uint32_t id, const uint32_t *ch, size_t len,
+ unsigned int width,
+ unsigned int posx, unsigned int posy,
+ const struct tsm_screen_attr *attr,
+ tsm_age_t age, void *data);