import type { Id, Opportunity, OpportunityActor, OpportunityGraphDatabase, OpportunityNetworkEligibility } from '../../shared/interfaces/database.interface.js'; /** Narrow final-boundary port for opportunity persistence admission and guarded reactivation. */ export type OpportunityPersistenceAdmissionPort = Pick; type EvaluatedPersistenceCandidate = { actors: Array<{ userId: Id<'users'>; networkId?: Id<'networks'> | null; }>; }; export interface OpportunityPersistenceAdmissionInput { ownerUserId: Id<'users'>; triggerIntentId?: Id<'intents'>; networkId?: Id<'networks'>; indexScope?: readonly Id<'networks'>[]; evaluatedOpportunities: readonly T[]; } export type OpportunityPersistenceAdmission = { kind: 'empty_scope'; } | { kind: 'admitted'; allowedNetworkIds: Id<'networks'>[]; networkEligibility: OpportunityNetworkEligibility; evaluatedOpportunities: T[]; }; /** * Recomputes the owner-side scope at the final write boundary and removes * evaluator outputs whose actor/network anchors are no longer active. */ export declare function admitOpportunityPersistence(database: OpportunityPersistenceAdmissionPort, input: OpportunityPersistenceAdmissionInput): Promise>; export interface EligibleStatusUpdateObserver { onUnavailableAdapter?: () => void; } /** * Produces the guarded status-update handler used when dedup reactivates an * existing row. Existing non-introducer actor anchors are rechecked in the * same adapter operation as the status transition. */ export declare function createEligibleOpportunityStatusUpdater(database: OpportunityPersistenceAdmissionPort, allowedNetworkIds: readonly Id<'networks'>[], networkEligibility: OpportunityNetworkEligibility, observer?: EligibleStatusUpdateObserver): (opportunityId: string, status: Opportunity['status'], existingActors: OpportunityActor[], expectedStatus: Opportunity['status']) => Promise; export {};