import {Ice} from 'ice'; declare module './Ice.ns' { namespace Ice { /** * A factory for objects. Object factories are used when receiving "objects by value". * An object factory must be implemented by the application writer and registered * with the communicator. */ interface ObjectFactory { /** * Create a new object for a given object type. The type is the * absolute Slice type id, i.e., the id relative to the * unnamed top-level Slice module. For example, the absolute * Slice type id for interfaces of type Bar in the module * Foo is ::Foo::Bar. * *

The leading "::" is required. * * @param type The object type. * * @return The object created for the given type, or nil if the * factory is unable to create the object. */ create(type: string): Ice.Value | null; /** * Called when the factory is removed from the communicator, or if * the communicator is destroyed. * * @see Communicator#destroy */ destroy(): void; } } } export {Ice} from './Ice.ns';