import type { Delegation } from '../../types/passport.js';
import type { CredentialCheckMode, CredentialCheckResult, AcceptanceStamp } from './types.js';
/**
 * Resolve the effective check mode for a delegation. Defaults to
 * 'on-process' when no policy is set — backward compatible with the
 * existing APS evaluation path.
 */
export declare function resolveCheckMode(delegation: Delegation): CredentialCheckMode;
/**
 * Run the full acceptance-time check pipeline on a delegation. Verifies
 * the signature and expiry. On success, returns an AcceptanceStamp the
 * verifying party can persist and present at process time.
 *
 * For policies of mode 'on-accept' or 'both', this stamp is required at
 * process time. For 'on-process', the stamp is ignored entirely.
 */
export declare function verifyOnAccept(opts: {
    delegation: Delegation;
    /** Identifier of the party performing the acceptance check (e.g. gateway id). */
    verifierId?: string;
    /** Override the stamp timestamp (test fixtures). Defaults to now. */
    verifiedAt?: string;
}): {
    valid: boolean;
    errors: string[];
    stamp?: AcceptanceStamp;
};
/**
 * Evaluate a credential against its check policy.
 *
 * Inputs:
 *   - delegation: the credential being evaluated
 *   - acceptanceStamp: the stamp produced by verifyOnAccept (if any)
 *   - liveStateValid: result of the caller's live revocation/state check.
 *     For mode 'on-accept' this is ignored. For 'on-process' it is
 *     authoritative. For 'both' it is required AND the acceptance stamp
 *     is also required.
 *
 * Returns a CredentialCheckResult that the caller uses to decide whether
 * to permit the action and whether further live checks are still needed.
 */
export declare function evaluateCredentialCheck(opts: {
    delegation: Delegation;
    acceptanceStamp?: AcceptanceStamp;
    liveStateValid: boolean;
    now?: Date;
}): CredentialCheckResult;
//# sourceMappingURL=check.d.ts.map