import type { Direction } from '../../../ports/NeighborProviderPort.ts';
import CheckpointTailWitnessLocator from './CheckpointTailWitnessLocator.ts';
import Optic from './Optic.ts';
import { type TraversalOpticStrategy, TraversalOpticCursor } from './TraversalOpticReadResult.ts';
type TraversalOpticReadPromise = ReturnType<CheckpointTailWitnessLocator['readTraversal']>;
export type TraversalOpticReadOptions = {
    readonly strategy?: TraversalOpticStrategy;
    readonly direction?: Direction;
    readonly labels?: readonly string[];
    readonly maxDepth?: number;
    readonly maxNodes?: number;
    readonly maxEdges?: number;
    readonly goalNodeId?: string;
    readonly cursor?: TraversalOpticCursor;
};
export default class TraversalOptic {
    private readonly _optic;
    private readonly _locator;
    constructor(options: {
        readonly optic: Optic;
        readonly locator: CheckpointTailWitnessLocator;
    });
    toOptic(options?: TraversalOpticReadOptions): Optic;
    read(options?: TraversalOpticReadOptions): TraversalOpticReadPromise;
}
export { TraversalOpticCursor };
