import AbstractDimension from './abstract'; type ItemToLabelMap = Record | ((item: string) => string) | null; type BaseToNewMap = Record | ((baseItem: string) => string); declare class GenericDimension extends AbstractDimension { private _items; private _rootIdxToGroupIdx; private _itemToLabel; get attributes(): string[]; /** * Create a simple dimension */ constructor(id: string, rootAttribute: string, items: string[], label?: string | null, itemToLabelMap?: ItemToLabelMap); static deserialize(buffer: Buffer): GenericDimension; serialize(): Buffer; /** * Add a parent attribute based on an existing one. * If an exception is throw on mapping functions, the dimensions will not be modified. * * @param {string} baseAttr ie: "zipCode" * @param {string} newAttr ie: "city" * @param {Record | (string): string} baseToNew ie: {"12345": "paris", "54321": "paris"} * @param {Record | (string): string} newToNewLabel ie: {'paris': "Ville de Paris"} */ addAttribute(baseAttr: string, newAttr: string, baseToNew: BaseToNewMap, newToNewLabel?: ItemToLabelMap): void; getItems(attribute?: string | null): string[]; getEntries(attribute?: string | null): [string, string][]; drillUp(targetAttr: string): GenericDimension; drillDown(attribute: string): GenericDimension; dice(attribute: string, items: string[], reorder?: boolean): GenericDimension; diceRange(attribute: string, start: any, end: any): never; getGroupIndexFromRootIndexMap(groupAttr: string): number[]; protected getGroupIndexFromRootIndex(groupAttr: string, rootIdx: number): number; union(otherDimension: GenericDimension): GenericDimension; intersect(otherDimension: GenericDimension): GenericDimension; private _getOrCall; } export default GenericDimension; //# sourceMappingURL=generic.d.ts.map