import { Interceptor, InvocationContext, InvocationResult, Provider, ValueOrPromise } from '@loopback/core';
import { EntityName } from './../models/entity-name';
import { CurrentContext } from './../services/application.service';
export declare abstract class AbstractInterceptor implements Provider<Interceptor> {
    abstract value(): ValueOrPromise<Interceptor>;
    abstract intercept(invocationCtx: InvocationContext, next: () => ValueOrPromise<InvocationResult>): Promise<ValueOrPromise<InvocationResult>>;
    protected getUriParts(invocationCtx: InvocationContext, ctx: CurrentContext): Promise<{
        baseUri: string;
        path: string;
        objectUri: string;
        method: string;
        host: string;
        protocol: string;
        acceptLanguages: string[];
        acceptLanguage: string;
    }>;
    protected getEntityName(objectUri: string, baseUri: string): EntityName;
}
