import { type Action, type CaseReducer } from "@reduxjs/toolkit";
import { type IDashboardParameter, type ObjRef } from "@gooddata/sdk-model";
import { type ITabsState } from "../tabsState.js";
type ParametersReducer<A extends Action> = CaseReducer<ITabsState, A>;
/**
 * Add a parameter to the active tab. Initial `runtimeOverride` is `parameter.value`
 * (when pinned) otherwise the workspace default supplied by the caller.
 *
 * @alpha
 */
export interface IAddParameterPayload {
    parameter: IDashboardParameter;
    workspaceDefault: number;
}
/**
 * @alpha
 */
export interface ISetParameterRuntimeValuePayload {
    ref: ObjRef;
    value: number | undefined;
}
/**
 * @alpha
 */
export interface ISetParameterRuntimeValuesPayload {
    values: ISetParameterRuntimeValuePayload[];
    /**
     * Target tab. When omitted, the active tab is used.
     */
    tabLocalIdentifier?: string;
}
/**
 * @alpha
 */
export interface IRemoveParameterPayload {
    ref: ObjRef;
}
export declare const parametersReducers: {
    addParameter: ParametersReducer<{
        payload: IAddParameterPayload;
        type: string;
    }>;
    setParameterRuntimeValue: ParametersReducer<{
        payload: ISetParameterRuntimeValuePayload;
        type: string;
    }>;
    setParameterRuntimeValues: ParametersReducer<{
        payload: ISetParameterRuntimeValuesPayload;
        type: string;
    }>;
    removeParameter: ParametersReducer<{
        payload: IRemoveParameterPayload;
        type: string;
    }>;
};
export {};
//# sourceMappingURL=parametersReducers.d.ts.map