declare namespace cc { }
declare namespace cc._decorator {
	// export function ccclass(name?: string): Function;
	// export function ccclass(_class?: Function): void;
}
declare let CC_PREVIEW: boolean;
namespace cc._decorator {
	// export function ccclass(name?: string): Function { return () => { }; }
	export const ccclass: any = undefined;
}

namespace cc {
	export class path {
		static basename(pathStr: string, extname?: string): any { }
	}
	export class sys {
		static localStorage: any;
	}
	export class AudioClip {
		name: string;
	}
	export class Prefab {

	}
	export class Asset {
		constructor(name?: string) { }
		name: string;
	}
	export class assetManager {
		static loadRemote<T extends cc.Asset>(url: string, onComplete: (err: Error, asset: T) => void): void { }
	}
	export class Node extends Asset {
		getChildByName(name: string): Node { return undefined; }
		ExAddChild(childObj: cc.Prefab | cc.Node, childActive?: boolean): cc.Node { return undefined; }
		setParent(value: Node): void { }
		active: boolean;
		children: Node[];
	}
	export function log(msg: string | any, ...subst: any[]): void {
		console.log(msg, ...subst);
	}
	export function warn(msg: string | any, ...subst: any[]): void {
		console.warn(msg, ...subst);
	}
	export function error(msg: string | any, ...subst: any[]): void {
		console.error(msg, ...subst);
	}
}
// export {};