import { AbstractOptionsContainer } from '../AbstractOptionsContainer';
/**
 * ReadOptions Decorator
 *
 * @param OptionsContainer
 * @param optionsKey
 * @constructor
 *
 * Decorated class need to accepting OptionsContainer as first argument
 *
 * Example:
 *
 * @ReadOptions(MyOptionsContainer, 'myKeyInPackageJson')
 * class Foo {
 *   constructor(optionsContainer: AbstractOptionsContainer, secondArg: number, thirdArg: string): {}
 * }
 */
export declare function ReadOptions<TOptionsContainer extends AbstractOptionsContainer>(OptionsContainer: {
    new (externalOptions: object): TOptionsContainer;
}, optionsKey: string): <T extends new (...args: any[]) => any>(DecoratedClass: T) => {
    new (...args: any[]): {
        [x: string]: any;
    };
} & T;
//# sourceMappingURL=ReadOptions.d.ts.map