import type * as Option from "effect/Option"; import type { Layout } from "@packall/core"; /** * The shape the handler receives. * * Written out rather than inferred so that the helpers below have a stable, * readable contract instead of a conditional type nobody can hover. */ export type Config = { readonly specs: ReadonlyArray; readonly file: Option.Option; readonly prod: boolean; readonly lockfile: string; readonly out: string; readonly layout: Option.Option; /** Absent means "ask at the default"; present means "switch at this, silently". */ readonly layoutThreshold: Option.Option; readonly archiveName: Option.Option; readonly allVersions: boolean; readonly maxVersions: Option.Option; readonly includePrerelease: boolean; readonly optional: boolean; readonly peer: boolean; readonly platform: ReadonlyArray; readonly registry: Option.Option; readonly npmrc: Option.Option; readonly rewriteTarballHost: boolean; readonly timeout: number; readonly retries: number; readonly concurrency: number; readonly dryRun: boolean; readonly verify: boolean; readonly force: Option.Option; readonly forceSpec: ReadonlyArray; readonly printAbsolutePath: boolean; readonly json: boolean; readonly quiet: boolean; readonly interactive: boolean; readonly yes: boolean; };