import { Command } from 'commander';
export type DoctorVideoMode = {
    mode: 'audio';
} | {
    mode: 'text';
};
/**
 * Decide audio-driven vs text-driven for `gen doctor video` from CLI options,
 * enforcing the 二选一 contract (spec §4.2). Throws on invalid combos so the
 * action surfaces a clean validation error before any upload/submit.
 */
export declare function selectDoctorVideoMode(opts: {
    voice?: string;
    text?: string;
    audio?: string;
}): DoctorVideoMode;
/**
 * `gen doctor` namespace — historical naming (Phase 2 POC originated for medical
 * scenarios). Functionally identical to `gen avatar *` and kept as a
 * backward-compatible alias.
 *
 * Subcommands (registered via registerDoctorSubcommands, also reused under
 * `gen avatar` in avatar.ts):
 *   onboard <audio> <video> --external-id <id>
 *   video --avatar <id> --voice <id> --text <...>
 *   profile <external-id>
 *
 * All user-facing help text refers to `gen avatar *` (recommended name),
 * not `gen doctor *`. `--help` under either namespace guides users toward
 * the unified command set.
 */
export declare function registerDoctorCommand(program: Command): void;
export declare function registerDoctorSubcommands(parent: Command): void;
//# sourceMappingURL=doctor.d.ts.map