import { type IRawExportCustomOverrides } from "@gooddata/sdk-backend-spi";
import { type IInsight, type IInsightDefinition, type ObjRef } from "@gooddata/sdk-model";
import { type ObjRefMap } from "../../../_staging/metadata/objRefMap.js";
import { type DashboardSelector, type DashboardState } from "../types.js";
/**
 * Selects all insights used on the dashboard.
 *
 * @remarks
 * Note: if you are aiming to lookup insights using an ObjRef, then you should instead use the map returned
 * by {@link selectInsightsMap}. If you are aiming to lookup a single insight by its ref, use {@link selectInsightByRef}.
 * Using these selectors is both faster and safer as they take ObjRef type into account and look up the insight
 * depending on the type of the ref.
 *
 * See {@link selectInsightsMap} or {@link selectInsightByRef} for a faster and safer ways to get
 * an insight by its ObjRef.
 * @public
 */
export declare const selectInsights: (state: DashboardState) => IInsight[];
/**
 * Selects refs of all insights used on the dashboard.
 *
 * @alpha
 */
export declare const selectInsightRefs: DashboardSelector<ObjRef[]>;
/**
 * Selects all insights and returns them in a mapping of obj ref to the insight object.
 *
 * @alpha
 */
export declare const selectInsightsMap: DashboardSelector<ObjRefMap<IInsight>>;
/**
 * Selects insight used on a dashboard by its ref.
 *
 * @alpha
 */
export declare const selectInsightByRef: (ref: ObjRef | undefined) => DashboardSelector<IInsight | undefined>;
/**
 * Selects insight used on a dashboard by widget ref.
 *
 * @alpha
 */
export declare const selectInsightByWidgetRef: (ref: ObjRef | undefined) => DashboardSelector<IInsight | undefined>;
/**
 * Selects raw export custom overrides for insight by ref.
 *
 * @deprecated The insights reached by refs don't have missing titles for derived and arithmetic measures filled in.
 * @alpha
 */
export declare const selectRawExportOverridesForInsightByRef: (ref: ObjRef | undefined) => DashboardSelector<IRawExportCustomOverrides | undefined>;
/**
 * Selects raw export custom overrides for insight. Note that it's recommended to use
 * fillMissingTitles to fill in missing titles for derived and arithmetic measures.
 *
 * @alpha
 */
export declare const selectRawExportOverridesForInsight: (insight: IInsightDefinition | undefined) => DashboardSelector<IRawExportCustomOverrides | undefined>;
//# sourceMappingURL=insightsSelectors.d.ts.map