import type { ArgumentOptions, ArgumentValue, DefaultValue, FlagOptions, ParseFlagsContext, ParseFlagsOptions, TypeHandler, ValueHandler,} from "./types.ts";
export type IParseOptions<TFlagOptions extends FlagOptions = FlagOptions> = ParseFlagsOptions<TFlagOptions>;
export type IFlagOptions = FlagOptions;
export type IFlagArgument = ArgumentOptions;
export type IDefaultValue<TValue = unknown> = DefaultValue<TValue>;
export type IFlagValueHandler<TValue = any, TReturn = TValue> = ValueHandler< TValue, TReturn>;
export type IFlagsResult< TFlags extends Record<string, any> = Record<string, any>, TStandaloneOption extends FlagOptions = FlagOptions,> = ParseFlagsContext<TFlags, TStandaloneOption>;
export type ITypeInfo = ArgumentValue;
export type ITypeHandler<TReturn = unknown> = TypeHandler<TReturn>;
export enum OptionType { STRING = "string", NUMBER = "number", INTEGER = "integer", BOOLEAN = "boolean",}