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<Entity>, expand: string | Array<string> | ExpandClause): Array<Entity>;
    /**
    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<string> | ExpandClause): Array<Entity>;
}
export declare function mixinEntityGraph(emclass: {
    new (): EntityManager;
}): void;
