/**
 * CLI Types - Type definitions for command-line interface
 */
/**
 * Output format modes supported by the CLI
 */
export declare const OutputMode: {
    /** Human-readable formatted output */
    readonly HUMAN: "human";
    /** Verbose output with extra details and stack traces for errors */
    readonly VERBOSE: "verbose";
    /** Machine-parseable JSON output */
    readonly JSON: "json";
    /** Minimal output, IDs only */
    readonly QUIET: "quiet";
};
export type OutputMode = (typeof OutputMode)[keyof typeof OutputMode];
/**
 * Global CLI options available to all commands
 */
export interface GlobalOptions {
    /** Database file path */
    db?: string;
    /** Actor name for operations */
    actor?: string;
    /** Private key for signing requests (base64-encoded PKCS8 format) */
    signKey?: string;
    /** Path to file containing private key for signing requests */
    signKeyFile?: string;
    /** Enable JSON output mode */
    json: boolean;
    /** Enable quiet mode (minimal output) */
    quiet: boolean;
    /** Enable verbose/debug output */
    verbose: boolean;
    /** Show help */
    help: boolean;
    /** Show version */
    version: boolean;
    /** Allow additional command-specific options */
    [key: string]: unknown;
}
/**
 * Default values for global options
 */
export declare const DEFAULT_GLOBAL_OPTIONS: GlobalOptions;
/**
 * Command handler function signature
 */
export type CommandHandler = (args: string[], options: GlobalOptions & Record<string, unknown>) => Promise<CommandResult> | CommandResult;
/**
 * Command definition
 */
export interface Command {
    /** Command name */
    name: string;
    /** Short description for help */
    description: string;
    /** Usage pattern */
    usage: string;
    /** Detailed help text */
    help?: string;
    /** Command handler */
    handler: CommandHandler;
    /** Subcommands */
    subcommands?: Record<string, Command>;
    /** Command-specific options */
    options?: CommandOption[];
}
/**
 * Command-specific option definition
 */
export interface CommandOption {
    /** Option name (long form) */
    name: string;
    /** Short form (single character) */
    short?: string;
    /** Description */
    description: string;
    /** Whether option requires a value */
    hasValue?: boolean;
    /** Whether option is required */
    required?: boolean;
    /** Default value */
    defaultValue?: unknown;
    /** Whether option can be repeated to accumulate multiple values into an array */
    array?: boolean;
}
/**
 * Result of command execution
 */
export interface CommandResult {
    /** Exit code */
    exitCode: number;
    /** Output data (for JSON mode) */
    data?: unknown;
    /** Human-readable output */
    message?: string;
    /** Error message */
    error?: string;
}
/**
 * Factory for successful command results
 */
export declare function success(data?: unknown, message?: string): CommandResult;
/**
 * Factory for error command results
 */
export declare function failure(error: string, exitCode?: number): CommandResult;
export declare const ExitCode: {
    /** Success */
    readonly SUCCESS: 0;
    /** General error */
    readonly GENERAL_ERROR: 1;
    /** Invalid arguments */
    readonly INVALID_ARGUMENTS: 2;
    /** Not found */
    readonly NOT_FOUND: 3;
    /** Validation error */
    readonly VALIDATION: 4;
    /** Permission error */
    readonly PERMISSION: 5;
};
export type ExitCode = (typeof ExitCode)[keyof typeof ExitCode];
/**
 * Result of parsing command line arguments
 */
export interface ParsedCommandLine {
    /** Command path (e.g., ['dep', 'add']) */
    command: string[];
    /** Positional arguments after command */
    args: string[];
    /** Global options */
    options: GlobalOptions;
    /** Command-specific options */
    commandOptions: Record<string, unknown>;
}
//# sourceMappingURL=types.d.ts.map