import { type IContainer } from '../container/IContainer';
import { ProviderOptions } from '../provider/IProvider';
export declare abstract class InjectionToken<T = any> {
    abstract resolve(s: IContainer, options?: ProviderOptions): T;
    abstract args(...deps: unknown[]): InjectionToken<T>;
    abstract argsFn(getArgsFn: (s: IContainer) => unknown[]): InjectionToken<T>;
    abstract lazy(): InjectionToken<T>;
}
export declare function isInjectionToken(target: unknown): target is InjectionToken;
