import type { Delegation } from '../types/passport.js';
import type { TaskRequest, TaskRequestPriority, CapabilityAdvertisement, AgentEnvironment, ClaimResponse, TaskDecline, RoutingDecision, RouterConfig, MatchWeights, CandidateScore, RoutingResult, CapabilityString } from '../types/routing.js';
export declare const DEFAULT_MATCH_WEIGHTS: MatchWeights;
export declare const DEFAULT_PRIORITY_BOOSTS: Record<TaskRequestPriority, number>;
export declare const DEFAULT_ROUTER_CONFIG: RouterConfig;
export declare function capabilityMatches(advertised: string, required: string): boolean;
export declare function capabilityCoverage(advertised: CapabilityString[], required: CapabilityString[]): {
    matched: CapabilityString[];
    missing: CapabilityString[];
};
export declare function checkDelegationScope(requiredCapabilities: CapabilityString[], delegationScope: string[]): {
    valid: boolean;
    violations: string[];
};
export declare function isAdvertisementFresh(ad: CapabilityAdvertisement, now?: Date): boolean;
export declare function createTaskRequest(opts: {
    requesterId: string;
    title: string;
    description: string;
    requiredCapabilities: CapabilityString[];
    estimatedTokens?: number;
    deadline?: string;
    priority?: TaskRequestPriority;
    claimWindowMs?: number;
    publicKey: string;
    privateKey: string;
}): TaskRequest;
export declare function verifyTaskRequest(request: TaskRequest): boolean;
export declare function advertiseCapabilities(opts: {
    agentId: string;
    capabilities: CapabilityString[];
    availability?: boolean;
    maxTokenBudget?: number;
    currentLoad?: number;
    advertisementTTL?: number;
    environment?: AgentEnvironment;
    publicKey: string;
    privateKey: string;
}): CapabilityAdvertisement;
export declare function verifyAdvertisement(ad: CapabilityAdvertisement): boolean;
export declare function claimTask(opts: {
    taskRequestId: string;
    claimantId: string;
    proposedApproach: string;
    estimatedCompletion?: string;
    capabilitiesMatched: CapabilityString[];
    publicKey: string;
    privateKey: string;
}): ClaimResponse;
export declare function verifyClaim(claim: ClaimResponse): boolean;
export declare function declineTask(opts: {
    taskRequestId: string;
    declinerId: string;
    reason: string;
    suggestedAlternative?: string;
    publicKey: string;
    privateKey: string;
}): TaskDecline;
export declare function verifyDecline(decline: TaskDecline): boolean;
export declare function scoreCandidate(request: TaskRequest, ad: CapabilityAdvertisement, delegation: Delegation | null, reputationScore?: number, config?: Partial<RouterConfig>, now?: Date): CandidateScore;
export declare function routeTask(opts: {
    request: TaskRequest;
    claims: ClaimResponse[];
    advertisements: CapabilityAdvertisement[];
    delegations: Map<string, Delegation>;
    reputationScores?: Map<string, number>;
    config?: Partial<RouterConfig>;
    routerPublicKey: string;
    routerPrivateKey: string;
    now?: Date;
}): RoutingResult;
export declare function verifyRoutingDecision(decision: RoutingDecision): boolean;
//# sourceMappingURL=routing.d.ts.map