declare module net {
	export module jcip {
		export module annotations {
			export class GuardedBy extends java.lang.Object implements java.lang.annotation.Annotation {
				public static class: java.lang.Class<net.jcip.annotations.GuardedBy>;
				/**
				 * Constructs a new instance of the net.jcip.annotations.GuardedBy interface with the provided implementation. An empty constructor exists calling super() when extending the interface class.
				 */
				public constructor(implementation: {
					value(): string;
					equals(param0: any): boolean;
					hashCode(): number;
					toString(): string;
					annotationType(): java.lang.Class<any>;
				});
				public constructor();
				public equals(obj: any): boolean;
				public hashCode(): number;
				public value(): string;
				public equals(param0: any): boolean;
				public annotationType(): java.lang.Class<any>;
				public toString(): string;
			}
		}
	}
}

declare module net {
	export module jcip {
		export module annotations {
			export class Immutable extends java.lang.Object implements java.lang.annotation.Annotation {
				public static class: java.lang.Class<net.jcip.annotations.Immutable>;
				/**
				 * Constructs a new instance of the net.jcip.annotations.Immutable interface with the provided implementation. An empty constructor exists calling super() when extending the interface class.
				 */
				public constructor(implementation: {
					equals(param0: any): boolean;
					hashCode(): number;
					toString(): string;
					annotationType(): java.lang.Class<any>;
				});
				public constructor();
				public equals(obj: any): boolean;
				public hashCode(): number;
				public equals(param0: any): boolean;
				public annotationType(): java.lang.Class<any>;
				public toString(): string;
			}
		}
	}
}

declare module net {
	export module jcip {
		export module annotations {
			export class NotThreadSafe extends java.lang.Object implements java.lang.annotation.Annotation {
				public static class: java.lang.Class<net.jcip.annotations.NotThreadSafe>;
				/**
				 * Constructs a new instance of the net.jcip.annotations.NotThreadSafe interface with the provided implementation. An empty constructor exists calling super() when extending the interface class.
				 */
				public constructor(implementation: {
					equals(param0: any): boolean;
					hashCode(): number;
					toString(): string;
					annotationType(): java.lang.Class<any>;
				});
				public constructor();
				public equals(obj: any): boolean;
				public hashCode(): number;
				public equals(param0: any): boolean;
				public annotationType(): java.lang.Class<any>;
				public toString(): string;
			}
		}
	}
}

declare module net {
	export module jcip {
		export module annotations {
			export class ThreadSafe extends java.lang.Object implements java.lang.annotation.Annotation {
				public static class: java.lang.Class<net.jcip.annotations.ThreadSafe>;
				/**
				 * Constructs a new instance of the net.jcip.annotations.ThreadSafe interface with the provided implementation. An empty constructor exists calling super() when extending the interface class.
				 */
				public constructor(implementation: {
					equals(param0: any): boolean;
					hashCode(): number;
					toString(): string;
					annotationType(): java.lang.Class<any>;
				});
				public constructor();
				public equals(obj: any): boolean;
				public hashCode(): number;
				public equals(param0: any): boolean;
				public annotationType(): java.lang.Class<any>;
				public toString(): string;
			}
		}
	}
}

//Generics information:

