import { Base, CliTypeMap, CliTypes } from "./base"; import { ExclusiveGroupsByName, ExclusiveGroupUnionAndUnconstrainedPlus } from "./exclusive"; import { Legacy, OptionCliType, OptionHasCliType, OptionHasDefault, OptionHasLegacy, OptionName, OptionRawType, OptionType } from "./getters"; import { UnionToIntersection } from "./types"; type Normalize = OptionName> = (rawInput: OptionRawType, config: Readonly>) => OptionType; export type ExternalConfig = Partial>; export type InternalConfig = ExclusiveGroupUnionAndUnconstrainedPlus; export type Definition> = { readonly normalize: Normalize; readonly cliDescription: string; readonly disableInCLI?: boolean; readonly cliAliases?: string[]; readonly cliChoices?: string[] | number[]; readonly implies?: ReadonlyArray, N>>; } & (C[ExclusiveGroupsByName] extends never ? {} : { readonly conflicts: ExclusiveGroupsByName[]; }) & (void extends OptionHasCliType ? { readonly cliType?: CliTypeMap | null; } : { readonly cliType?: CliTypeMap> | null; readonly cliCoerce?: (cliType: OptionCliType) => OptionRawType; }) & (void extends OptionHasDefault ? {} : { readonly default: (config: InternalConfig) => OptionType; readonly defaultDescription?: string; }) & (void extends OptionHasLegacy ? {} : { readonly legacyName: UnionToIntersection>; }); export type Definitions = { [N in OptionName]: Definition; }; export {}; //# sourceMappingURL=definition.d.ts.map