import type { CLIConfig, EnumOptionSchema, FlagOptionSchema, NumberOptionSchema, OptionRecord, StringOptionSchema } from "./types"; /** * Create a boolean flag option schema. * * Example: `verbose: flag({ alias: 'v' })` */ export declare const flag: (cfg?: Partial) => FlagOptionSchema; /** Create a string option schema. */ export declare const string: (cfg?: Partial) => StringOptionSchema; /** Create a numeric option schema. */ export declare const number: (cfg?: Partial) => NumberOptionSchema; /** Create an enum option schema. `choices` is required. */ export declare const enumOption: (cfg: Partial & { choices: readonly string[]; }) => EnumOptionSchema; /** * Normalize an OptionRecord so each `alias` is represented as an array when * present. This simplifies downstream consumers that iterate alias lists. */ export declare function normalizeOptionRecord(rec: OptionRecord): OptionRecord; /** * Define a `CLIConfig` with full type-safety in authoring time. * * Wrap your exported configuration with this helper to get rich IntelliSense * and immediate type errors in your editor: * * ```ts * import { defineConfig } from "clibu" * export default defineConfig({ * name: "mycli", * commands: {} * }) * ``` * * Notes: * - This function is a no - op at runtime it returns the object unchanged. * - Alternatively, on TS 4.9 + you can use the`satisfies` operator: * ` export default { ... } satisfies CLIConfig ` */ export declare function defineConfig(cfg: T): T;