import type { KeyPair, SignedPassport } from '../types/passport.js'; import type { PrincipalIdentity, PrincipalEndorsement, PrincipalDisclosure, FleetRecord, FleetAgent, EndorsementVerification, DisclosureLevel } from '../types/principal.js'; /** * Create a new principal identity with its own Ed25519 keypair. * The principal is the human or org behind the agent. */ export declare function createPrincipalIdentity(options: { displayName: string; domain?: string; jurisdiction?: string; contactChannel?: string; disclosureLevel?: DisclosureLevel; metadata?: Record; }): { principal: PrincipalIdentity; keyPair: KeyPair; }; /** * Endorse an agent. The principal signs a commitment: * "This agent acts under my authority within this scope." * Creates a two-layer trust chain: principal → agent. */ export declare function endorseAgent(options: { principal: PrincipalIdentity; principalPrivateKey: string; agentId: string; agentPublicKey: string; scope: string[]; relationship: PrincipalEndorsement['relationship']; expiresInDays?: number; }): PrincipalEndorsement; /** * Verify an endorsement's cryptographic signature. */ export declare function verifyEndorsement(endorsement: PrincipalEndorsement): EndorsementVerification; /** * Revoke a principal's endorsement of an agent. * "I no longer authorize this agent." */ export declare function revokeEndorsement(endorsement: PrincipalEndorsement, reason: string): PrincipalEndorsement; /** * Create a selective disclosure of principal identity. * Controls how much information is revealed. * * - minimal: just a hash of principalId + proof (verifiable but anonymous) * - verified-only: principalId + publicKey + domain * - public: everything */ export declare function createDisclosure(principal: PrincipalIdentity, principalPrivateKey: string, level?: DisclosureLevel): PrincipalDisclosure; /** * Verify a selective disclosure's proof. * For minimal disclosures, you can verify the proof without knowing the identity. */ export declare function verifyDisclosure(disclosure: PrincipalDisclosure): { valid: boolean; level: DisclosureLevel; error?: string; }; /** * Create a fleet record for a principal. * A fleet tracks all agents endorsed by one principal. */ export declare function createFleet(principal: PrincipalIdentity): FleetRecord; /** * Add an endorsed agent to the fleet. */ export declare function addToFleet(fleet: FleetRecord, endorsement: PrincipalEndorsement): FleetRecord; /** * Get fleet status summary. */ export declare function getFleetStatus(fleet: FleetRecord): { principalId: string; totalAgents: number; activeAgents: number; revokedAgents: number; expiredAgents: number; agents: FleetAgent[]; }; /** * Revoke an agent from the fleet (updates status). */ export declare function revokeFromFleet(fleet: FleetRecord, agentId: string): FleetRecord; /** * Endorse a signed passport. The principal signs the agent's passport, * creating a verifiable chain: principal → agent. * Returns the endorsement + the passport with principal info in metadata. */ export declare function endorsePassport(options: { principal: PrincipalIdentity; principalPrivateKey: string; signedPassport: SignedPassport; scope: string[]; relationship: PrincipalEndorsement['relationship']; expiresInDays?: number; }): { endorsement: PrincipalEndorsement; endorsedPassport: SignedPassport; }; /** * Verify that a passport's principal endorsement is valid. * Checks the endorsement signature embedded in passport metadata. */ export declare function verifyPassportEndorsement(signedPassport: SignedPassport): EndorsementVerification; /** * Check if a passport has a principal endorsement. */ export declare function hasPrincipalEndorsement(signedPassport: SignedPassport): boolean; //# sourceMappingURL=principal.d.ts.map