import { Constructable } from '../../types';
import { Graph } from '../Graph';
import { ResolveChain } from './ResolveChain';
export declare abstract class Middleware<T = Graph, RC = ResolveChain<T>> {
    private next;
    setNext(next: Middleware<T, ResolveChain<T>>): void;
    get resolveChain(): ResolveChain<T>;
    abstract resolve<Props = any>(resolveChain: RC, Graph: Constructable<T>, props?: Props): T;
}
//# sourceMappingURL=Middleware.d.ts.map