import { Arbitrary } from './definition/Arbitrary'; /** * For mutually recursive types * * @example * ```typescript * const { tree } = fc.letrec(tie => ({ * tree: fc.oneof(tie('node'), tie('leaf'), tie('leaf')), * node: fc.tuple(tie('tree'), tie('tree')), * leaf: fc.nat() * })); // tree is 1 / 3 of node, 2 / 3 of leaf * ``` * * @param builder - Arbitraries builder based on themselves (through `tie`) * * @public */ export declare function letrec(builder: (tie: (key: string) => Arbitrary) => { [K in keyof T]: Arbitrary; }): { [K in keyof T]: Arbitrary; };