import { ComputedFieldMetadata, SolidRegistry } from "../helpers/solid-registry";
import { PublisherFactory } from "../services/queues/publisher-factory.service";
import { DataSource, EntitySubscriberInterface, InsertEvent, RemoveEvent, UpdateEvent } from "typeorm";
export interface ComputedFieldEvaluationPayload extends ComputedFieldMetadata {
    databaseEntity: any;
}
export declare class ComputedEntityFieldSubscriber implements EntitySubscriberInterface {
    private readonly solidRegistry;
    private readonly publisherFactory;
    private readonly logger;
    private dataSource;
    constructor(solidRegistry: SolidRegistry, publisherFactory: PublisherFactory<ComputedFieldEvaluationPayload>);
    bindToDataSource(dataSource: DataSource): void;
    beforeInsert(event: InsertEvent<any>): Promise<any>;
    beforeUpdate(event: UpdateEvent<any>): Promise<any>;
    afterInsert(event: InsertEvent<any>): void;
    afterUpdate(event: UpdateEvent<any>): void;
    afterRemove(event: RemoveEvent<any>): void;
    private handleComputedFieldEvaluation;
    private handleComputedFieldEvaluationJob;
    private getComputedFieldsForEvaluation;
    private evaluateComputedField;
    private shouldSkipPreComputeOnInsert;
    private preComputeValue;
    private enqueueComputedFieldEvaluationJob;
    private attachContext;
    private sanitizeEventContext;
}
//# sourceMappingURL=computed-entity-field.subscriber.d.ts.map