import type { ArgType, ArgumentToName, Command, OptionMeta, SnakeToCamelCase } from "./types.ts";
export type ParseResult = {
    positionals: string[];
    values: Record<string, string | boolean | (string | boolean)[]>;
};
export declare const Arguments: {
    camelize: <S extends string>(str: S) => SnakeToCamelCase<S>;
    deriveInfo: <S extends `<${string}${string}>`>(usage: S) => ArgType & {
        name: ArgumentToName<S>;
    };
    deriveOptionInfo: (usage: string) => Pick<OptionMeta, "name" | "type" | "multi" | "mandatory" | "short">;
    parse: (command: Command<Record<string, unknown>>, args: string[]) => ParseResult;
    parseGlobalOptions: (args: string[]) => {
        wantsHelp: boolean;
        wantsVersion: boolean;
    };
};
