import { Argumental } from '../types';
export declare class Parser {
    /**
    * Casts all parsed values to string (except for booleans).
    * @param parsed Minimist parsed arguments.
    */
    private _stringifyMinimist;
    /**
    * Determines if value is an array.
    * @param value The value to check.
    */
    private _isArray;
    /**
    * Determines whether a value can overwrite the other version (short name and long name for options).
    * @param value The provided value.
    */
    private _canOverwriteOpt;
    /**
    * Sorts an array of values based on their order of occurrence in the process arguments.
    * @param args The process arguments.
    * @param values The named values array (e.g. ['-a 0', '--abort 1', '-a']).
    */
    private _sortBasedOnPriority;
    /**
    * Returns Argumental parsed option equivalent of Minimist parsed.
    * @param minimistParsed The Minimist parsed object.
    * @param minimistName The Minimist parsed object key.
    */
    private _getArgumentalValue;
    /**
    * Adds a Minimist parsed string option to Argumental parsed object with proper translation.
    * @param minimistParsed The Minimist parsed object.
    * @param argumentalParsed The Argumental parsed object.
    * @param minimistName The Minimist parsed object key.
    * @param argumentalName The Argumental parsed object key.
    */
    private _addStringOption;
    /**
    * Parses an argument based on the given syntax.
    * @param syntax The argument syntax.
    * @param command Whether this argument belongs to a command or an option.
    * @param validators A single or an array of validators.
    * @param defaultValue Argument's default value.
    */
    parseArgument<T = Argumental.ArgumentDeclaration>(syntax: string, command: boolean, validators?: Argumental.Validator | RegExp | Array<RegExp | Argumental.Validator>, defaultValue?: string | boolean | number): T;
    /**
    * Parses an option based on the given syntax.
    * @param syntax The option syntax.
    * @param description The option description to display in help.
    * @param required A boolean indicating if option is required.
    * @param validators A single or an array of validators.
    * @param multi A boolean indicating if option can be repeated more than once.
    * @param defaultValue The option's argument's default value.
    * @param immediate Whether to stop parsing other components and run the action handlers when this option is provided.
    */
    parseOption(syntax: string, description?: string, required?: boolean, validators?: Argumental.Validator | RegExp | Array<RegExp | Argumental.Validator>, multi?: boolean, defaultValue?: string | boolean | number, immediate?: boolean): Argumental.OptionDeclaration;
    /**
    * Parses command-line arguments with options tailored for the given commands.
    * @param args The passed in arguments array (should be <code>process.argv.slice(2)</code>).
    * @param commands The final commands object.
    */
    parseCliArguments(args: string[], commands: {
        [command: string]: Argumental.CommandDeclaration;
    }): Argumental.ParsedArguments | Error;
}
