import { Type } from '@angular/core';
import { Operator } from '../models/operator/operator';
import { Operators } from '../models/operator/operators';
import { OperatorResolverService } from './operator-resolver.service';
import * as i0 from "@angular/core";
/**
 * Stores, provides and creates {@link Operator} implementations to be used in the project as singleton objects.
 * Passes reference to itself to all Operators it creates, so they can use it if they want to.
 */
export declare class OperatorService {
    protected _operatorResolver: OperatorResolverService;
    private _operators;
    constructor(_operatorResolver: OperatorResolverService);
    getOperator(operatorClass: Type<Operator<any>>): Operator<any>;
    getFromMetadata(metadata: Operators | string): Operator<any>;
    private createOperatorIfNotInMap;
    static ɵfac: i0.ɵɵFactoryDeclaration<OperatorService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<OperatorService>;
}
