diff --git a/index.d.ts b/index.d.ts
new file mode 100644
index 0000000..093ad0c
--- /dev/null
+++ b/index.d.ts
@@ -0,0 +1,58 @@
+///
+
+declare module "child-process-promise" {
+ import {
+ ChildProcess,
+ ExecFileOptions,
+ ExecFileOptionsWithBufferEncoding,
+ ExecFileOptionsWithStringEncoding,
+ ExecOptions,
+ ExecOptionsWithBufferEncoding,
+ ExecOptionsWithStringEncoding,
+ ForkOptions,
+ SpawnOptions,
+ } from "child_process";
+
+ export interface ChildProcessPromise extends Promise> {
+ progress(callback: (cp: ChildProcess) => void): this;
+ }
+
+ export interface ChildProcessResult {
+ childProcess: ChildProcess;
+ stdout: StreamType;
+ stderr: StreamType;
+ }
+
+ export interface ExtendOption {
+ capture?: ('stderr'|'stdout')[];
+ successfulExitCodes?: number[];
+ }
+
+ export interface ChildProcessError extends Error {
+ code: number;
+ childProcess: ChildProcess;
+ stdout: Buffer|string;
+ stderr: Buffer|string;
+ }
+
+ export function spawn(command: string, args?: string[],
+ options?: SpawnOptions&ExtendOption): ChildProcessPromise;
+
+ export function exec(command: string): ChildProcessPromise;
+ export function exec(command: string, options: ExecOptionsWithStringEncoding): ChildProcessPromise;
+ export function exec(command: string, options: ExecOptionsWithBufferEncoding): ChildProcessPromise;
+ export function exec(command: string, options: ExecOptions): ChildProcessPromise;
+
+ export function execFile(file: string): ChildProcessPromise;
+ export function execFile(file: string, options?: ExecFileOptionsWithStringEncoding): ChildProcessPromise;
+ export function execFile(file: string, options?: ExecFileOptionsWithBufferEncoding): ChildProcessPromise;
+ export function execFile(file: string, options?: ExecFileOptions): ChildProcessPromise;
+ export function execFile(file: string, args?: string[]): ChildProcessPromise;
+ export function execFile(file: string, args?: string[], options?: ExecFileOptionsWithStringEncoding): ChildProcessPromise;
+ export function execFile(file: string, args?: string[], options?: ExecFileOptionsWithBufferEncoding): ChildProcessPromise;
+ export function execFile(file: string, args?: string[], options?: ExecFileOptions): ChildProcessPromise;
+
+ export function fork(modulePath: string, args?: string[],
+ options?: ForkOptions&ExtendOption): ChildProcessPromise;
+}
diff --git a/package.json b/package.json
index 33902d2..a9555e8 100644
--- a/package.json
+++ b/package.json
@@ -7,6 +7,7 @@
"lib-es5",
"Readme.md"
],
+ "types": "./index.d.ts",
"scripts": {
"lint": "eslint lib/*js test/*js",
"test": "npm run mocha",