/** The declared-input kinds the IFC model recognises (nucleus-ifc DeclaredInput). */ export type DeclaredInputToken = "user_prompt" | "web_content" | "tool_response" | "file_read" | "env_var" | "secret" | "database_row" | "memory_read" | "http_response"; /** A recomputable IFC verdict (the serialized `nucleus_ifc::decision::IfcVerdict`). */ export interface IfcVerdict { allow: boolean; reason: string; declared_inputs: string[]; } /** * Recompute the proven IFC decision for an action: given the declared inputs * reaching a sink and the sink's nature, is the flow safe? `requiresAuthority` = * the action needs directive authority (so adversarial / no-authority inputs are * refused — the prompt-injection guard); `sinkPublic` = the sink is publicly * visible (so secret inputs are refused). Returns the same `IfcVerdict` nucleus's * production gate returns — you trust the proven model, not this package. */ export declare function ifcDecide(inputs: DeclaredInputToken[], opts?: { requiresAuthority?: boolean; sinkPublic?: boolean; }): IfcVerdict;