import type { Surrogate, RequiredHandlerOptions, Contexts } from '../interfaces';
export declare class Context<T extends object> {
    target: T;
    receiver: Surrogate<T>;
    event: string;
    original: Function;
    originalArguments: any[];
    constructor(target: T, receiver: Surrogate<T>, event: string, original: Function, originalArguments: any[]);
    determineContext(options: RequiredHandlerOptions<T>): Contexts;
    useInstance(context: Contexts): boolean;
    useSurrogate(context: Contexts): boolean;
}
