import { ExposedProp } from './decorators'; export type ConsumptionConfig = { key: string; options: T; }; export type ExposeStrategy = { /** * Exposes the given function on the strategy. */ exposeFunction: (target: Function, config: { key: string; options: TPropExposeOptions; meta: TInstanceExposeOptions; }) => Promise; /** * Exposes metadata to enable creation of client objects. */ exposeMeta: (instanceOptions: TInstanceExposeOptions, props: ExposedProp[]) => Promise; }; /** * Exposes api services on the transport of choice. */ export declare class ApiExposer { private strategy; /** * @param strategy The expose strategy to use to expose instances. */ constructor(strategy: ExposeStrategy); /** * Exposes an instance of a given api on * @param instance Instance of a class which has been decorated to indicate which functions can be exposed. * @param instanceOptions Transport strategy specific options to use when exposing. */ exposeInstance: (instance: Record, instanceOptions: TInstanceExposeOptions) => Promise; }