import type { firestore } from 'firebase-admin';
import type { BatchCallback, ExitEarlyPredicate, Traversable, TraversalConfig, TraversalResult, Traverser } from '../../api';
import { AbstractTraverser } from './abstract';
export declare class TraverserImpl<AppModelType = firestore.DocumentData, DbModelType extends firestore.DocumentData = firestore.DocumentData> extends AbstractTraverser<AppModelType, DbModelType> implements Traverser<AppModelType, DbModelType> {
    #private;
    readonly traversable: Traversable<AppModelType, DbModelType>;
    constructor(traversable: Traversable<AppModelType, DbModelType>, exitEarlyPredicates?: ExitEarlyPredicate<AppModelType, DbModelType>[], config?: Partial<TraversalConfig>);
    withConfig(config: Partial<TraversalConfig>): Traverser<AppModelType, DbModelType>;
    withExitEarlyPredicate(predicate: ExitEarlyPredicate<AppModelType, DbModelType>): Traverser<AppModelType, DbModelType>;
    traverse(callback: BatchCallback<AppModelType, DbModelType>): Promise<TraversalResult>;
}
