import { IOperatorConfig, IRunArgs, OccurrenceGenerator, OccurrenceGeneratorRunResult, Operator, OperatorFnOutput, } from '../occurrence-generator'; /** * An operator function, which takes a spread of occurrence generators and only * returns the dates which intersect every occurrence generator. * * Because it's possible for all the generators to never intersect, * and because the intersection operator can't detect this lack of intersection, * you must call `intersection()` with a `{maxFailedIterations: number}` argument. * For convenience, you can globally set `RScheduleConfig.defaultMaxFailedIterations`. * Without further information, I'd probably set `defaultMaxFailedIterations = 50`. * * The `maxFailedIterations` argument caps the number of iterations the operator will * run through without finding a single valid occurrence. If this number is reached, the operator will * stop iterating (preventing a possible infinite loop). * * - Note: `maxFailedIterations` caps the number of iterations which * *fail to turn up a single valid occurrence*. Every time a valid occurrence is returned, * the current iteration count is reset to 0. * */ export declare function intersection(args: { maxFailedIterations?: number; streams: OccurrenceGenerator[]; }): OperatorFnOutput; export declare class IntersectionOperator extends Operator { static defaultMaxFailedIterations: number | undefined; readonly maxFailedIterations?: number; constructor( args: { maxFailedIterations?: number; streams: OccurrenceGenerator[]; }, config: IOperatorConfig, ); set(_: 'timezone', value: string | null): IntersectionOperator; _run(args?: IRunArgs): OccurrenceGeneratorRunResult; protected calculateIsInfinite(): boolean; protected calculateHasDuration(): boolean; }