import type { firestore } from 'firebase-admin';
import type { DefaultMigrator, MigrationPredicate, MigrationResult, SetDataGetter, SetOptions, SetPartialDataGetter, Traverser, UpdateDataGetter, UpdateFieldValueGetter } from '../../api';
import { AbstractMigrator, RegisteredCallbacks } from './abstract';
export declare class BasicDefaultMigratorImpl<D> extends AbstractMigrator<D> implements DefaultMigrator<D> {
    #private;
    readonly traverser: Traverser<D>;
    constructor(traverser: Traverser<D>, registeredCallbacks?: RegisteredCallbacks<D>, migrationPredicates?: MigrationPredicate<D>[]);
    withPredicate(predicate: MigrationPredicate<D>): DefaultMigrator<D>;
    withTraverser(traverser: Traverser<D>): DefaultMigrator<D>;
    set(data: firestore.PartialWithFieldValue<D>, options: SetOptions): Promise<MigrationResult>;
    set(data: firestore.WithFieldValue<D>): Promise<MigrationResult>;
    setWithDerivedData(getData: SetPartialDataGetter<D>, options: SetOptions): Promise<MigrationResult>;
    setWithDerivedData(getData: SetDataGetter<D>): Promise<MigrationResult>;
    update(data: firestore.UpdateData<D>, precondition?: firestore.Precondition): Promise<MigrationResult>;
    update(field: string | firestore.FieldPath, value: any, ...moreFieldsOrPrecondition: any[]): Promise<MigrationResult>;
    updateWithDerivedData(getData: UpdateDataGetter<D>, precondition?: firestore.Precondition): Promise<MigrationResult>;
    updateWithDerivedData(getData: UpdateFieldValueGetter<D>): Promise<MigrationResult>;
}
