import type { Delegation } from '../types/passport.js';
import type { TaskRoleSpec } from '../types/coordination.js';
import type { FeasibilityResult } from '../types/feasibility.js';
/**
 * Lint a delegation for obvious problems BEFORE signing.
 * Call this at delegation-creation time to catch bad inputs early.
 */
export declare function lintDelegation(opts: {
    delegatedTo: string;
    delegatedBy: string;
    scope: string[];
    spendLimit?: number;
    maxDepth?: number;
    currentDepth?: number;
    expiresInHours?: number;
}): FeasibilityResult;
/**
 * Check if a delegation can feasibly complete a task role.
 * Call at task-assignment time to catch mismatches early.
 */
export declare function lintTaskFeasibility(opts: {
    delegation: Delegation;
    role: TaskRoleSpec;
    taskDeadline?: string;
}): FeasibilityResult;
export interface GatewayLintResult {
    severity: 'error' | 'warning';
    code: string;
    message: string;
}
export interface GatewayLintReport {
    delegation_id?: string;
    checks_run: number;
    checks_skipped: number;
    skipped_reasons: string[];
    errors: number;
    warnings: number;
    results: GatewayLintResult[];
}
/**
 * Lint a delegation against a task context using only checks
 * that the gateway can actually enforce.
 *
 * When context is not provided, checks that depend on it are skipped
 * and listed in skipped_reasons. An empty-context call returns a report
 * that says "N checks skipped" — not a false "clean" report.
 */
export declare function lintDelegationForGateway(delegation: Delegation, context?: {
    requiredScopes?: string[];
    estimatedSpend?: number;
}): GatewayLintReport;
//# sourceMappingURL=feasibility.d.ts.map