/** Closed, host-agnostic failure categories accepted in public filings. */
export declare const UPSTREAM_FAILURE_CLASSES: readonly ["access-control-failure", "agent-parity-regression", "configuration-regression", "data-integrity-failure", "dependency-regression", "generated-artifact-regression", "installation-regression", "observability-gap", "pagination-truncation", "performance-regression", "public-data-exposure", "release-regression", "runtime-regression", "stale-artifact-overwrite", "test-coverage-gap", "validation-gap", "workflow-contract-violation"];
/** Fixed redaction tokens that can appear in public reproduction steps. */
export declare const UPSTREAM_REDACTED_PLACEHOLDERS: readonly ["<host-project>", "<env-value>", "<credential>", "<connection-string>", "<pii>", "<host-payload>", "<path>", "<identifier>"];
/** One generic category from the closed public-filing taxonomy. */
export type UpstreamFailureClass = (typeof UPSTREAM_FAILURE_CLASSES)[number];
/** One safe, fixed reproduction placeholder accepted by the public builder. */
export type UpstreamRedactedPlaceholder = (typeof UPSTREAM_REDACTED_PLACEHOLDERS)[number];
/** One excerpt that must exist verbatim in a hash-pinned Lisa package file. */
export interface UpstreamAttributionExcerpt {
    readonly file: string;
    readonly text: string;
}
interface CommonUpstreamAttributionInput {
    readonly lisaSurface: string;
    readonly failureClass: UpstreamFailureClass;
    readonly lisaOwnedExcerpts: readonly UpstreamAttributionExcerpt[];
    readonly upstreamCommitRefs: readonly string[];
    readonly redactedPlaceholders: readonly UpstreamRedactedPlaceholder[];
}
/** Typed issue event accepted by the public attribution builder. */
export interface UpstreamAttributionIssueInput extends CommonUpstreamAttributionInput {
    readonly documentKind: "issue";
}
/** Typed repeat-occurrence event accepted by the public attribution builder. */
export interface UpstreamAttributionOccurrenceInput extends CommonUpstreamAttributionInput {
    readonly documentKind: "occurrence";
    readonly occurrenceFingerprint: string;
}
/** Closed discriminated event accepted by the public attribution builder. */
export type UpstreamAttributionBodyInput = UpstreamAttributionIssueInput | UpstreamAttributionOccurrenceInput;
/** A field-named, value-sanitized public projection rejection. */
export declare class UpstreamAttributionRejection extends Error {
    readonly field: string;
    constructor(field: string, detail: string);
}
/**
 * Build one public issue body or repeat-occurrence comment from a closed event.
 * @param input - Untrusted event supplied by the host-project workflow
 * @returns Public Markdown safe to send verbatim to the upstream writer
 */
export declare function buildUpstreamAttributionIssueBody(input: UpstreamAttributionBodyInput): string;
export {};
//# sourceMappingURL=upstream-attribution-body.d.ts.map