|
- declare const flagSymbol: unique symbol;
-
- declare function arg<T extends arg.Spec>(spec: T, options?: arg.Options): arg.Result<T>;
-
- declare namespace arg {
- export function flag<T>(fn: T): T & { [flagSymbol]: true };
-
- export const COUNT: Handler<number> & { [flagSymbol]: true };
-
- export type Handler <T = any> = (value: string, name: string, previousValue?: T) => T;
-
- export interface Spec {
- [key: string]: string | Handler | [Handler];
- }
-
- export type Result<T extends Spec> = { _: string[] } & {
- [K in keyof T]?: T[K] extends Handler
- ? ReturnType<T[K]>
- : T[K] extends [Handler]
- ? Array<ReturnType<T[K][0]>>
- : never
- };
-
- export interface Options {
- argv?: string[];
- permissive?: boolean;
- stopAtPositional?: boolean;
- }
- }
-
- export = arg;
|