import type { Flag, FlagArgument, KnownTypes, Program, ProgramParser, ProgramValues } from "./types.ts";
/**
 * A parser is composed of an array of flags
 */
export declare function parser<const flags extends readonly Flag<FlagArgument<KnownTypes>, string>[]>(...flags: flags): ProgramParser<flags>;
/**
 * Creates a help text for a given program parser
 */
export declare function help<const flags extends readonly Flag<FlagArgument<KnownTypes>, string>[]>(flagParser: ProgramParser<flags>): string;
/**
 * Reports all errors in a program, ignoring missing flags.
 */
export declare function allErrors<const flags extends readonly Flag<FlagArgument<KnownTypes>, string>[]>(program: Program<flags>): string[];
/**
 * Reports missing flags, ignoring the ones you don't care about.
 */
export declare function allMissing<const flags extends readonly Flag<FlagArgument<KnownTypes>, string>[]>(program: Program<flags>, ignore: string[]): string[];
/**
 * Gets the Ok values out of the program as the raw type (i.e a `string` from `string()`)
 */
export declare function allValues<const flags extends readonly Flag<FlagArgument<KnownTypes>, string>[]>(program: Program<flags>): ProgramValues<flags>;
/**
 * Runs a flag parser on the args
 */
export declare function parse<const flags extends readonly Flag<FlagArgument<KnownTypes>, string>[]>(flagParser: ProgramParser<flags>, args: string[]): Program<flags>;
export * from "./types.ts";
