38 lines
		
	
	
		
			938 B
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			38 lines
		
	
	
		
			938 B
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
import type * as mri from 'mri';
 | 
						|
 | 
						|
type Arrayable<T> = T | T[];
 | 
						|
 | 
						|
declare function sade(usage: string, isSingle?: boolean): sade.Sade;
 | 
						|
 | 
						|
declare namespace sade {
 | 
						|
	export type Handler = (...args: any[]) => any;
 | 
						|
	export type Value = number | string | boolean | null;
 | 
						|
 | 
						|
	export interface LazyOutput {
 | 
						|
		name: string;
 | 
						|
		handler: Handler;
 | 
						|
		args: string[];
 | 
						|
	}
 | 
						|
 | 
						|
	export interface Sade {
 | 
						|
		command(usage: string, description?: string, options?: {
 | 
						|
			alias?: Arrayable<string>;
 | 
						|
			default?: boolean;
 | 
						|
		}): Sade;
 | 
						|
 | 
						|
		option(flag: string, description?: string, value?: Value): Sade;
 | 
						|
		action(handler: Handler): Sade;
 | 
						|
		describe(text: Arrayable<string>): Sade;
 | 
						|
		alias(...names: string[]): Sade;
 | 
						|
		example(usage: string): Sade;
 | 
						|
 | 
						|
		parse(arr: string[], opts: { lazy: true } & mri.Options): LazyOutput;
 | 
						|
		parse(arr: string[], opts?: { lazy?: boolean } & mri.Options): void;
 | 
						|
 | 
						|
		version(value: string): Sade;
 | 
						|
		help(cmd?: string): void;
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
export = sade;
 |