declare type Extra = any[];
declare type EachArgCallback<V, E extends Extra, TH = any> = (this: TH, value: V, index: number, ...extra: E) => any;
declare function eachArg<V, E extends Extra, TH = any>(this: TH, arr: IArguments | V[] | string | ArrayLike<V>, start: number, callback: EachArgCallback<V, E, TH>, ...extra: E): void;
declare function eachArg<V, TH = any>(this: TH, arr: IArguments | V[] | string | ArrayLike<V>, start: number, callback: EachArgCallback<V, Extra, TH>, ...extra: Extra): void;
export = eachArg;
