import { BautaJSInstance, BautaJSOptions, Document, Logger, Operations, Validator } from './types'; /** * * @export * @class BautaJS * @implements {BautaJSBuilder} * @template TRaw Initial data sent to the operation.run method * @param {Document[]} apiDefinitions * @param {BautaJSOptions} [options={}] * @example * const BautaJS = require('@axa/bautajs-core'); * const apiDefinition = require('./open-api-definition.json'); * const static = { * someProp: 'someVal' * }; * * const bautaJS = new BautaJS({ * apiDefinition, * resolversPath: './resolvers/*-resolver.js', * staticConfig: static, * }); * * // Assuming we setup an operationId called 'find' we can run the following code: * await bautaJS.operations.find.run({}); */ export declare class BautaJS implements BautaJSInstance { readonly apiDefinition?: Document; operations: Operations; readonly staticConfig: any; readonly logger: Logger; readonly validator: Validator; private bootstrapped; constructor({ apiDefinition, staticConfig, logger, enableRequestValidation, enableResponseValidation, customValidationFormats, resolversPath, resolvers, validatorOptions }?: BautaJSOptions); bootstrap(): Promise; decorate(property: string | symbol, value: any, dependencies?: string[]): this; private registerOperations; /** * Require a bunch of files that matches the given [glob](https://github.com/isaacs/node-glob) path. * @static * @template T * @param {(string | string[])} folder * @param {boolean} [execute=true] * @param {T} [vars] * @returns * @memberof BautaJS * @example * const { requireAll } = require('@axa/bautajs-core'); * * const files = requireAll('./my/path/to/datasources/*.js', true, {someVar:123}); */ static requireAll(folder: string | string[], execute?: boolean, vars?: T): any; inheritOperationsFrom(bautajsInstance: BautaJSInstance): this; } export default BautaJS; //# sourceMappingURL=bauta.d.ts.map