/** * Fully qualified name (FQN) parsing and formatting for 3-segment extension names. * * FQN format: `@owner/type-plural/name` (e.g., `@acme/skills/code-review`) * * @experimental This API is unstable and may change without notice. */ import * as Result from "effect/Result"; import { type AppError } from "../app-error/index.js"; import { type ExtensionFqnParts } from "./common.js"; declare const FqnInvalidError_base: new = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & { readonly _tag: "FqnInvalidError"; } & Readonly; /** * Failure produced when an FQN string does not match the canonical * `@owner/type-plural/name` shape. * * @experimental This API is unstable and may change without notice. */ export declare class FqnInvalidError extends FqnInvalidError_base<{ readonly input: string; }> { } /** * Parse a 3-segment FQN string into its parts. * * Pure synchronous validation — yield the Result in `Effect.gen` to bridge * failures into the surrounding error channel, or pattern-match on it directly * for synchronous callers. * * @experimental This API is unstable and may change without notice. */ export declare const parseFqn: (input: string) => Result.Result; /** * Translate a `FqnInvalidError` into a CLI-facing `AppError` with the canonical * format suggestion. Use at user-input boundaries (CLI handlers, publish * operations) where the parse failure is a user error. * * @experimental This API is unstable and may change without notice. */ export declare const fqnInvalidErrorToAppError: (error: FqnInvalidError) => AppError; /** * Parse a schema-validated FQN, throwing as a defect on failure. * * Use only at call sites where the input has already been validated against * an FQN schema (e.g., manifest dependency keys, lockfile resolved maps). * A failure here is an invariant violation, not a user error — inside * `Effect.gen`, the synchronous throw surfaces as `Cause.Die`. * * @experimental This API is unstable and may change without notice. */ export declare const parseFqnOrThrow: (input: string) => ExtensionFqnParts; /** * Format a parsed FQN back into a string. * * @experimental This API is unstable and may change without notice. */ export declare const formatFqn: (fqn: ExtensionFqnParts) => string; export {}; //# sourceMappingURL=fqn.d.ts.map