/** A single need or offer with structured metadata */
export interface IntentItem {
    category: string;
    description: string;
    priority: 'high' | 'medium' | 'low';
    tags: string[];
    budget?: {
        amount: number;
        currency: string;
    };
    visibility: 'public' | 'on-match' | 'on-approval';
}
/** The core representation object — what an agent carries on behalf of a human */
export interface IntentCard {
    cardId: string;
    agentId: string;
    principalAlias: string;
    publicKey: string;
    needs: IntentItem[];
    offers: IntentItem[];
    openTo: string[];
    notOpenTo: string[];
    approvalRequired: string[];
    autonomy: 'discover-only' | 'propose-intros' | 'auto-intro';
    ttlSeconds: number;
    createdAt: string;
    expiresAt: string;
    signature: string;
}
/** A match between a need from one card and an offer from another */
export interface NeedOfferMatch {
    needFrom: string;
    need: IntentItem;
    offerFrom: string;
    offer: IntentItem;
    relevanceScore: number;
    matchType: 'exact' | 'adjacent' | 'partial';
    explanation: string;
}
/** Result of comparing two IntentCards */
export interface RelevanceMatch {
    matchId: string;
    cardA: string;
    cardB: string;
    agentA: string;
    agentB: string;
    score: number;
    needOfferMatches: NeedOfferMatch[];
    mutual: boolean;
    explanation: string;
    matchedAt: string;
}
/** Introduction request — one agent proposes connecting two humans */
export interface IntroRequest {
    introId: string;
    requestedBy: string;
    targetAgentId: string;
    matchId: string;
    message: string;
    fieldsToDisclose: string[];
    status: 'pending' | 'approved' | 'declined' | 'expired';
    createdAt: string;
    expiresAt: string;
    signature: string;
}
/** Response to an introduction request */
export interface IntroResponse {
    introId: string;
    respondedBy: string;
    verdict: 'approve' | 'decline';
    message?: string;
    disclosedFields?: Record<string, string>;
    respondedAt: string;
    signature: string;
}
/** Digest — "what's relevant to me right now" */
export interface Digest {
    digestId: string;
    agentId: string;
    matches: RelevanceMatch[];
    introsPending: IntroRequest[];
    introsReceived: IntroRequest[];
    summary: string;
    generatedAt: string;
}
/** In-memory network state */
export interface IntentNetwork {
    cards: Map<string, IntentCard>;
    matches: Map<string, RelevanceMatch>;
    intros: Map<string, IntroRequest>;
}
/** Search options */
export interface SearchOptions {
    maxResults?: number;
    minScore?: number;
    categories?: string[];
    excludeAgents?: string[];
}
//# sourceMappingURL=intent-network.d.ts.map