export namespace main {
	
	export class AppInfo {
	    version: string;
	    versionCode: number;
	    platform: string;
	    arch: string;
	    osName: string;
	    dataDir: string;
	    storageDir: string;
	    downloads: string;
	    configDir: string;
	    homeDir: string;
	    buildType: string;
	    goVersion: string;
	    screenWidth: number;
	    screenHeight: number;
	
	    static createFrom(source: any = {}) {
	        return new AppInfo(source);
	    }
	
	    constructor(source: any = {}) {
	        if ('string' === typeof source) source = JSON.parse(source);
	        this.version = source["version"];
	        this.versionCode = source["versionCode"];
	        this.platform = source["platform"];
	        this.arch = source["arch"];
	        this.osName = source["osName"];
	        this.dataDir = source["dataDir"];
	        this.storageDir = source["storageDir"];
	        this.downloads = source["downloads"];
	        this.configDir = source["configDir"];
	        this.homeDir = source["homeDir"];
	        this.buildType = source["buildType"];
	        this.goVersion = source["goVersion"];
	        this.screenWidth = source["screenWidth"];
	        this.screenHeight = source["screenHeight"];
	    }
	}
	export class DownloadResult {
	    path: string;
	    name: string;
	    size: number;
	    dir: string;
	
	    static createFrom(source: any = {}) {
	        return new DownloadResult(source);
	    }
	
	    constructor(source: any = {}) {
	        if ('string' === typeof source) source = JSON.parse(source);
	        this.path = source["path"];
	        this.name = source["name"];
	        this.size = source["size"];
	        this.dir = source["dir"];
	    }
	}
	export class HttpRequestOptions {
	    method: string;
	    url: string;
	    headers: Record<string, string>;
	    body: string;
	    timeoutMs: number;
	    binary: boolean;
	
	    static createFrom(source: any = {}) {
	        return new HttpRequestOptions(source);
	    }
	
	    constructor(source: any = {}) {
	        if ('string' === typeof source) source = JSON.parse(source);
	        this.method = source["method"];
	        this.url = source["url"];
	        this.headers = source["headers"];
	        this.body = source["body"];
	        this.timeoutMs = source["timeoutMs"];
	        this.binary = source["binary"];
	    }
	}
	export class HttpResponse {
	    statusCode: number;
	    header: Record<string, string>;
	    body: string;
	    binary: boolean;
	    url: string;
	
	    static createFrom(source: any = {}) {
	        return new HttpResponse(source);
	    }
	
	    constructor(source: any = {}) {
	        if ('string' === typeof source) source = JSON.parse(source);
	        this.statusCode = source["statusCode"];
	        this.header = source["header"];
	        this.body = source["body"];
	        this.binary = source["binary"];
	        this.url = source["url"];
	    }
	}
	export class PickedFile {
	    path: string;
	    name: string;
	    content: string;
	    size: number;
	
	    static createFrom(source: any = {}) {
	        return new PickedFile(source);
	    }
	
	    constructor(source: any = {}) {
	        if ('string' === typeof source) source = JSON.parse(source);
	        this.path = source["path"];
	        this.name = source["name"];
	        this.content = source["content"];
	        this.size = source["size"];
	    }
	}
	export class PickedImage {
	    path: string;
	    name: string;
	    dataUrl: string;
	    size: number;
	
	    static createFrom(source: any = {}) {
	        return new PickedImage(source);
	    }
	
	    constructor(source: any = {}) {
	        if ('string' === typeof source) source = JSON.parse(source);
	        this.path = source["path"];
	        this.name = source["name"];
	        this.dataUrl = source["dataUrl"];
	        this.size = source["size"];
	    }
	}
	export class UpdateDownloadResult {
	    path: string;
	    name: string;
	    size: number;
	    dir: string;
	    md5: string;
	
	    static createFrom(source: any = {}) {
	        return new UpdateDownloadResult(source);
	    }
	
	    constructor(source: any = {}) {
	        if ('string' === typeof source) source = JSON.parse(source);
	        this.path = source["path"];
	        this.name = source["name"];
	        this.size = source["size"];
	        this.dir = source["dir"];
	        this.md5 = source["md5"];
	    }
	}

}

