import type { Creatable, CreatableInstance, Logger } from '@xylabs/sdk-js'; import type { Schema } from '@xyo-network/payload-model'; import type { ModuleEventData } from '../EventsModels/index.ts'; import type { AttachableModuleInstance } from '../instance/index.ts'; import type { QueryableModuleParams } from '../QueryableModule/index.ts'; export interface CreatableModuleInstance extends CreatableInstance, AttachableModuleInstance { } export interface CreatableModuleFactory extends Omit, 'create' | 'createHandler' | 'paramsHandler'> { creatableModule: CreatableModule; defaultParams?: Partial; create(this: CreatableModuleFactory, params?: Partial): Promise; } export interface CreatableModule extends Creatable { configSchemas: Schema[]; defaultConfigSchema: Schema; defaultLogger?: Logger; new (key: unknown, params: Partial): T; factory(params?: Partial): CreatableModuleFactory; } /** * Class annotation to be used to decorate Modules which support * an asynchronous creation pattern * @returns The decorated Module requiring it implement the members * of the CreatableModule as statics properties/methods */ export declare function creatableModule(): >(constructor: U) => void; //# sourceMappingURL=CreatableModule.d.ts.map