import { Service, ServiceQuery } from "./service";
import { ServiceContext } from "./service-context";
import { ServiceExecution } from "./service-execution";
export declare class ServiceDependent {
    constructor(name?: string, context?: ServiceContext, execution?: ServiceExecution);
    /** Require a service using `this` as the dependent. */
    protected require<S extends Service, QA extends any[]>(service: ServiceQuery<S, [], QA>): S;
    protected require<S extends Service, A extends any[], QA extends any[]>(service: ServiceQuery<S, A, QA>, ...arguments_: A): S;
    /** Forgo service that has previously been required using the `require` method. */
    protected forgo<S extends Service>(service: S): void;
    protected toString(): string;
}
