/**
* Publish ignore resolution.
*
* A manifest may declare `publish.ignore` to keep development-only files out of
* the archive. AXM also excludes its reserved canonical completion marker so
* installed packages can be republished without leaking workspace metadata.
*
* Some paths can never be ignored. Dropping the manifest would produce an
* archive the registry cannot identify, and the failure would surface as a
* confusing "manifest missing" error far from the pattern that caused it. This
* module rejects such a pattern at its source instead.
*
* @experimental This API is unstable and may change without notice.
*/
import * as Effect from "effect/Effect";
import * as Result from "effect/Result";
import { type AppError } from "../app-error/index.js";
import type { ExtensionType } from "../extensions/common.js";
import type { BuildZipArchiveOptions } from "../utils/build-zip-archive.js";
declare const PublishIgnoreError_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: "PublishIgnoreError";
} & Readonly;
/** @experimental This API is unstable and may change without notice. */
export declare class PublishIgnoreError extends PublishIgnoreError_base<{
readonly detail: string;
readonly pattern: string;
readonly path: string;
}> {
}
/**
* Archive-relative paths a publish ignore list may never remove.
*
* Only the manifest is protected here. Required body files (a skill's
* `SKILL.md`, a hook's entrypoint, a knowledge bundle's root index) are
* enforced by filtered-package validation on the built archive, which reports
* the missing file by name at both the client and Registry ingestion boundary.
*/
export declare const protectedPublishPaths: (type: ExtensionType) => ReadonlyArray;
/**
* Effective ignore patterns for a publish, or the first pattern that would drop
* a protected path.
*/
export declare const resolvePublishIgnore: (type: ExtensionType, declared: ReadonlyArray | undefined) => Result.Result, PublishIgnoreError>;
/**
* Archive options for one publish, as an Effect the per-type publish operations
* can yield directly.
*/
export declare const publishArchiveOptions: (type: ExtensionType, declared: ReadonlyArray | undefined) => Effect.Effect;
export {};
//# sourceMappingURL=publish-ignore.d.ts.map