/** A type extacting string parameters from an arguments array */ export type ParsedParams = Args extends readonly [infer First, ...infer Rest] ? First extends string ? [First, ...ParsedParams] : [] : Args extends readonly [...infer First, infer Rest] ? Rest extends string ? [...ParsedParams, Rest] : [...ParsedParams] : Args extends readonly string[] ? [...Args] : []; /** A type extacting the (last) options type from an arguments array */ export type ParsedOptions = Args extends readonly [...string[], infer Last] ? Last extends object ? Last : never : never; /** Parserable arguments: a number of strings, followed by optional options */ export type ParseOptions> = readonly [...params: string[]] | readonly [...params: string[], options: Options]; /** The return type from {@link ParseOptions} */ export interface ParsedResult { params: ParsedParams; options: Defaults extends null | undefined ? Options | undefined : Options & Defaults; } /** * Parse an array of arguments (a number of strings optionally followed by an * options object into parameters and options. */ export declare function parseOptions, Options extends ParsedOptions = ParsedOptions, Defaults extends ParsedOptions | null | undefined = undefined>(args: Args, defaults?: Defaults): ParsedResult; //# sourceMappingURL=options.d.ts.map