diff --git a/frontend/src/metabase/parameters/constants.ts b/frontend/src/metabase-lib/lib/parameters/constants.ts
similarity index 100%
rename from frontend/src/metabase/parameters/constants.ts
rename to frontend/src/metabase-lib/lib/parameters/constants.ts
diff --git a/frontend/src/metabase/parameters/utils/filters.js b/frontend/src/metabase-lib/lib/parameters/utils/filters.js
similarity index 91%
rename from frontend/src/metabase/parameters/utils/filters.js
rename to frontend/src/metabase-lib/lib/parameters/utils/filters.js
index f4fdd8577488ce92034adee726c062cbe76b2439..a49903fd6d27262e32494cedd1d98f4401e4508c 100644
--- a/frontend/src/metabase/parameters/utils/filters.js
+++ b/frontend/src/metabase-lib/lib/parameters/utils/filters.js
@@ -1,6 +1,9 @@
 import TemplateTagVariable from "metabase-lib/lib/variables/TemplateTagVariable";
-import { getParameterType, getParameterSubType } from "./parameter-type";
-import { getParameterOperatorName } from "./operators";
+import {
+  getParameterType,
+  getParameterSubType,
+} from "metabase-lib/lib/parameters/utils/parameter-type";
+import { getParameterOperatorName } from "metabase-lib/lib/parameters/utils/operators";
 
 export function fieldFilterForParameter(parameter) {
   const type = getParameterType(parameter);
diff --git a/frontend/src/metabase/parameters/utils/filters.unit.spec.js b/frontend/src/metabase-lib/lib/parameters/utils/filters.unit.spec.js
similarity index 100%
rename from frontend/src/metabase/parameters/utils/filters.unit.spec.js
rename to frontend/src/metabase-lib/lib/parameters/utils/filters.unit.spec.js
diff --git a/frontend/src/metabase/parameters/utils/operators.ts b/frontend/src/metabase-lib/lib/parameters/utils/operators.ts
similarity index 82%
rename from frontend/src/metabase/parameters/utils/operators.ts
rename to frontend/src/metabase-lib/lib/parameters/utils/operators.ts
index 5ecf1a147a081c665c4d2e6e533332dfe8416110..082fb883ed9936ec1a0d6584dd7597a00564ac3b 100644
--- a/frontend/src/metabase/parameters/utils/operators.ts
+++ b/frontend/src/metabase-lib/lib/parameters/utils/operators.ts
@@ -1,12 +1,15 @@
-import { UiParameter } from "metabase/parameters/types";
+import { Parameter } from "metabase-types/types/Parameter";
 
 import {
   doesOperatorExist,
   getOperatorByTypeAndName,
 } from "metabase-lib/lib/operators/utils";
 import { NUMBER, STRING, PRIMARY_KEY } from "metabase-lib/lib/types/constants";
-import { PARAMETER_OPERATOR_TYPES } from "../constants";
-import { getParameterType, getParameterSubType } from "./parameter-type";
+import {
+  getParameterType,
+  getParameterSubType,
+} from "metabase-lib/lib/parameters/utils/parameter-type";
+import { PARAMETER_OPERATOR_TYPES } from "metabase-lib/lib/parameters/constants";
 
 type OperatorType = "date" | "number" | "string";
 
@@ -28,7 +31,7 @@ export function getParameterOperatorName(maybeOperatorName?: string) {
   return doesOperatorExist(maybeOperatorName) ? maybeOperatorName : "=";
 }
 
-export function deriveFieldOperatorFromParameter(parameter: UiParameter) {
+export function deriveFieldOperatorFromParameter(parameter: Parameter) {
   const type = getParameterType(parameter);
   const subtype = getParameterSubType(parameter);
   const operatorType = getParameterOperatorType(type);
@@ -71,7 +74,7 @@ export function buildTypedOperatorOptions(
   });
 }
 
-export function getNumberParameterArity(parameter: UiParameter) {
+export function getNumberParameterArity(parameter: Parameter) {
   switch (parameter.type) {
     case "number/=":
     case "number/!=":
@@ -83,7 +86,7 @@ export function getNumberParameterArity(parameter: UiParameter) {
   }
 }
 
-export function getStringParameterArity(parameter: UiParameter) {
+export function getStringParameterArity(parameter: Parameter) {
   switch (parameter.type) {
     case "string/=":
     case "string/!=":
diff --git a/frontend/src/metabase/parameters/utils/operators.unit.spec.ts b/frontend/src/metabase-lib/lib/parameters/utils/operators.unit.spec.ts
similarity index 100%
rename from frontend/src/metabase/parameters/utils/operators.unit.spec.ts
rename to frontend/src/metabase-lib/lib/parameters/utils/operators.unit.spec.ts
diff --git a/frontend/src/metabase-lib/lib/parameters/utils/parameter-type.ts b/frontend/src/metabase-lib/lib/parameters/utils/parameter-type.ts
new file mode 100644
index 0000000000000000000000000000000000000000..66e5f462dc6d7edbdbb7e82d16a915df43a3ee97
--- /dev/null
+++ b/frontend/src/metabase-lib/lib/parameters/utils/parameter-type.ts
@@ -0,0 +1,36 @@
+import _ from "underscore";
+import { Parameter } from "metabase-types/types/Parameter";
+
+export function getParameterType(parameter: Parameter | string) {
+  return typeof parameter === "string"
+    ? splitType(parameter)[0]
+    : parameter.sectionId || splitType(parameter)[0];
+}
+
+export function getParameterSubType(parameter: Parameter) {
+  const [, subtype] = splitType(parameter);
+  return subtype;
+}
+
+function splitType(parameterOrType: Parameter | string) {
+  const parameterType = _.isString(parameterOrType)
+    ? parameterOrType
+    : parameterOrType?.type || "";
+
+  return parameterType.split("/");
+}
+
+export function isDateParameter(parameter: Parameter | string) {
+  const type = getParameterType(parameter);
+  return type === "date";
+}
+
+export function isNumberParameter(parameter: Parameter) {
+  const type = getParameterType(parameter);
+  return type === "number";
+}
+
+export function isStringParameter(parameter: Parameter) {
+  const type = getParameterType(parameter);
+  return type === "string";
+}
diff --git a/frontend/src/metabase/parameters/utils/parameter-type.unit.spec.js b/frontend/src/metabase-lib/lib/parameters/utils/parameter-type.unit.spec.js
similarity index 100%
rename from frontend/src/metabase/parameters/utils/parameter-type.unit.spec.js
rename to frontend/src/metabase-lib/lib/parameters/utils/parameter-type.unit.spec.js
diff --git a/frontend/src/metabase/parameters/utils/targets.ts b/frontend/src/metabase-lib/lib/parameters/utils/targets.ts
similarity index 100%
rename from frontend/src/metabase/parameters/utils/targets.ts
rename to frontend/src/metabase-lib/lib/parameters/utils/targets.ts
diff --git a/frontend/src/metabase/parameters/utils/targets.unit.spec.ts b/frontend/src/metabase-lib/lib/parameters/utils/targets.unit.spec.ts
similarity index 100%
rename from frontend/src/metabase/parameters/utils/targets.unit.spec.ts
rename to frontend/src/metabase-lib/lib/parameters/utils/targets.unit.spec.ts
diff --git a/frontend/src/metabase-lib/lib/queries/utils/card.js b/frontend/src/metabase-lib/lib/queries/utils/card.js
index fce0961991723c587e9710ee21275d3174f0b35e..8328ccc2321fcb81fb1f87e9fc8661570e3bf2d1 100644
--- a/frontend/src/metabase-lib/lib/queries/utils/card.js
+++ b/frontend/src/metabase-lib/lib/queries/utils/card.js
@@ -2,9 +2,9 @@ import _ from "underscore";
 import { updateIn } from "icepick";
 
 import { normalizeParameterValue } from "metabase/parameters/utils/parameter-values";
-import { deriveFieldOperatorFromParameter } from "metabase/parameters/utils/operators";
 
 import Utils from "metabase/lib/utils";
+import { deriveFieldOperatorFromParameter } from "metabase-lib/lib/parameters/utils/operators";
 import * as Q_DEPRECATED from "metabase-lib/lib/queries/utils"; // legacy
 
 export const STRUCTURED_QUERY_TEMPLATE = {
diff --git a/frontend/src/metabase/components/DateRelativeWidget/DateRelativeWidget.tsx b/frontend/src/metabase/components/DateRelativeWidget/DateRelativeWidget.tsx
index 034ca00bb5231c9baba623602e2bfa73cbebfea4..219f375f04dcb49e101cdd99935b92fdc9c2a845 100644
--- a/frontend/src/metabase/components/DateRelativeWidget/DateRelativeWidget.tsx
+++ b/frontend/src/metabase/components/DateRelativeWidget/DateRelativeWidget.tsx
@@ -3,7 +3,7 @@ import { t } from "ttag";
 import cx from "classnames";
 import _ from "underscore";
 
-import { DATE_MBQL_FILTER_MAPPING } from "metabase/parameters/constants";
+import { DATE_MBQL_FILTER_MAPPING } from "metabase-lib/lib/parameters/constants";
 
 type Shortcut = {
   name: string;
diff --git a/frontend/src/metabase/dashboard/components/DashCardCardParameterMapper.jsx b/frontend/src/metabase/dashboard/components/DashCardCardParameterMapper.jsx
index 95b81bc6ebff4e09e2944b56c9d593fcd247134e..97694da2be1a360ec0736693690bbba2e1e2d780 100644
--- a/frontend/src/metabase/dashboard/components/DashCardCardParameterMapper.jsx
+++ b/frontend/src/metabase/dashboard/components/DashCardCardParameterMapper.jsx
@@ -9,8 +9,6 @@ import Icon from "metabase/components/Icon";
 import Tooltip from "metabase/components/Tooltip";
 import TippyPopover from "metabase/components/Popover/TippyPopover";
 import ParameterTargetList from "metabase/parameters/components/ParameterTargetList";
-import { isVariableTarget } from "metabase/parameters/utils/targets";
-import { isDateParameter } from "metabase/parameters/utils/parameter-type";
 import { getMetadata } from "metabase/selectors/metadata";
 import {
   getNativeDashCardEmptyMappingText,
@@ -18,6 +16,8 @@ import {
   isVirtualDashCard,
   showVirtualDashCardInfoText,
 } from "metabase/dashboard/utils";
+import { isDateParameter } from "metabase-lib/lib/parameters/utils/parameter-type";
+import { isVariableTarget } from "metabase-lib/lib/parameters/utils/targets";
 import Question from "metabase-lib/lib/Question";
 
 import {
diff --git a/frontend/src/metabase/dashboard/utils.js b/frontend/src/metabase/dashboard/utils.js
index 017841da17a58e536ac6e1ad809cc2bea4bd64b5..b2f6e4c5b8de8172c62556db0bf09dd33e7440b2 100644
--- a/frontend/src/metabase/dashboard/utils.js
+++ b/frontend/src/metabase/dashboard/utils.js
@@ -5,7 +5,7 @@ import {
   isDateParameter,
   isNumberParameter,
   isStringParameter,
-} from "metabase/parameters/utils/parameter-type";
+} from "metabase-lib/lib/parameters/utils/parameter-type";
 import { isNative } from "metabase-lib/lib/queries/utils";
 
 export function syncParametersAndEmbeddingParams(before, after) {
diff --git a/frontend/src/metabase/lib/click-behavior.js b/frontend/src/metabase/lib/click-behavior.js
index f76ac2c5d4e852b817c00da2d8ef46918a103674..ec5dabb0ddc5ce3077e279a70e11b7c33305732f 100644
--- a/frontend/src/metabase/lib/click-behavior.js
+++ b/frontend/src/metabase/lib/click-behavior.js
@@ -4,11 +4,11 @@ import { t, ngettext, msgid } from "ttag";
 
 import { parseTimestamp } from "metabase/lib/time";
 import { formatDateTimeForParameter } from "metabase/lib/formatting/date";
+import { isValidImplicitActionClickBehavior } from "metabase/writeback/utils";
 import {
   dimensionFilterForParameter,
   variableFilterForParameter,
-} from "metabase/parameters/utils/filters";
-import { isValidImplicitActionClickBehavior } from "metabase/writeback/utils";
+} from "metabase-lib/lib/parameters/utils/filters";
 import { isa, isDate } from "metabase-lib/lib/types/utils/isa";
 import { TYPE } from "metabase-lib/lib/types/constants";
 import Question from "metabase-lib/lib/Question";
diff --git a/frontend/src/metabase/parameters/components/FormattedParameterValue/FormattedParameterValue.tsx b/frontend/src/metabase/parameters/components/FormattedParameterValue/FormattedParameterValue.tsx
index 87332d3637d2c04e22b052803a1462623c66228f..5b666ddc14d2883d989d21ad2ca2aae3865aa21e 100644
--- a/frontend/src/metabase/parameters/components/FormattedParameterValue/FormattedParameterValue.tsx
+++ b/frontend/src/metabase/parameters/components/FormattedParameterValue/FormattedParameterValue.tsx
@@ -1,9 +1,9 @@
 import React from "react";
 
 import { formatParameterValue } from "metabase/parameters/utils/formatting";
-import { isDateParameter } from "metabase/parameters/utils/parameter-type";
 import { UiParameter, FieldFilterUiParameter } from "metabase/parameters/types";
 import ParameterFieldWidgetValue from "metabase/parameters/components/widgets/ParameterFieldWidget/ParameterFieldWidgetValue/ParameterFieldWidgetValue";
+import { isDateParameter } from "metabase-lib/lib/parameters/utils/parameter-type";
 
 type FormattedParameterValueProps = {
   parameter: UiParameter;
diff --git a/frontend/src/metabase/parameters/components/ParameterValueWidget.jsx b/frontend/src/metabase/parameters/components/ParameterValueWidget.jsx
index 57a355ce7e099f5188443d36e620015adabee94c..d7716aa0388a36390c0c566aa7e4956f592c7219 100644
--- a/frontend/src/metabase/parameters/components/ParameterValueWidget.jsx
+++ b/frontend/src/metabase/parameters/components/ParameterValueWidget.jsx
@@ -8,14 +8,6 @@ import {
   getParameterIconName,
   getParameterWidgetTitle,
 } from "metabase/parameters/utils/ui";
-import {
-  isDateParameter,
-  isNumberParameter,
-} from "metabase/parameters/utils/parameter-type";
-import {
-  getNumberParameterArity,
-  getStringParameterArity,
-} from "metabase/parameters/utils/operators";
 
 import PopoverWithTrigger from "metabase/components/PopoverWithTrigger";
 import Icon from "metabase/components/Icon";
@@ -30,6 +22,14 @@ import WidgetStatusIcon from "metabase/parameters/components/WidgetStatusIcon";
 import FormattedParameterValue from "metabase/parameters/components/FormattedParameterValue";
 import NumberInputWidget from "metabase/parameters/components/widgets/NumberInputWidget";
 import StringInputWidget from "metabase/parameters/components/widgets/StringInputWidget";
+import {
+  getNumberParameterArity,
+  getStringParameterArity,
+} from "metabase-lib/lib/parameters/utils/operators";
+import {
+  isDateParameter,
+  isNumberParameter,
+} from "metabase-lib/lib/parameters/utils/parameter-type";
 
 import ParameterFieldWidget from "./widgets/ParameterFieldWidget/ParameterFieldWidget";
 import S from "./ParameterWidget.css";
diff --git a/frontend/src/metabase/parameters/components/widgets/ParameterFieldWidget/ParameterFieldWidget.jsx b/frontend/src/metabase/parameters/components/widgets/ParameterFieldWidget/ParameterFieldWidget.jsx
index 28d7dc4f931104b335af5459c1ba015a29e89126..9f17e85a7afa7774b9000b4f031dec46a2daa147 100644
--- a/frontend/src/metabase/parameters/components/widgets/ParameterFieldWidget/ParameterFieldWidget.jsx
+++ b/frontend/src/metabase/parameters/components/widgets/ParameterFieldWidget/ParameterFieldWidget.jsx
@@ -5,12 +5,12 @@ import { t } from "ttag";
 import _ from "underscore";
 
 import FieldValuesWidget from "metabase/components/FieldValuesWidget";
-import { deriveFieldOperatorFromParameter } from "metabase/parameters/utils/operators";
 import {
   WidgetRoot,
   Footer,
   UpdateButton,
 } from "metabase/parameters/components/widgets/Widget.styled";
+import { deriveFieldOperatorFromParameter } from "metabase-lib/lib/parameters/utils/operators";
 import {
   getFilterArgumentFormatOptions,
   isEqualsOperator,
diff --git a/frontend/src/metabase/parameters/utils/cards.ts b/frontend/src/metabase/parameters/utils/cards.ts
index 0461c73dae3ce4ff97bcd079b5ae9ca771a477c0..fdd470051fb8b9b1fd001059a7b60bdfcf413be2 100644
--- a/frontend/src/metabase/parameters/utils/cards.ts
+++ b/frontend/src/metabase/parameters/utils/cards.ts
@@ -1,9 +1,5 @@
 import _ from "underscore";
 
-import {
-  getParameterTargetField,
-  getTemplateTagFromTarget,
-} from "metabase/parameters/utils/targets";
 import {
   getValuePopulatedParameters,
   hasParameterValue,
@@ -12,6 +8,10 @@ import { ParameterWithTarget, UiParameter } from "metabase/parameters/types";
 import { Parameter, ParameterTarget } from "metabase-types/types/Parameter";
 import { Card } from "metabase-types/types/Card";
 import { TemplateTag } from "metabase-types/types/Query";
+import {
+  getParameterTargetField,
+  getTemplateTagFromTarget,
+} from "metabase-lib/lib/parameters/utils/targets";
 import Question from "metabase-lib/lib/Question";
 import Metadata from "metabase-lib/lib/metadata/Metadata";
 
diff --git a/frontend/src/metabase/parameters/utils/dashboard-options.js b/frontend/src/metabase/parameters/utils/dashboard-options.js
index 77d1d75ebe270b1197737449b17f215c85766dd5..504dd37c0c31147aa9fe6bb5c0b80287a0ae8d2f 100644
--- a/frontend/src/metabase/parameters/utils/dashboard-options.js
+++ b/frontend/src/metabase/parameters/utils/dashboard-options.js
@@ -1,6 +1,6 @@
 import { t } from "ttag";
-import { ID_OPTION } from "../constants";
-import { buildTypedOperatorOptions } from "./operators";
+import { ID_OPTION } from "metabase-lib/lib/parameters/constants";
+import { buildTypedOperatorOptions } from "metabase-lib/lib/parameters/utils/operators";
 
 export function getDashboardParameterSections() {
   return [
diff --git a/frontend/src/metabase/parameters/utils/dashboards.ts b/frontend/src/metabase/parameters/utils/dashboards.ts
index 2da098659efb0c23692004b6f5d2e99299dbc255..391e4412f841ed0fd668fea104613c8f2d8645e6 100644
--- a/frontend/src/metabase/parameters/utils/dashboards.ts
+++ b/frontend/src/metabase/parameters/utils/dashboards.ts
@@ -1,10 +1,6 @@
 import _ from "underscore";
 
 import { generateParameterId } from "metabase/parameters/utils/parameter-id";
-import {
-  getParameterTargetField,
-  isVariableTarget,
-} from "metabase/parameters/utils/targets";
 import { isFieldFilterParameter } from "metabase/parameters/utils/parameter-type";
 import { slugify } from "metabase/lib/formatting";
 import {
@@ -24,6 +20,10 @@ import {
   DashboardOrderedCard,
 } from "metabase-types/api";
 import { SavedCard } from "metabase-types/types/Card";
+import {
+  getParameterTargetField,
+  isVariableTarget,
+} from "metabase-lib/lib/parameters/utils/targets";
 import Question from "metabase-lib/lib/Question";
 import Metadata from "metabase-lib/lib/metadata/Metadata";
 import Field from "metabase-lib/lib/metadata/Field";
diff --git a/frontend/src/metabase/parameters/utils/date-formatting.ts b/frontend/src/metabase/parameters/utils/date-formatting.ts
index a714ffab56e0c890a5c1b395d76f4b34709f188d..2c96e2fde4ce683ed4ee4e71bacc1e94766f5e18 100644
--- a/frontend/src/metabase/parameters/utils/date-formatting.ts
+++ b/frontend/src/metabase/parameters/utils/date-formatting.ts
@@ -2,10 +2,10 @@ import { t } from "ttag";
 import _ from "underscore";
 import moment from "moment-timezone";
 
-import { DATE_MBQL_FILTER_MAPPING } from "metabase/parameters/constants";
 import { dateParameterValueToMBQL } from "metabase/parameters/utils/mbql";
 import { DATE_OPERATORS } from "metabase/query_builder/components/filters/pickers/DatePicker/DatePicker";
 import { EXCLUDE_OPERATORS } from "metabase/query_builder/components/filters/pickers/DatePicker/ExcludeDatePicker";
+import { DATE_MBQL_FILTER_MAPPING } from "metabase-lib/lib/parameters/constants";
 import {
   generateTimeFilterValuesDescriptions,
   getRelativeDatetimeInterval,
diff --git a/frontend/src/metabase/parameters/utils/formatting.ts b/frontend/src/metabase/parameters/utils/formatting.ts
index d09ba988e6ec8575c7f114fb67a9bd60cf13bd02..a16ff249751f62be271b154850c9296c9e0c7ce2 100644
--- a/frontend/src/metabase/parameters/utils/formatting.ts
+++ b/frontend/src/metabase/parameters/utils/formatting.ts
@@ -1,9 +1,10 @@
 import { ngettext, msgid } from "ttag";
 
 import { formatValue } from "metabase/lib/formatting";
+import { getParameterType } from "metabase-lib/lib/parameters/utils/parameter-type";
 
 import { UiParameter } from "../types";
-import { getParameterType, isFieldFilterParameter } from "./parameter-type";
+import { isFieldFilterParameter } from "./parameter-type";
 import { formatDateValue } from "./date-formatting";
 
 function inferValueType(parameter: UiParameter) {
diff --git a/frontend/src/metabase/parameters/utils/linked-filters.js b/frontend/src/metabase/parameters/utils/linked-filters.js
index e34823400455d5783be32f255ed07cc1483783ee..fcf817b5d19e05764dcc4a20dad468c1df4bf515 100644
--- a/frontend/src/metabase/parameters/utils/linked-filters.js
+++ b/frontend/src/metabase/parameters/utils/linked-filters.js
@@ -1,8 +1,8 @@
 import {
   TYPE_SUPPORTS_LINKED_FILTERS,
   FIELD_FILTER_PARAMETER_TYPES,
-} from "metabase/parameters/constants";
-import { getParameterType } from "metabase/parameters/utils/parameter-type";
+} from "metabase-lib/lib/parameters/constants";
+import { getParameterType } from "metabase-lib/lib/parameters/utils/parameter-type";
 
 export function canUseLinkedFilters(parameter) {
   const type = getParameterType(parameter);
diff --git a/frontend/src/metabase/parameters/utils/mapping-options.js b/frontend/src/metabase/parameters/utils/mapping-options.js
index 96417c70734612ff769fd657aa6b4fa9c1436b56..cb756ff33656754feeaf4aa6f72b832b98ce122d 100644
--- a/frontend/src/metabase/parameters/utils/mapping-options.js
+++ b/frontend/src/metabase/parameters/utils/mapping-options.js
@@ -2,12 +2,11 @@ import { tag_names } from "cljs/metabase.shared.parameters.parameters";
 import { isActionCard } from "metabase/writeback/utils";
 import Question from "metabase-lib/lib/Question";
 import { ExpressionDimension } from "metabase-lib/lib/Dimension";
-
 import {
   dimensionFilterForParameter,
   getTagOperatorFilterForParameter,
   variableFilterForParameter,
-} from "./filters";
+} from "metabase-lib/lib/parameters/utils/filters";
 
 function buildStructuredQuerySectionOptions(section) {
   return section.items.map(({ dimension }) => ({
diff --git a/frontend/src/metabase/parameters/utils/mbql.js b/frontend/src/metabase/parameters/utils/mbql.js
index 2155af0f8053a39b57663b8865a92855996365e0..a6a124f18e7995a6a8c85f319b5d71818b4ab433 100644
--- a/frontend/src/metabase/parameters/utils/mbql.js
+++ b/frontend/src/metabase/parameters/utils/mbql.js
@@ -10,9 +10,12 @@ import Dimension, {
   FieldDimension,
   TemplateTagDimension,
 } from "metabase-lib/lib/Dimension";
-import { getParameterSubType, isDateParameter } from "./parameter-type";
-import { getParameterOperatorName } from "./operators";
-import { isDimensionTarget } from "./targets";
+import { isDimensionTarget } from "metabase-lib/lib/parameters/utils/targets";
+import {
+  getParameterSubType,
+  isDateParameter,
+} from "metabase-lib/lib/parameters/utils/parameter-type";
+import { getParameterOperatorName } from "metabase-lib/lib/parameters/utils/operators";
 import { hasParameterValue } from "./parameter-values";
 
 const withTemporalUnit = (fieldRef, unit) => {
diff --git a/frontend/src/metabase/parameters/utils/parameter-type.ts b/frontend/src/metabase/parameters/utils/parameter-type.ts
index 372f754505bc65a1bd5ac190e8f06021862cd63a..599e485f1f2c825ffc6c9a6b4868d1f83146d6e4 100644
--- a/frontend/src/metabase/parameters/utils/parameter-type.ts
+++ b/frontend/src/metabase/parameters/utils/parameter-type.ts
@@ -1,42 +1,8 @@
 import _ from "underscore";
-import { FIELD_FILTER_PARAMETER_TYPES } from "metabase/parameters/constants";
-
 import { FieldFilterUiParameter } from "metabase/parameters/types";
 import { Parameter } from "metabase-types/types/Parameter";
-
-export function getParameterType(parameter: Parameter | string) {
-  return typeof parameter === "string"
-    ? splitType(parameter)[0]
-    : parameter.sectionId || splitType(parameter)[0];
-}
-
-export function getParameterSubType(parameter: Parameter) {
-  const [, subtype] = splitType(parameter);
-  return subtype;
-}
-
-function splitType(parameterOrType: Parameter | string) {
-  const parameterType = _.isString(parameterOrType)
-    ? parameterOrType
-    : parameterOrType?.type || "";
-
-  return parameterType.split("/");
-}
-
-export function isDateParameter(parameter: Parameter | string) {
-  const type = getParameterType(parameter);
-  return type === "date";
-}
-
-export function isNumberParameter(parameter: Parameter) {
-  const type = getParameterType(parameter);
-  return type === "number";
-}
-
-export function isStringParameter(parameter: Parameter) {
-  const type = getParameterType(parameter);
-  return type === "string";
-}
+import { FIELD_FILTER_PARAMETER_TYPES } from "metabase-lib/lib/parameters/constants";
+import { getParameterType } from "metabase-lib/lib/parameters/utils/parameter-type";
 
 export function isFieldFilterParameter(
   parameter: Parameter,
diff --git a/frontend/src/metabase/parameters/utils/parameter-values.js b/frontend/src/metabase/parameters/utils/parameter-values.js
index 5fc888df9452bd4b16934b06abd64ba4d41c0ade..f42cd4f8556d92afdbeaefd84b57799159703e2b 100644
--- a/frontend/src/metabase/parameters/utils/parameter-values.js
+++ b/frontend/src/metabase/parameters/utils/parameter-values.js
@@ -1,4 +1,4 @@
-import { getParameterType } from "./parameter-type";
+import { getParameterType } from "metabase-lib/lib/parameters/utils/parameter-type";
 
 export function getValuePopulatedParameters(parameters, parameterValues) {
   return parameterValues
diff --git a/frontend/src/metabase/parameters/utils/template-tag-options.js b/frontend/src/metabase/parameters/utils/template-tag-options.js
index 86a43c46408fcd740ff9bf6085cb3c7258a9f60d..dc2f90e5af569af9ac6335670cf10b19dee7ab94 100644
--- a/frontend/src/metabase/parameters/utils/template-tag-options.js
+++ b/frontend/src/metabase/parameters/utils/template-tag-options.js
@@ -4,9 +4,12 @@ import {
   OPTIONS_WITH_OPERATOR_SUBTYPES,
   PARAMETER_OPERATOR_TYPES,
   ID_OPTION,
-} from "../constants";
-import { getOperatorDisplayName, buildTypedOperatorOptions } from "./operators";
-import { fieldFilterForParameter } from "./filters";
+} from "metabase-lib/lib/parameters/constants";
+import {
+  getOperatorDisplayName,
+  buildTypedOperatorOptions,
+} from "metabase-lib/lib/parameters/utils/operators";
+import { fieldFilterForParameter } from "metabase-lib/lib/parameters/utils/filters";
 
 export function getParameterOptions() {
   return [
diff --git a/frontend/src/metabase/parameters/utils/template-tag-options.unit.spec.js b/frontend/src/metabase/parameters/utils/template-tag-options.unit.spec.js
index 1f42b365cbbd66f6ec3f448205bbd0622eef09fd..b415c6131f16c44b9ca5e71f5a2f9f965fed7f08 100644
--- a/frontend/src/metabase/parameters/utils/template-tag-options.unit.spec.js
+++ b/frontend/src/metabase/parameters/utils/template-tag-options.unit.spec.js
@@ -1,5 +1,5 @@
 import _ from "underscore";
-import { PARAMETER_OPERATOR_TYPES } from "../constants";
+import { PARAMETER_OPERATOR_TYPES } from "metabase-lib/lib/parameters/constants";
 import {
   getParameterOptions,
   getParameterOptionsForField,
diff --git a/frontend/src/metabase/parameters/utils/ui.ts b/frontend/src/metabase/parameters/utils/ui.ts
index 671963df4d5475b54c879ad4da3bd8295151267b..32154c7f8e27f5acb3804af1dfd8ea863663e09e 100644
--- a/frontend/src/metabase/parameters/utils/ui.ts
+++ b/frontend/src/metabase/parameters/utils/ui.ts
@@ -2,8 +2,8 @@ import _ from "underscore";
 import { UiParameter } from "metabase/parameters/types";
 import { isEqualsOperator } from "metabase-lib/lib/operators/utils";
 
-import { getParameterType } from "./parameter-type";
-import { deriveFieldOperatorFromParameter } from "./operators";
+import { getParameterType } from "metabase-lib/lib/parameters/utils/parameter-type";
+import { deriveFieldOperatorFromParameter } from "metabase-lib/lib/parameters/utils/operators";
 
 export function getParameterIconName(parameter: UiParameter) {
   const type = getParameterType(parameter);