import { NeighborType } from "./Types";
import { Association, AssociationType } from "./AssociatesCache";
export { AssociationType, Association };
declare type AssociatesCalculator = (componentId: string) => string[];
declare type AssociationCalculator = (componentId: string) => Association[];
/**
 * Gets all children.
 * @param componentIds
 * @param recursively
 * @returns {string[]} An array containing all the children.
 */
export declare const getChildren: (componentIds: string[], recursively: boolean) => string[];
/**
 * Get all children based on snap points of the component,
 * except when they are also grandchildren or something
 *
 * @param componentId
 */
export declare const children: AssociatesCalculator;
export declare const getAttachPointsAtChildren: AssociationCalculator;
export declare const getParents: (componentIds: string[], recurse: boolean) => string[];
/**
 * Gets the snapping parent of the component, specified by id. Calculated via the ChildMatch function of Point
 * @param componentId The component id.
 * @returns {string} The component id to which the id given as parameter is snapped to.
 */
export declare const parent: (componentId: string) => string;
/**
 * Gets the attach point to which the component is snapped to on the parent. Calculated via the ChildMatch function of Point
 * If the component is snapped to more than one parent in a hierarchy (e.g. t-element + c-element), the innermost one is given
 * @param componentId The component id.
 * @returns {string} The component id to which the id given as parameter is snapped to.
 */
export declare const getAttachPointAtParent: (componentId: string) => Association;
export declare const getAttachPointsAtParent: AssociationCalculator;
/**
 * Get the neighbor of the type.
 */
export declare const neighbor: (componentId: string, type: NeighborType, key?: string) => string;
/**
 * Gets all the neighbors of the selected ids.
 * @param componentIds the componentIds of which we want the neighbors
 * @param recursively If set, we add all neighbors of neighbors (and so on).
 * @returns {string[]} An array containing the neighbors.
 */
export declare const getNeighbors: (componentIds: string[], recursively: boolean) => string[];
/**
 * Gets all Neighbors of the component, specified by id. Calculated via the NeighborMatch function of IGX.Point
 * @param componentId The id
 * @returns {Array} An array that contains the ids of the neighbors
 */
export declare const neighbors: AssociatesCalculator;
export declare const getAttachPointsAtNeighbors: AssociationCalculator;
