let addArg: arg:'a => name:StringMap.key => (list((StringMap.key, 'a, 'a)), StringMap.t('a)) => (list((StringMap.key, 'a, 'a)), StringMap.t('a));
let getDuplicatesAndKnownArgs: list((RargInternal.Args.t, 'a)) => (list((StringMap.key, RargInternal.Args.t, RargInternal.Args.t)), StringMap.t(RargInternal.Args.t));
let isValidArgName: string => bool;
let checkArgNames: list((RargInternal.Args.t, 'a)) => Stdlib.result(unit, list(RargInternal.Args.t));
let definedArgs: list((RargInternal.Args.t, RargInternal.Args.validate)) => Stdlib.result(StringMap.t(RargInternal.Args.t), Err.Config.t);
let checkUnknownArgs: isKnown:(string => bool) => providedArgs:list((string, array(string))) => Stdlib.result(unit, list((string, array(string))));
let checkKnownArgs: list((RargInternal.Args.t, RargInternal.Args.validate)) => argsMap:RargInternal.ArgsMap.t => Stdlib.result(unit, list((RargInternal.Args.t, RargInternal.ValidateArgs.Err.t)));
let providedArgs: list((RargInternal.Args.t, RargInternal.Args.validate)) => argsMap:RargInternal.ArgsMap.t => isKnown:(string => bool) => Stdlib.result(unit, Err.User.t);