import { LDContext, LDEvaluationReason, LDLogger } from '@launchdarkly/js-sdk-common';
import { LDMigrationStage, LDMigrationTracker } from './api';
import { LDMigrationOp, LDMigrationOpEvent } from './api/data';
import { LDMigrationOrigin } from './api/LDMigration';
export default class MigrationOpTracker implements LDMigrationTracker {
    private readonly _flagKey;
    private readonly _context;
    private readonly _defaultStage;
    private readonly _stage;
    private readonly _reason;
    private readonly _checkRatio?;
    private readonly _variation?;
    private readonly _version?;
    private readonly _samplingRatio?;
    private readonly _logger?;
    private _errors;
    private _wasInvoked;
    private _consistencyCheck;
    private _latencyMeasurement;
    private _operation?;
    constructor(_flagKey: string, _context: LDContext, _defaultStage: LDMigrationStage, _stage: LDMigrationStage, _reason: LDEvaluationReason, _checkRatio?: number | undefined, _variation?: number | undefined, _version?: number | undefined, _samplingRatio?: number | undefined, _logger?: LDLogger | undefined);
    op(op: LDMigrationOp): void;
    error(origin: LDMigrationOrigin): void;
    consistency(check: () => boolean): void;
    latency(origin: LDMigrationOrigin, value: number): void;
    invoked(origin: LDMigrationOrigin): void;
    createEvent(): LDMigrationOpEvent | undefined;
    private _logTag;
    private _latencyConsistencyMessage;
    private _errorConsistencyMessage;
    private _consistencyCheckConsistencyMessage;
    private _checkOriginEventConsistency;
    /**
     * Check that the latency, error, consistency and invoked measurements are self-consistent.
     */
    private _measurementConsistencyCheck;
    private _populateInvoked;
    private _populateConsistency;
    private _populateErrors;
    private _populateLatency;
}
//# sourceMappingURL=MigrationOpTracker.d.ts.map