import { InvocationContext, InvocationResult, ValueOrPromise } from '@loopback/context';
import { UriCompleteService } from '../services/uri-complete/uri-complete.service';
import { CurrentContext } from './../services/application.service';
import { AbstractInterceptor } from './abstract.interceptor';
/**
 * This class will be bound to the application as an `Interceptor` during
 * `boot`
 */
export declare class UriCompleteInterceptor extends AbstractInterceptor {
    private uriCompleteService;
    ctx: CurrentContext;
    static readonly BINDING_KEY: string;
    constructor(uriCompleteService: UriCompleteService, ctx: CurrentContext);
    /**
     * This method is used by LoopBack context to produce an interceptor function
     * for the binding.
     *
     * @returns An interceptor function
     */
    value(): (invocationCtx: InvocationContext, next: () => any) => Promise<any>;
    /**
     * The logic to intercept an invocation
     * @param invocationCtx - Invocation context
     * @param next - A function to invoke next interceptor or the target method
     */
    intercept(invocationCtx: InvocationContext, next: () => ValueOrPromise<InvocationResult>): Promise<ValueOrPromise<InvocationResult>>;
}
