import type { Command } from 'commander'; import { initCommand } from './init'; import { type CommercialOnboardOptions } from '../lib/commercial-layer'; export { findEnterpriseSkillsHubRoot, installOrchestrationCursorHooks } from '../lib/cursor-hooks'; export type { InstallCursorHooksResult } from '../lib/cursor-hooks'; export { resolveCommercialRoot, runCommercialPhase } from '../lib/commercial-layer'; export type { CommercialOnboardOptions } from '../lib/commercial-layer'; export interface OnboardOptions extends CommercialOnboardOptions { withInit?: boolean; tier?: string; skipOrchestrate?: boolean; installCursorHooks?: boolean; /** * Forwarded to `init`, and through it to the initiator wizard. * * This is the command BUYER_ONBOARDING actually names, so it is the one a CI * job or agent harness runs. Without the flag here, the only non-interactive * outcome on the documented path is the stub that invents a stack. */ briefFile?: string; /** * Injectable for tests, like `EvidenceBindOptions.git`. * * Not decoration: testing `resolveInitTier` and the flag registration in * isolation left the HAND-OFF untested, and re-adding `?? 'free'` at the call * site passed the whole suite. The regression this file exists to prevent * lives in what actually reaches initCommand, so that is what gets asserted. */ runInit?: (options: Parameters[0]) => Promise; } declare const TIERS: readonly ["free", "pro", "team", "enterprise"]; export type SkillTier = (typeof TIERS)[number]; /** * The tier to hand `initCommand`, or undefined to let it resolve the ACTIVE * licensed tier. * * Undefined is load-bearing. `initCommand` already does `options.tier ?? * activeTier`, so resolving the tier a second time here would be a second * source of truth for one decision — and the first version of that second * source is what shipped the defect: a `?? 'free'` that turned "the buyer said * nothing" into "the buyer asked for Community". * * The value is validated rather than cast. It used to arrive at initCommand * through `as 'free' | 'pro' | …`, so `--tier prro` passed a string the type * system had been told was a tier. */ export declare function resolveInitTier(raw: string | undefined): SkillTier | undefined; /** * Register `onboard` on a commander program. * * This lives beside the handler rather than in index.ts because the defect it * fixes was a disagreement between the two files: index.ts declared a `'free'` * default for `--tier`, which made the handler's own fallback unreachable and * silently downgraded every paying customer who followed the buyer doc. Keeping * the flag and the code that reads it in one place is what makes that * disagreement impossible, and lets a test drive the real registration instead * of a stand-in that cannot reproduce it. */ export declare function registerOnboardCommand(program: Command, handler?: (options: OnboardOptions) => Promise): void; export declare function onboardCommand(options: OnboardOptions): Promise; //# sourceMappingURL=onboard.d.ts.map