import type { VerifiableCredential, VerifiablePresentation } from '../types/did.js';
import type { ProviderAttestation } from '../types/attestation.js';
export interface PassportVCInput {
    agentId: string;
    publicKey: string;
    agentName?: string;
    mission?: string;
    capabilities?: string[];
    grade?: number;
    delegationScope?: string[];
    createdAt?: string;
    expiresAt?: string;
    /** SPIFFE or other infrastructure attestation to include as evidence */
    evidence?: ProviderAttestation[];
}
export interface VCVerifyResult {
    valid: boolean;
    checks: string[];
}
export interface VPVerifyResult {
    valid: boolean;
    credentials: VerifiableCredential[];
    checks: string[];
}
/**
 * Wrap an APS passport as a W3C Verifiable Credential using did:key
 * as the subject identifier.
 *
 * credentialSubject includes grade and delegationScope (the delegation
 * ceiling). If evidence (e.g., from importSPIFFESVID) is provided, it
 * is attached to the VC as W3C evidence, proving the identity claim
 * is backed by infrastructure attestation.
 */
export declare function passportToVerifiableCredential(passport: PassportVCInput, issuerPrivateKey: string): Promise<VerifiableCredential>;
/**
 * Verify a Verifiable Credential's Ed25519 proof.
 * Returns a checks array listing each verification step and its result.
 */
export declare function verifyVerifiableCredential(vc: VerifiableCredential): Promise<VCVerifyResult>;
/**
 * Wrap one or more VCs into a Verifiable Presentation for a verifier.
 * Uses did:key for the holder identifier.
 * Challenge and domain provide replay protection.
 */
export declare function createVerifiablePresentation(credentials: VerifiableCredential[], holderPrivateKey: string, options?: {
    challenge?: string;
    domain?: string;
}): Promise<VerifiablePresentation>;
/**
 * Verify a Verifiable Presentation: check the presentation proof,
 * then verify each contained credential.
 */
export declare function verifyVerifiablePresentation(vp: VerifiablePresentation): Promise<VPVerifyResult>;
//# sourceMappingURL=vc-wrapper.d.ts.map