/** * Minimal semver range check for the shapes @pikku/cli publishes in its own * peerDependencies (exact, ^, ~, >=/>/<=/< comparators, space-joined ANDs, * || unions). Returns null when the range is not understood so the caller * skips the check instead of false-blocking a build. No prerelease handling — * a prerelease compares as its base version. */ export declare function coreSatisfiesRange(version: string, range: string): boolean | null; /** * Fail the build when the installed @pikku/core cannot work with this CLI. * * Two distinct failure classes, checked in order: * * 1. SPLIT (PKU717): more than one @pikku/core version installed. Two module * instances means two separate pikkuState registries at runtime — wirings * (workflows, RPCs, queue workers, middleware) register into whichever copy * the wiring files import, while the runner may read the other, so they * silently fail to resolve (the classic symptom being `WorkflowNotFoundError` * for a workflow that is plainly registered). Distinct versions are the * reliable signal: package managers dedupe identical versions to one physical * copy, so >1 version guarantees a split. * * 2. SKEW (PKU718): exactly one @pikku/core, but its version violates the CLI's * own @pikku/core peer range. Some package managers (bun, yarn) install past * an unsatisfied peer range instead of failing, and the resulting pair breaks * codegen/runtime with cryptic missing-export errors. Fail here with the * exact versions instead. */ export declare function assertSingleCoreVersion(rootDir: string, logger: { warn: (message: string) => void; }): Promise;