import { type IAttributeDisplayFormMetadataObject, type ICatalogAttribute, type ICatalogAttributeHierarchy, type ICatalogDateAttribute, type ICatalogDateAttributeHierarchy, type ICatalogDateDataset, type ICatalogFact, type ICatalogMeasure, type IDateHierarchyTemplate, type IParameterMetadataObject, type IdentifierRef, type ObjRef } from "@gooddata/sdk-model";
import { type CatalogDateAttributeWithDataset } from "../../../_staging/catalog/dateAttributeWithDatasetMap.js";
import { type ObjRefMap } from "../../../_staging/metadata/objRefMap.js";
import { type DashboardSelector } from "../types.js";
import { type CatalogMeasureParametersStatus, type CatalogParametersStatus } from "./catalogState.js";
/**
 * @public
 */
export declare const selectCatalogAttributes: DashboardSelector<ICatalogAttribute[]>;
/**
 * Returns the workspace parameters loaded into the dashboard catalog.
 *
 * @alpha
 */
export declare const selectCatalogParameters: DashboardSelector<IParameterMetadataObject[]>;
/**
 * Returns a selector that yields the workspace parameter for a given ref, or `undefined`
 * if the catalog does not contain it.
 *
 * @alpha
 */
export declare const selectCatalogParameterByRef: (ref: ObjRef) => DashboardSelector<IParameterMetadataObject | undefined>;
/**
 * Returns the load status of catalog parameters.
 *
 * @alpha
 */
export declare const selectCatalogParametersStatus: DashboardSelector<CatalogParametersStatus>;
/**
 * Returns true once the catalog parameters loader has succeeded.
 *
 * @alpha
 */
export declare const selectCatalogParametersIsLoaded: DashboardSelector<boolean>;
/**
 * Returns the dashboard-wide map from metric ref string to the parameter refs the metric depends on.
 * The map is populated during dashboard initialization from the workspace references service.
 *
 * @alpha
 */
export declare const selectCatalogMeasureParameters: DashboardSelector<Record<string, IdentifierRef[]>>;
/**
 * Returns the load status of the dashboard-wide metric → parameter dependency map.
 *
 * @alpha
 */
export declare const selectCatalogMeasureParametersStatus: DashboardSelector<CatalogMeasureParametersStatus>;
/**
 * @alpha
 */
export declare const selectHasCatalogAttributes: DashboardSelector<boolean>;
/**
 * @public
 */
export declare const selectCatalogAttributeDisplayForms: DashboardSelector<IAttributeDisplayFormMetadataObject[]>;
/**
 * @public
 */
export declare const selectCatalogAttributeDisplayFormsById: DashboardSelector<Record<string, IAttributeDisplayFormMetadataObject>>;
/**
 * @public
 */
export declare const selectCatalogMeasures: DashboardSelector<ICatalogMeasure[]>;
/**
 * @alpha
 */
export declare const selectHasCatalogMeasures: DashboardSelector<boolean>;
/**
 * @public
 */
export declare const selectCatalogFacts: DashboardSelector<ICatalogFact[]>;
/**
 * @alpha
 */
export declare const selectHasCatalogFacts: DashboardSelector<boolean>;
/**
 * @public
 */
export declare const selectCatalogDateDatasets: DashboardSelector<ICatalogDateDataset[]>;
/**
 * @alpha
 */
export declare const selectHasCatalogDateDatasets: DashboardSelector<boolean>;
/**
 * @alpha
 */
export declare const selectCatalogIsLoaded: DashboardSelector<boolean>;
/**
 * @public
 */
export declare const selectCatalogDateAttributes: DashboardSelector<ICatalogDateAttribute[]>;
/**
 * @beta
 */
export declare const selectCatalogAttributeHierarchies: DashboardSelector<ICatalogAttributeHierarchy[]>;
/**
 * @alpha
 */
export declare const selectDateHierarchyTemplates: DashboardSelector<IDateHierarchyTemplate[]>;
/**
 * @alpha
 */
export declare const selectAdhocDateHierarchies: DashboardSelector<ICatalogDateAttributeHierarchy[]>;
/**
 * @alpha
 */
export declare const selectAllCatalogAttributeHierarchies: DashboardSelector<(ICatalogAttributeHierarchy | ICatalogDateAttributeHierarchy)[]>;
/**
 * @alpha
 */
export declare const selectAttributesWithDrillDown: DashboardSelector<(ICatalogAttribute | ICatalogDateAttribute)[]>;
/**
 * Descendant of the attribute hierarchy.
 * @alpha
 */
export type HierarchyDescendant = {
    /**
     * Reference to the hierarchy.
     */
    hierarchyRef: ObjRef;
    /**
     * Reference to the hierarchy descendant - attribute or date attribute.
     */
    descendantRef: ObjRef;
};
/**
 * Dictionary of the hierarchy descendants grouped by particular attribute.
 * Key is the attribute id.
 * Value is the array of the descendants with their respective hierarchy ref.
 *
 * @alpha
 */
export type HierarchyDescendantsByAttributeId = Record<string, HierarchyDescendant[]>;
/**
 * @alpha
 */
export declare const selectAttributesWithHierarchyDescendants: DashboardSelector<HierarchyDescendantsByAttributeId>;
/**
 * @internal
 */
export declare const selectAttributesWithDisplayFormLink: DashboardSelector<ICatalogAttribute[]>;
/**
 * Selects all date datasets in the catalog as a mapping of obj ref to date dataset.
 *
 * @alpha
 */
export declare const selectAllCatalogDateDatasetsMap: DashboardSelector<ObjRefMap<ICatalogDateDataset>>;
/**
 * Selects all display forms in the catalog as a mapping of obj ref to display form
 *
 * @alpha
 */
export declare const selectAllCatalogDisplayFormsMap: DashboardSelector<ObjRefMap<IAttributeDisplayFormMetadataObject>>;
/**
 * Selects all attributes in the catalog as a mapping of ref to catalog's attribute object. The mapping
 * will include both 'normal' attributes and attributes from date datasets.
 *
 * @remarks see `isCatalogAttribute` guard; this can be used to determine type of attribute
 * @alpha
 */
export declare const selectAllCatalogAttributesMap: DashboardSelector<ObjRefMap<ICatalogAttribute | ICatalogDateAttribute>>;
/**
 * Selects all measures in the catalog as a mapping of ref to catalog's measure object.
 *
 * @alpha
 */
export declare const selectAllCatalogMeasuresMap: DashboardSelector<ObjRefMap<ICatalogMeasure>>;
/**
 * Selects lookup mapping between date dataset attributes and date datasets. The entry in lookup contains both the date dataset attribute
 * and the date dataset to which it belongs. The lookup is indexed by the date dataset attribute and entries can be obtained using
 * attribute refs.
 *
 * @alpha
 */
export declare const selectCatalogDateAttributeToDataset: DashboardSelector<ObjRefMap<CatalogDateAttributeWithDataset>>;
//# sourceMappingURL=catalogSelectors.d.ts.map