import { Entity, EntityManager, EntityQuery, ExpandClause } from 'breeze-client'; export interface HasEntityGraph extends EntityManager { /** Get related entities of root entity (or root entities) as specified by expand. @example var graph = breeze.EntityManager.getEntityGraph(customer, 'Orders.OrderDetails'); // graph will be the customer, all of its orders and their details even if deleted. @method getEntityGraph @param roots {Entity|Array of Entity} The root entity or root entities. @param expand {String|Array of String|Object} an expand string, a query expand clause, or array of string paths @return {Array of Entity} root entities and their related entities, including deleted entities. Duplicates are removed and entity order is indeterminate. **/ getEntityGraph(roots: Entity | Array, expand: string | Array | ExpandClause): Array; /** Execute query locally and return both the query results and their related entities as specified by the optional expand parameter or the query's expand clause. @example var query = breeze.EntityQuery.from('Customers') .where('CompanyName', 'startsWith', 'Alfred') .expand('Orders.OrderDetails'); var graph = manager.getEntityGraph(query); // graph will be the 'Alfred' customers, their orders and their details even if deleted. @method getEntityGraph @param query {EntityQuery} A query to be executed against the manager's local cache. @param [expand] {String|Array of String|Object} an expand string, a query expand clause, or array of string paths @return {Array of Entity} local queried root entities and their related entities, including deleted entities. Duplicates are removed and entity order is indeterminate. **/ getEntityGraph(query: EntityQuery, expand: string | Array | ExpandClause): Array; } export declare function mixinEntityGraph(emclass: { new (): EntityManager; }): void;