import type { Address, CreatableStatus, Promisable, TypeCheck } from '@xylabs/sdk-js'; import { IsObjectFactory } from '@xylabs/sdk-js'; import type { AccountInstance } from '@xyo-network/account-model'; import type { ModuleEventData } from '../EventsModels/index.ts'; import type { ModuleIdentifier, ModuleName } from '../ModuleIdentifier.ts'; import type { QueryableModule, QueryableModuleFunctions, QueryableModuleParams } from '../QueryableModule/index.ts'; import type { Direction } from './ObjectFilter.ts'; import type { ObjectResolver } from './ObjectResolver.ts'; export type ModulePipeLine = Lowercase<'one-to-one' | 'one-to-many' | 'many-to-one' | 'many-to-many'>; export type ModuleStatus = CreatableStatus | 'wrapped' | 'proxy'; export declare class DeadModuleError extends Error { error: Error | undefined; id: ModuleIdentifier; constructor(id: ModuleIdentifier, error: Error | undefined, msg?: string); } export interface AddressToWeakInstanceCache { get: (address: Address) => WeakRef | null; set: (address: Address, instance: WeakRef | null) => void; } export interface ModuleFamilyFunctions { account?: AccountInstance; addParent: (mod: ModuleInstance) => void; addressCache?: (direction: Direction, includePrivate: boolean) => AddressToWeakInstanceCache | undefined; modName?: ModuleName; parents: () => Promisable; privateChildren: () => Promisable; publicChildren: () => Promisable; removeParent: (address: Address) => void; siblings: () => Promisable; } export interface ModuleInstance extends QueryableModule, ObjectResolver, QueryableModuleFunctions, ModuleFamilyFunctions { readonly pipeline?: ModulePipeLine; readonly status: ModuleStatus | null; } export type InstanceTypeCheck = TypeCheck; export declare class IsInstanceFactory extends IsObjectFactory { } //# sourceMappingURL=Instance.d.ts.map