import { CollectionIterator, ICollectionsArgs, IOccurrencesArgs, IRunArgs, OccurrenceGenerator, OccurrenceGeneratorRunResult, OccurrenceIterator, } from './occurrence-generator'; export interface ICalendarArgs { schedules?: ReadonlyArray | OccurrenceGenerator; data?: D; timezone?: string | null; maxDuration?: number; } export declare class Calendar extends OccurrenceGenerator { readonly schedules: ReadonlyArray; /** * Convenience property for holding arbitrary data. Accessible on individual DateAdapters * generated by this `Calendar` object via the `DateAdapter#generators` property. Unlike * the rest of the `Calendar` object, the data property is mutable. */ data: Data; readonly isInfinite: boolean; readonly hasDuration: boolean; /** * * Create a new Calendar object with the specified options. * * ### Options * * - **timezone**: The timezone that yielded occurrences should be *displayed* in. * Note, this one affects the *displayed* timezone of yielded occurrences. * For rules, occurrences are first found using the unmodified rule * config (including whatever timezone the `start` datetime is defined * in), and then converted to the timezone specified here before being * yielded. By default, the timezone is *local* time (`null`). So if you don't * want your rules to be displayed in local time, you must supply a * timezone argument. * - **data**: arbitrary data you can associate with this Calendar. This * is the only mutable property of `Calendar` objects. * - **maxDuration**: currently unused. * - **schedules**: either an occurrence generator, or an array of occurrence generators, which should * be used to build up this Calendar's occurrences. The Calendar will display the union of occurrences * its schedules produce. * */ constructor(args?: ICalendarArgs); occurrences( args?: IOccurrencesArgs, ): OccurrenceIterator<[this, ...OccurrenceGenerator[]]>; collections( args?: ICollectionsArgs, ): CollectionIterator<[this, ...OccurrenceGenerator[]]>; set( prop: 'timezone', value: string | null, options?: { keepLocalTime?: boolean; }, ): Calendar; set( prop: 'schedules', value: ReadonlyArray | OccurrenceGenerator, ): Calendar; _run(args?: IRunArgs): OccurrenceGeneratorRunResult; }