import type { IContainer } from '../container/IContainer';
import type { IProvider, ProviderResolveOptions } from './IProvider';
import { ProviderDecorator } from './IProvider';
export type DecorateFn<Instance = any> = (dep: Instance, scope: IContainer) => Instance;
export declare class DecoratorProvider<Instance> extends ProviderDecorator<Instance> {
    private provider;
    private decorateFn;
    constructor(provider: IProvider<Instance>, decorateFn: DecorateFn<Instance>);
    resolve(scope: IContainer, options: ProviderResolveOptions): Instance;
}
export declare const decorate: (decorateFn: DecorateFn) => import("./ProviderPipe").ProviderPipe<unknown>;
