export interface OptionDefinition {
    flags: string;
    description: string;
    defaultValue?: string | boolean | number;
}
export interface ParsedOptions {
    [key: string]: string | boolean | number | undefined;
}
export interface ArgumentDefinition {
    name: string;
    description: string;
    required: boolean;
}
export declare const HELP_FLAGS: string[];
export declare const VERSION_FLAGS: string[];
export declare const BOOLEAN_FLAG_PREFIX = "no-";
export declare function camelCase(str: string): string;
export declare function findOption(options: OptionDefinition[], flag: string): OptionDefinition | undefined;
export declare function extractLongFlag(flags: string): string | null;
export declare function expectsValue(flags: string): boolean;
export declare function hasOptionalValue(flags: string): boolean;
export declare function isBooleanFlag(flags: string): boolean;
export declare class CLI {
    private programName;
    private programDescription;
    private programVersion;
    private options;
    private argumentDef?;
    private actionFn?;
    name(value: string): this;
    description(value: string): this;
    version(value: string): this;
    option(flags: string, description: string, defaultValue?: string | boolean | number): this;
    argument(name: string, description: string): this;
    action(fn: (arg: string | undefined, options: ParsedOptions) => Promise<void> | void): this;
    parse(argv?: string[]): void;
    private showHelp;
}
export declare function createCLI(): CLI;
export default CLI;
