import { DateAdapter } from '../date-adapter'; import { DateTime } from '../date-time'; import { IOccurrenceGenerator, IRunnable } from '../interfaces'; import { DateInput } from '../utilities'; declare const OPERATOR_ID: unique symbol; export declare abstract class Operator implements IRunnable { readonly _streams: IOccurrenceGenerator[]; protected config: IOperatorConfig; static isOperator(object: unknown): object is Operator; readonly isInfinite: boolean; readonly hasDuration: boolean; readonly timezone: string | null; /** Returns the first occurrence or, if there are no occurrences, null. */ readonly firstDate: InstanceType | null; /** If generator is infinite, returns `null`. Otherwise returns the end date */ readonly lastDate: InstanceType | null; protected readonly [OPERATOR_ID] = true; constructor(_streams: IOccurrenceGenerator[], config: IOperatorConfig); abstract set(prop: 'timezone', value: string | null, options?: { keepLocalTime?: boolean; }): Operator; protected abstract calculateIsInfinite(): boolean; protected abstract calculateHasDuration(): boolean; protected normalizeDateInput(date: DateInput): DateTime; protected normalizeDateInput(date?: DateInput): undefined; protected normalizeRunOutput(date: DateTime): DateTime; } export declare type OperatorFn = () => OperatorFnOutput; export declare type OperatorFnOutput = (options: IOperatorConfig) => Operator; export interface IOperatorConfig { dateAdapter: T; timezone: string | null; base?: IRunnable; } export {}; //# sourceMappingURL=interface.d.ts.map