diff --git a/css/css-tests.ts b/css/css-tests.ts
new file mode 100644
index 000000000..f1f959882
--- /dev/null
+++ b/css/css-tests.ts
@@ -0,0 +1,26 @@
+///
+
+import css = require("css");
+var parserOptions: css.ParserOptions;
+parserOptions = {
+ silent: true,
+ source: "test.css"
+};
+
+var stylesheet = css.parse("body { font-size: 12px; }", parserOptions);
+
+var comment: css.Comment;
+comment = {
+ type: "comment",
+ comment: "Hello World"
+};
+
+stylesheet.stylesheet.rules.push(comment);
+
+var stringifyOptions: css.StringifyOptions;
+stringifyOptions = {
+ indent: " "
+};
+
+var content = css.stringify(stylesheet, stringifyOptions);
+console.log(content);
\ No newline at end of file
diff --git a/css/css.d.ts b/css/css.d.ts
new file mode 100644
index 000000000..504916401
--- /dev/null
+++ b/css/css.d.ts
@@ -0,0 +1,135 @@
+// Type definitions for css
+// Project: https://github.com/reworkcss/css
+// Definitions by: Ilya Verbitskiy
+// Definitions: https://github.com/ilich/DefinitelyTyped
+
+declare module "css" {
+
+ // Options
+
+ interface ParserOptions {
+ silent?: boolean;
+ source?: string;
+ }
+
+ interface StringifyOptions {
+ indent?: string;
+ compress?: boolean;
+ sourcemap?: string;
+ inputSourcemaps?: boolean;
+ }
+
+ // Errors
+
+ interface ParserError {
+ message?: string;
+ reason?: string;
+ filename?: string;
+ line?: number;
+ column?: number;
+ source?: string;
+ }
+
+ // AST Tree
+
+ interface Position {
+ line?: number;
+ column?: number;
+ }
+
+ interface Node {
+ type?: string;
+ parent?: Node;
+ position?: {
+ start?: Position;
+ end?: Position;
+ source?: string;
+ content?: string;
+ };
+ }
+
+ interface Rule extends Node {
+ selectors?: Array;
+ declarations?: Array;
+ }
+
+ interface Declaration extends Node {
+ property?: string;
+ value?: string;
+ }
+
+ interface Comment extends Node {
+ comment?: string;
+ }
+
+ interface Charset {
+ charset?: string;
+ }
+
+ interface CustomMedia {
+ name?: string;
+ media?: string;
+ }
+
+ interface Document {
+ document?: string;
+ vendor?: string;
+ rules?: Array;
+ }
+
+ interface FontFace {
+ declarations?: Array;
+ }
+
+ interface Host {
+ rules?: Array;
+ }
+
+ interface Import {
+ import?: string;
+ }
+
+ interface KeyFrames {
+ name?: string;
+ vendor?: string;
+ keyframes?: Array;
+ }
+
+ interface KeyFrame {
+ values?: Array;
+ declarations?: Array;
+ }
+
+ interface Media {
+ media?: string;
+ rules?: Array;
+ }
+
+ interface Namespace {
+ namespace?: string;
+ }
+
+ interface Page {
+ selectors?: Array;
+ declarations?: Array;
+ }
+
+ interface Supports {
+ supports?: string;
+ rules?: Array;
+ }
+
+ type AtRule = Charset|CustomMedia|Document|FontFace|Host|Import|KeyFrames|Media|Namespace|Page|Supports;
+
+ interface Stylesheet extends Node {
+ stylesheet?: {
+ rules?: Array;
+ parsingErrors?: Array
+ };
+ }
+
+ // API
+
+ function parse(code?: string, options?: ParserOptions): Stylesheet;
+ function stringify(stylesheet?: Stylesheet, options?: StringifyOptions): string;
+}
\ No newline at end of file