import { RecallXrayFormat } from './recall-xray-renderer.js';
import { RecallDisclosure } from './types.js';
import './recall-xray.js';

/**
 * Input-validation helpers for the `remnic xray` CLI command (issue
 * #570, PR 3).
 *
 * Pulled out of `cli.ts` so the validation paths can be unit-tested in
 * isolation — the full CLI handler is hard to exercise without booting
 * an orchestrator.  CLAUDE.md rules 14 + 51 require that `--format`,
 * `--budget`, `--namespace`, and `--out` reject missing-value /
 * unknown / non-positive arguments with a listed-options error, rather
 * than silently defaulting.
 */

interface ParsedXrayCliOptions {
    format: RecallXrayFormat;
    /** Positive integer override, or undefined when not specified. */
    budget?: number;
    /** Trimmed namespace, or undefined when not specified. */
    namespace?: string;
    /** Trimmed, tilde-unexpanded output path, or undefined when stdout. */
    outPath?: string;
    /** Disclosure depth for X-ray telemetry, or undefined when not specified. */
    disclosure?: RecallDisclosure;
}
/**
 * Validate and coerce `--disclosure <level>`.  Must be one of the
 * canonical levels; throws a listed-options error otherwise.
 */
declare function parseXrayDisclosureFlag(value: unknown): RecallDisclosure | undefined;
/**
 * Validate and coerce `--budget <chars>`.  Must be a positive integer;
 * throws a listed-options error otherwise.
 */
declare function parseXrayBudgetFlag(value: unknown): number | undefined;
/**
 * Parse and validate the full option bag for `remnic xray`.  Extracted
 * so the CLI handler in `cli.ts` can stay thin and the validation can
 * be unit-tested without booting an orchestrator.
 */
declare function parseXrayCliOptions(rawQuery: unknown, options: Record<string, unknown>): {
    query: string;
} & ParsedXrayCliOptions;

export { type ParsedXrayCliOptions, parseXrayBudgetFlag, parseXrayCliOptions, parseXrayDisclosureFlag };
