1//
2// Copyright (c) ZeroC, Inc. All rights reserved.
3//
4
5declare module "ice"
6{
7    namespace Ice
8    {
9        class Object
10        {
11            /**
12             * Tests whether this object supports a specific Slice interface.
13             * @param typeID The type ID of the Slice interface to test against.
14             * @param current The Current object for the invocation.
15             * @return True if this object has the interface specified by typeID
16             * or derives from the interface specified by typeID.
17             */
18            ice_isA(typeID:string, current?:Current):boolean|PromiseLike<boolean>;
19
20            /**
21             * Tests whether this object can be reached.
22             * @param current The Current object for the invocation.
23             */
24            ice_ping(current?:Current):void|PromiseLike<void>;
25
26            /**
27             * Returns the Slice type IDs of the interfaces supported by this object.
28             * @param current The Current object for the invocation.
29             * @return The Slice type IDs of the interfaces supported by this object, in base-to-derived
30             * order. The first element of the returned array is always "::Ice::Object".
31             */
32            ice_ids(current?:Current):string[]|PromiseLike<string[]>;
33
34            /**
35             * Returns the Slice type ID of the most-derived interface supported by this object.
36             * @param current The Current object for the invocation.
37             * @return The Slice type ID of the most-derived interface.
38             */
39            ice_id(current?:Current):string|PromiseLike<string>;
40
41            /**
42             * Obtains the Slice type ID of this type.
43             * @return The return value is always "::Ice::Object".
44             */
45            static ice_staticId():string;
46        }
47    }
48}
49