/// export const Arg: undefined; export const Opt: undefined; export function Cmd(cmd?: classes.Cmd): classes.Cmd; export namespace classes { class Arg { constructor(cmd: Cmd); name(name: string): Arg; title(title: string): Arg; arr(): Arg; req(): Arg; val(validation: (this: Arg, value: any) => boolean): Arg; def(def: any): Arg; output(): Arg; comp(fn: (opts: any) => any): Arg; end(): Cmd; apply(...args: any[]): Arg; input(): Arg; reject(...args: any[]): Arg; } class Cmd { constructor(cmd?: Cmd); static create(cmd?: Cmd): Cmd; api(): any; name(name: string): Cmd; title(title: string): Cmd; cmd(cmd?: Cmd): Cmd; opt(): Opt; arg(): Arg; act(act: (opts: any, args: any[], res: any) => any, force?: boolean): Cmd; apply(fn: Function, args?: any[]): Cmd; comp(fs: (opts: any) => any): Cmd; helpful(): Cmd; completable(): Cmd; usage(): string; run(argv: string[]): Cmd; invoke(cmds?: string|string[], opts?: any, args?: any): Q.Promise; reject(reason: any): Q.Promise; end(): Cmd; do(argv: string[]): any; extendable(pattern?: string): Cmd; } class Opt { constructor(cmd?: Cmd); name(name: string): Opt; title(title: string): Opt; short(short: string): Opt; long(long: string): Opt; flag(): Opt; arr(): Opt; req(): Opt; only(): Opt; val(validation: (this: Opt, value: any) => boolean): Opt; def(def: any): Opt; input(): Opt; output(): Opt; act(act: (opts: any, args: any[], res: any) => any): Opt; comp(fn: (opts: any) => any): Opt; end(): Cmd; apply(...args: any[]): void; reject(...args: any[]): void; } } export namespace shell { function escape(w: string): string; function unescape(w: string): string; }