import { ContextId, InstanceWrapper } from '../core/injector';
import { ControllerType } from "../types";
export declare abstract class ContextCreator {
    abstract createConcreteContext<T extends any[], R extends any[]>(metadata: T, contextId?: ContextId, inquirerId?: string): R;
    getGlobalMetadata?<T extends any[]>(contextId?: ContextId, inquirerId?: string): T;
    createContext<T extends unknown[] = any, R extends unknown[] = any>(instance: ControllerType, callback: (...args: any[]) => void, metadataKey: string, contextId?: ContextId, inquirerId?: string): R;
    reflectClassMetadata<T>(instance: ControllerType, metadataKey: string): T;
    reflectMethodMetadata<T>(callback: (...args: unknown[]) => unknown, metadataKey: string): T;
    protected getContextId(contextId: ContextId, instanceWrapper: InstanceWrapper): ContextId;
}
//# sourceMappingURL=context-creator.d.ts.map