export global Data {
    in-out property <int> selected_index;

    in property <bool> has-default-username;

    in-out property <int> error_count;

    pure callback get-default-font-size() -> length;

    callback login(username: string, password: string);
    callback loginctl(command: string);
    callback check-lock-states();

    callback get-new-wallpaper();

    in property <string> wallpaper-url;

    in property <int> wallpaper-cooldown: 1;

    in-out property <image> wallpaper-image;
    in-out property <image> wallpaper-image-1;

    in property <string> wallpaper-author;
    in property <string> wallpaper-alt;
    
    in-out property <bool> caps-lock-state;
    in-out property <bool> num-lock-state;
    in-out property <bool> scroll-lock-state;

    in-out property <string> current-time;
    in-out property <string> current-date;
}

export struct LoginOptionTileData { image: image, name: string, command: string}
