using System;
using System.Collections.Generic;
using System.IO;
using Luski.net.Enums;
using Luski.net.Interfaces;
using Luski.net.JsonTypes;
using Luski.net.Structures;
using Luski.net.Structures.Main;
using Luski.net.Structures.Public;
using WebSocketSharp;

namespace Luski.net;

public partial class Server
{
    public ServerType ServerType { get; internal set; } = ServerType.Public;
    public string Domain { get; set; } = default!;

    public bool PrintServerMessages { get; set; } = false;
    public string ApiVersion { get; } = "v1";
    internal WebSocket? ServerOut;
    internal  string? Token = null, Error = null, gen = null;
    public bool IsLogedIn => Token is not null;
    internal bool CanRequest = false, login = false;
    internal List<IUser> poeople = new();
    internal List<ServerProfile> profiles = new();
    public ConnectionStatus ConnectionStatus { get; protected set; } = ConnectionStatus.FailedToConnect;
}