import { DateAdapter } from '../date-adapter';
import { IOccurrenceGenerator } from '../interfaces';
import { Operator, OperatorFnOutput } from './interface';
declare const SUBTRACT_OPERATOR_ID: unique symbol;
/**
 * An operator function which accepts a spread of occurrence generators
 * and removes their occurrences from the output.
 *
 * @param streams a spread of occurrence generators
 */
export declare function subtract<T extends typeof DateAdapter>(...streams: IOccurrenceGenerator<T>[]): OperatorFnOutput<T>;
export declare class SubtractOperator<T extends typeof DateAdapter> extends Operator<T> {
    static isSubtractOperator(object: unknown): object is SubtractOperator<any>;
    protected readonly [SUBTRACT_OPERATOR_ID] = true;
    /** Not actually used but necessary for IRunnable interface */
    set(_: 'timezone', value: string | null): SubtractOperator<T>;
    protected calculateIsInfinite(): boolean;
    protected calculateHasDuration(): boolean;
}
export {};
//# sourceMappingURL=subtract.operator.d.ts.map