import { IChange, IFact, Severity } from '@useoptic/openapi-utilities'; import { RegisterAssertion, RegisterChangedAssertion, Assertions, AssertionType, AssertionTypeToValue, AssertionTypeToHelpers } from '../types'; type AssertionLifecycle = 'requirement' | 'added' | 'changed' | 'removed'; export type AssertionResult = { passed: true; severity: Severity; exempted?: boolean; changeOrFact: IChange | IFact; condition?: string; type: AssertionLifecycle; error?: undefined; received?: undefined; expected?: undefined; } | { passed: false; severity: Severity; exempted?: boolean; changeOrFact: IChange | IFact; condition?: string; type: AssertionLifecycle; error: string; received?: string; expected?: string; }; declare class AssertionRunner implements Assertions { private type; private requirementAssertions; private addedAssertions; private changedAssertions; private removedAssertions; private severity; constructor(type: T, severity?: Severity); private createAssertionHelpers; private createAssertion; private createChangedAssertion; get requirement(): RegisterAssertion & AssertionTypeToHelpers[T]; get added(): RegisterAssertion & AssertionTypeToHelpers[T]; get changed(): RegisterChangedAssertion & AssertionTypeToHelpers[T]; get removed(): RegisterAssertion & AssertionTypeToHelpers[T]; get addedOrChanged(): RegisterAssertion & AssertionTypeToHelpers[T]; runBefore(before: AssertionTypeToValue[T], change: IChange | null, exempted: boolean): AssertionResult[]; runAfter(before: AssertionTypeToValue[T] | null, after: AssertionTypeToValue[T], change: IChange | null, exempted: boolean): AssertionResult[]; } type OperationAssertionsRunner = AssertionRunner<'operation'> & { queryParameter: AssertionRunner<'query-parameter'>; headerParameter: AssertionRunner<'header-parameter'>; pathParameter: AssertionRunner<'path-parameter'>; cookieParameter: AssertionRunner<'cookie-parameter'>; }; type RequestAssertionsRunner = { body: AssertionRunner<'request-body'>; property: AssertionRunner<'property'>; schema: AssertionRunner<'schema'>; }; type ResponseAssertionsRunner = AssertionRunner<'response'> & { header: AssertionRunner<'response-header'>; }; type ResponseBodyAssertionsRunner = { body: AssertionRunner<'response-body'>; property: AssertionRunner<'property'>; schema: AssertionRunner<'schema'>; }; export declare const createSpecificationAssertions: (severity: Severity | undefined) => AssertionRunner<'specification'>; export declare const createOperationAssertions: (severity: Severity | undefined) => OperationAssertionsRunner; export declare const createRequestAssertions: (severity: Severity | undefined) => RequestAssertionsRunner; export declare const createResponseAssertions: (severity: Severity | undefined) => ResponseAssertionsRunner; export declare const createResponseBodyAssertions: (severity: Severity | undefined) => ResponseBodyAssertionsRunner; export declare const createPropertyAssertions: (severity: Severity | undefined) => AssertionRunner<'property'>; export {}; //# sourceMappingURL=assertions.d.ts.map