import type { ZSpec } from "../Spec/index.js"; export declare const TestAspectTypeId: unique symbol; export declare type TestAspectTypeId = typeof TestAspectTypeId; export declare type ZSpecLB = ZSpec & [LowerR] extends [R] ? ZSpec : ZSpec; /** * A `TestAspect` is an aspect that can be weaved into specs. You can think of * an aspect as a polymorphic function, capable of transforming one test into * another, possibly enlarging the environment or error type. */ export interface TestAspect extends TestAspectBase { (spec: ZSpecLB): ZSpec; } export interface TestAspectBase { readonly [TestAspectTypeId]: TestAspectTypeId; readonly some: (predicate: (s: string) => boolean) => (spec: ZSpecLB) => ZSpec; } /** * Creates a test aspect by specify the some function */ export declare function aspect(some: (predicate: (s: string) => boolean) => (spec: ZSpecLB) => ZSpec): TestAspect; /** * An aspect that returns the tests unchanged */ export declare const identity: TestAspect; //# sourceMappingURL=index.d.ts.map