export interface IIdentifierWithTags {
    identifier: string;
    tags: string;
}
export interface IDisplayForms {
    [key: string]: IIdentifierWithTags;
}
export interface IAttrItem {
    identifier: string;
    tags: string;
    displayForms: IDisplayForms;
    defaultDisplayForm: IIdentifierWithTags;
}
export interface IAttrs {
    [key: string]: IAttrItem;
}
export interface IDataSet {
    identifier: string;
    tags: string;
    attributes: IAttrs;
}
export interface ICatalog {
    measures?: {
        [key: string]: IIdentifierWithTags;
    };
    visualizations: {
        [key: string]: IIdentifierWithTags;
    };
    attributes: IAttrs;
    dateDataSets: {
        [key: string]: IDataSet;
    };
}
/**
 * CatalogHelper
 * is a tool that exposes API that to look up measures, attributes, visualizations and other metadata elements
 * example usage:
 *  import catalog from './catalog.json';
 *  const C = new CatalogHelper(catalog);
 */
export default class CatalogHelper {
    measures: {
        [key: string]: IIdentifierWithTags;
    };
    visualizations: {
        [key: string]: IIdentifierWithTags;
    };
    attributes: {
        [key: string]: IAttrItem;
    };
    dateDataSets: {
        [key: string]: IDataSet;
    };
    constructor(catalog: ICatalog);
    measure(name: string): string;
    measureTags(name: string): string;
    visualization(name: string): string;
    visualizationTags(name: string): string;
    attribute(attributeName: string): string;
    attributeTags(attributeName: string): string;
    attributeDisplayForm(attributeName: string, displayFormName?: string): string;
    attributeDisplayFormTags(attributeName: string, displayFormName?: string): string;
    dateDataSet(dataSetName: string): string;
    dateDataSetTags(dataSetName: string): string;
    dateDataSetAttribute(dataSetName: string, attrName: string): string;
    dateDataSetAttributeTags(dataSetName: string, attrName: string): string;
    dateDataSetDisplayForm(dataSetName: string, attributeName: string, displayFormName?: string): string;
    dateDataSetDisplayFormTags(dataSetName: string, attributeName: string, displayFormName?: string): string;
}
