/**
 * AgentPassport — the EXO 3.0 "digital passport" (Salim Ismail, "The 80-Year
 * Business Rule AI Just Broke"): "every AI agent gets a digital passport with
 * metadata saying what it's allowed to do and what it's not allowed to do, and
 * other AI agents watching that it's complying."
 *
 * Instar already has the primitives — agent identity (name + routing
 * fingerprint), a trust level, and ORG-INTENT constraints (forbidden actions).
 * This module PACKAGES them into one explicit, portable passport object plus a
 * deterministic `permits()` check, so a peer agent can read a passport and
 * decide whether to trust a proposed action BEFORE it happens. Deterministic +
 * advisory; the caller decides what to do with the verdict.
 */
export type TrustLevel = 'untrusted' | 'supervised' | 'collaborative' | 'autonomous';
export interface PassportInput {
    agent: string;
    fingerprint: string;
    trustLevel?: TrustLevel;
    /** Capabilities this agent is scoped to (empty = unrestricted by capability). */
    allowedCapabilities?: string[];
    /** Actions this agent must never do (e.g. ORG-INTENT constraints). */
    forbiddenActions?: string[];
    /** ISO timestamp the passport was issued (caller-supplied to stay pure). */
    issuedAt: string;
}
export interface AgentPassport {
    version: 1;
    agent: string;
    fingerprint: string;
    trustLevel: TrustLevel;
    allowedCapabilities: string[];
    forbiddenActions: string[];
    issuedAt: string;
}
export interface PermitVerdict {
    permitted: boolean;
    /** 'forbidden-action' | 'out-of-scope' | 'trust-floor' | 'ok' */
    basis: 'forbidden-action' | 'out-of-scope' | 'trust-floor' | 'ok';
    reason: string;
    /** The forbidden action that matched, if any. */
    matched?: string;
}
export declare function buildPassport(input: PassportInput): AgentPassport;
/**
 * The compliance check a peer runs against a passport before trusting an action.
 * Order: forbidden-action (hard no) → trust-floor (untrusted can't act) →
 * capability-scope (if scoped, the action must be in scope) → ok.
 */
export declare function permits(passport: AgentPassport, action: string): PermitVerdict;
//# sourceMappingURL=AgentPassport.d.ts.map