import { type IDashboardParameter, type IInsightParameterValue, type ObjRef } from "@gooddata/sdk-model";
import { type DashboardSelector } from "../types.js";
import { type IDashboardParameterEntry } from "./parametersState.js";
/**
 * Returns the persisted-shape parameter entries currently held by the dashboard.
 *
 * @alpha
 */
export declare const selectDashboardParameters: DashboardSelector<IDashboardParameter[]>;
/**
 * Returns currently active parameter references.
 *
 * @alpha
 */
export declare const selectActiveParameterRefKeys: DashboardSelector<ReadonlySet<string>>;
/**
 * Returns the full per-parameter entries (persisted shape + ephemeral `runtimeOverride`).
 *
 * @internal
 */
export declare const selectDashboardParameterEntries: DashboardSelector<IDashboardParameterEntry[]>;
/**
 * Returns a selector that yields the entry held by the dashboard for a given parameter ref,
 * or `undefined` if no such entry exists.
 *
 * @alpha
 */
export declare const selectDashboardParameterEntryByRef: (ref: ObjRef) => DashboardSelector<IDashboardParameterEntry | undefined>;
/**
 * Returns a selector that yields the current `runtimeOverride` for a given parameter ref,
 * or `undefined` if the dashboard does not hold an entry for that ref.
 *
 * @alpha
 */
export declare const selectParameterRuntimeOverrideByRef: (ref: ObjRef) => DashboardSelector<number | undefined>;
/**
 * Computes the dashboard parameters in the shape that would be persisted on save right now.
 *
 * @remarks
 * For resolved entries (catalog parameters loaded AND ref present), applies smart persistence:
 * `value` is dropped when equal to the workspace default and `label` is dropped when equal
 * to the parameter title. For non-resolved entries (catalog not loaded, gated off, or ref
 * missing), the persisted entry is passed through verbatim so we never compare against an
 * unknown workspace default.
 *
 * @internal
 */
export declare const selectSmartPersistedDashboardParameters: DashboardSelector<IDashboardParameter[]>;
/**
 * Returns true if the dashboard parameters that would be persisted differ from the persisted version.
 *
 * @alpha
 */
export declare const selectIsParametersChanged: DashboardSelector<boolean>;
/**
 * Returns the parameter values to inject into the widget's `IExecutionConfig.parameterValues`.
 *
 * @remarks
 * The result is the intersection of dashboard parameter entries and the parameters referenced
 * by the widget's insight (per `insightParameters`). Dashboard parameters not referenced by the
 * widget's insight are excluded so that adding/removing unrelated parameters does not invalidate
 * the widget's `defFingerprint`. Returns an empty array when `enableParameters` is off so
 * persisted parameter values cannot silently affect execution while the UI is hidden.
 *
 * @alpha
 */
export declare const selectEffectiveParameterValuesForWidget: (ref: ObjRef | undefined) => DashboardSelector<IInsightParameterValue[]>;
//# sourceMappingURL=parametersSelectors.d.ts.map