export type BackfillTargets = 'pg' | 'ch' | 'both';
export type BackfillReadSource = 'postgres' | 'clickhouse';
export type BackfillResumeCursor = {
    id: string;
    createdAt: string;
    updatedAt: string;
    latencyMs: number;
    testIdx: number;
};
export type BackfillCheckpoint = {
    resumeCursor?: BackfillResumeCursor | null;
    nextOffset?: number;
    readSource?: BackfillReadSource;
    pgAnalyticsInserted: number;
    pgComponentsInserted: number;
    chAnalyticsInserted: number;
    chComponentsInserted: number;
    skipped: number;
    errors: string[];
    scopeCreatedAfter?: string | null;
    scopeCreatedBefore?: string | null;
    scopeReason?: string;
    batchSize?: number;
    lastFailedAt?: string | null;
    lastError?: string | null;
};
export type BackfillEvalResultsDenormOptions = {
    batchSize?: number;
    maxBatches?: number;
    concurrency?: number;
    checkpointEveryBatches?: number;
    maxRetries?: number;
    retryInitialDelayMs?: number;
    retryMaxDelayMs?: number;
    retryBackoffMultiplier?: number;
    projectId?: string;
    applicationId?: string;
    targets?: BackfillTargets;
    readSource?: BackfillReadSource;
    dryRun?: boolean;
    /** Resume an existing row in `backfills`. */
    resume?: boolean;
    backfillId?: string;
    /** @deprecated Use `backfillId` + `backfills` table. JSON only if EVAL_BACKFILL_JSON_CHECKPOINT=1. */
    checkpointPath?: string;
    paritySample?: number;
    sinceDays?: number;
    allHistory?: boolean;
    createdAfter?: Date | string;
    createdBefore?: Date | string;
};
//# sourceMappingURL=evalDenormBackfillTypes.d.ts.map