import { Failure } from "./reporter/index.js"; import { Summary } from "./Summary.js"; import { Timer } from "./Timer.js"; export interface Claim { description: string; validate(context: T): Promise; skip(): ClaimResult; } export declare class SimpleClaim implements Claim { description: string; private execute; private timer; constructor(description: string, execute: (context: T) => void | Promise, timer: Timer); validate(context: T): Promise; skip(): ClaimResult; } export declare abstract class ComplexClaim implements Claim { description: string; private claims; constructor(description: string, claims: Array>); abstract evaluateSubsumedClaim(claim: Claim, context: T): Promise; validate(context: T): Promise; skip(): ClaimResult; } export interface ValidClaim { type: "valid-claim"; description: string; durationInMillis?: number; subsumedResults: Array; } export declare function validClaim(description: string): ValidClaim; export interface SkippedClaim { type: "skipped-claim"; description: string; durationInMillis?: number; subsumedResults: Array; } export declare function skippedClaim(description: string): SkippedClaim; export interface InvalidClaim { type: "invalid-claim"; description: string; durationInMillis?: number; error: Failure; subsumedResults: Array; } export declare function invalidClaim(description: string, failure: any): InvalidClaim; export type ClaimResult = ValidClaim | InvalidClaim | SkippedClaim; export declare function summarize(result: ClaimResult): Summary;