import { UnionToIntersection, TupleTypes } from "./flag"; declare type Argument = (v: string[]) => { [key in N]: { value: T; position: number[]; usage: string; }; }; declare type StringArgument = Argument; declare type BooleanArgument = Argument; declare type NumberArgument = Argument; export declare type ArgumentOption = { usage?: string; }; export declare function makeStringArgument(name: N, opts?: ArgumentOption): StringArgument; export declare function makeBooleanArgument(name: N, opts?: ArgumentOption): BooleanArgument; export declare function makeNumberArgument(name: N, opts?: ArgumentOption): NumberArgument; export declare function makePositionalArguments { [key: string]: any; }>>(...argParsers: T): (args: string[]) => UnionToIntersection>; export {};