UNPKG

1.94 kBTypeScriptView Raw
1import { IConfig } from '@anycli/config';
2import * as Parser from '@anycli/parser';
3export declare type ICompletionContext = {
4 args?: {
5 [name: string]: string;
6 };
7 flags?: {
8 [name: string]: string;
9 };
10 argv?: string[];
11 config: IConfig;
12};
13export declare type ICompletion = {
14 skipCache?: boolean;
15 cacheDuration?: number;
16 cacheKey?(ctx: ICompletionContext): Promise<string>;
17 options(ctx: ICompletionContext): Promise<string[]>;
18};
19export declare type IOptionFlag<T> = Parser.flags.IOptionFlag<T> & {
20 completion?: ICompletion;
21};
22export declare type IFlag<T> = Parser.flags.IBooleanFlag<T> | IOptionFlag<T>;
23export declare type Output = Parser.flags.Output;
24export declare type Input<T extends Parser.flags.Output> = {
25 [P in keyof T]: IFlag<T[P]>;
26};
27export declare type Definition<T> = {
28 (options: {
29 multiple: true;
30 } & Partial<IOptionFlag<T>>): IOptionFlag<T[]>;
31 (options: {
32 required: true;
33 } & Partial<IOptionFlag<T>>): IOptionFlag<T>;
34 (options?: Partial<IOptionFlag<T>>): IOptionFlag<T | undefined>;
35};
36export declare function build<T>(defaults: {
37 parse: IOptionFlag<T>['parse'];
38} & Partial<IOptionFlag<T>>): Definition<T>;
39export declare function build(defaults: Partial<IOptionFlag<string>>): Definition<string>;
40export declare function option<T>(options: {
41 parse: IOptionFlag<T>['parse'];
42} & Partial<IOptionFlag<T>>): IOptionFlag<T | undefined>;
43declare const _enum: <T = string>(opts: Parser.flags.EnumFlagOptions<T>) => IOptionFlag<T>;
44export { _enum as enum };
45declare const stringFlag: Definition<string>;
46export { stringFlag as string };
47export { boolean } from '@anycli/parser/lib/flags';
48export declare const version: (opts?: Partial<Parser.flags.IBooleanFlag<boolean>>) => Parser.flags.IBooleanFlag<void>;
49export declare const help: (opts?: Partial<Parser.flags.IBooleanFlag<boolean>>) => Parser.flags.IBooleanFlag<void>;