export interface FlagDef { name: string; type: 'boolean' | 'string' | 'string[]'; description: string; placeholder?: string; negation?: boolean; } export type ParsedFlags = Record; type FlagTypeMap = { boolean: boolean | undefined; string: string | undefined; 'string[]': string[] | undefined; }; export type InferFlags = { [K in T[number] as K['name']]: FlagTypeMap[K['type']]; }; export declare function defineFlags(defs: T): T; export declare function typedFlags(flags: ParsedFlags, _defs: T): InferFlags; export declare class UnknownFlagError extends Error { readonly flag: string; constructor(flag: string); } export declare class MissingFlagValueError extends Error { readonly flag: string; constructor(flag: string); } export interface FlagMappingEntry { key: string; coerce?: (value: string) => unknown; } export type FlagMapping = Record; export declare function mapFlags(flags: ParsedFlags, mapping: FlagMapping): Record; /** Minimal interface compatible with Zod's safeParse — avoids a zod dependency in core. */ export interface SafeParseable { safeParse(data: unknown): { success: true; data: T; } | { success: false; error: { issues: Array<{ path: PropertyKey[]; message: string; }>; }; }; } /** * Layer plugin-factory options under parsed data so registration-time defaults * apply wherever the schema is evaluated (command dispatch, hooks). */ export declare function withFactoryDefaults(schema: SafeParseable, defaults: Record): SafeParseable; /** * Two-layer option resolution: registration options → CLI flags. * Merges sources, validates through a schema, and throws ErrorClass on failure. */ export declare function resolveOptions(schema: SafeParseable, options: Record, flags: ParsedFlags, flagMapping: FlagMapping, ErrorClass?: new (message: string) => Error): T; export declare function parseFlags(argv: string[], flagDefs: T): InferFlags; export {}; //# sourceMappingURL=flags.d.ts.map