export default BaseObject; /** * @classdesc * Abstract base class; normally only used for creating subclasses and not * instantiated in apps. * Most non-trivial classes inherit from this. * * You can add your own observable properties with * `object.set('prop', 'value')`, and retrieve that with `object.get('prop')`. * You can listen for changes on that property value with * `object.on('change:prop', listener)`. You can get a list of all * properties with {@link module:ol/Object~BaseObject#getProperties}. * * Note that the observable properties are separate from standard JS properties. * You can, for example, give your map object a title with * `map.title='New title'` and with `map.set('title', 'Another title')`. The * first will be a `hasOwnProperty`; the second will appear in * `getProperties()`. Only the second is observable. * * Properties can be deleted by using the unset method. E.g. * object.unset('foo'). * * @template {string} EventTypes * @api */ declare class BaseObject { /** * @param {Object} [opt_values] An object with key-value pairs. */ constructor(opt_values?: { [x: string]: any; }); revision_: number; /** * @private * @type {Object} */ private values_; /** * Gets a value. * @param {string} key Key name. * @return {*} Value. * @api */ get(key: string): any; /** * Get a list of object property names. * @return {Array} List of property names. * @api */ getKeys(): Array; /** * Get the revision * @returns {number} */ getRevision(): number; /** * Increases the revision counter. * @api */ changed(): void; /** * Get an object of all property names and values. * @return {Object} Object. * @api */ getProperties(): { [x: string]: any; }; /** * @return {boolean} The object has properties. */ hasProperties(): boolean; /** * Sets a value. * @param {string} key Key name. * @param {*} value Value. * @api */ set(key: string, value: any): void; /** * Sets a collection of key-value pairs. Note that this changes any existing * properties and adds new ones (it does not remove any existing properties). * @param {Object} values Values. * @api */ setProperties(values: { [x: string]: any; }): void; /** * Apply any properties from another object without triggering events. * @param {BaseObject} source The source object. * @protected */ protected applyProperties(source: BaseObject): void; } //# sourceMappingURL=Object.d.ts.map