import type { Promisable } from '@ariestools/sdk'; import type { XyoAddress } from '@xyo-network/sdk-protocol'; import { LRUCache } from 'lru-cache'; import type { CacheConfig, ModuleFilterOptions, ModuleIdentifier, ModuleIdentifierTransformer, ModuleInstance, ModuleRepository, ModuleResolverInstance, ObjectFilterOptions } from '../module-model/index.js'; import type { ModuleResolverParams } from './AbstractModuleResolver.js'; import { AbstractModuleResolver } from './AbstractModuleResolver.js'; export interface CompositeModuleResolverParams extends ModuleResolverParams { allowNameResolution?: boolean; cache?: CacheConfig; moduleIdentifierTransformers?: ModuleIdentifierTransformer[]; } export declare class CompositeModuleResolver extends AbstractModuleResolver implements ModuleRepository, ModuleResolverInstance { static readonly defaultMaxDepth = 3; protected _cache: LRUCache; protected resolvers: ModuleResolverInstance[]; private _allowAddResolver; private _localResolver; constructor(params: T); get allowAddResolver(): boolean; set allowAddResolver(value: boolean); get allowNameResolution(): boolean; private get moduleIdentifierTransformers(); add(mod: ModuleInstance): this; add(mod: ModuleInstance[]): this; addResolver(resolver: ModuleResolverInstance): this; remove(addresses: XyoAddress[] | XyoAddress): this; removeResolver(resolver: ModuleResolverInstance): this; resolveHandler(id?: ModuleIdentifier, options?: ModuleFilterOptions): Promise; resolveIdentifier(id: ModuleIdentifier, _options?: ObjectFilterOptions): Promise; protected resolveComplexIdentifier(_id: ModuleIdentifier, _options?: ObjectFilterOptions): Promisable; private addSingleModule; private removeSingleModule; private resolveMultipartIdentifier; } //# sourceMappingURL=CompositeModuleResolver.d.ts.map