export declare enum ConfLevel { Public = 0, Internal = 1, Secret = 2 } export declare enum IntegLevel { Adversarial = 0, Untrusted = 1, Trusted = 2 } export declare enum AuthorityLevel { NoAuthority = 0, Informational = 1, Suggestive = 2, Directive = 3 } export interface IFCLabel { conf: ConfLevel; integ: IntegLevel; authority: AuthorityLevel; } /** Least-restrictive label (public, trusted, directive) — the join identity. */ export declare const BOTTOM: IFCLabel; /** Lattice join (⊔): how labels combine as data flows together. Confidentiality * rises (max), integrity and authority fall to the least-trusted input (min) — * taint cannot be laundered by mixing in trusted data. */ export declare function join(a: IFCLabel, b: IFCLabel): IFCLabel; /** * Can data labelled `a` flow to a sink that admits up to `sink` (a ⊑ sink)? * The sink encodes: the MAX confidentiality it may receive, and the MIN * integrity/authority it requires. A flow is allowed iff confidentiality is not * too high, integrity is at least required, and authority is at least required. */ export declare function flowsTo(a: IFCLabel, sink: IFCLabel): boolean; /** Web/scraped content: public, ADVERSARIAL integrity, NO authority to instruct. */ export declare const WEB_CONTENT: IFCLabel; /** A read secret (API key, PII): SECRET confidentiality. */ export declare const SECRET_READ: IFCLabel; /** A user prompt: trusted + directive (it MAY steer the agent). */ export declare const USER_PROMPT: IFCLabel; /** A PUBLIC external sink (egress): admits only Public conf; demands no trust. */ export declare const PUBLIC_EGRESS: IFCLabel; /** An ACTION sink that fires only on trusted, directive-authority data — the * prompt-injection guard: adversarial / no-authority data can't drive it. */ export declare const TRUSTED_ACTION: IFCLabel; /** * Check the lattice laws this port relies on (the ones Lean-proven in nucleus): * idempotent / commutative / associative join, taint-absorption on each axis, * and the bounds. Returns the first violation, or null when all hold — so a test * can assert parity with the proven model instead of trusting the port. */ export declare function ifcLatticeLaws(): string | null;