/**
 * Custom argument parser to replace yargs
 */
export interface CommandOption {
    type: 'string' | 'boolean' | 'number';
    description: string;
    default?: string | boolean | number;
    required?: boolean;
    choices?: string[];
}
export interface CommandDefinition {
    name: string;
    description: string;
    options: Record<string, CommandOption>;
    positionals: Array<{
        name: string;
        description: string;
        required: boolean;
    }>;
    handler: (args: Record<string, any>) => Promise<void> | void;
}
export declare class ArgParser {
    private programName;
    private programDescription;
    private commands;
    private helpText;
    private version;
    constructor(programName: string, programDescription: string);
    /**
     * Register a command with the parser
     */
    command(command: CommandDefinition): ArgParser;
    /**
     * Set the version of the program
     */
    setVersion(version: string): ArgParser;
    /**
     * Generate help text for the program
     */
    private generateHelpText;
    /**
     * Generate help text for a specific command
     */
    private generateCommandHelpText;
    /**
     * Parse command line arguments and execute the appropriate command
     */
    parse(args?: string[]): Promise<void>;
}
