import type Question from "../../../metabase-lib/v1/Question";
import type { BaseDashboardCard, Card, NativeParameterDimensionTarget, Parameter, ParameterTarget, ParameterVariableTarget, StructuredParameterDimensionTarget, WritebackParameter } from "../../../metabase-types/api";
export type StructuredQuerySectionOption = {
    sectionName: string;
    name: string;
    icon: string;
    target: StructuredParameterDimensionTarget;
    isForeign: boolean;
};
type VirtualDashcardParameterMappingOption = {
    name: string;
    icon: string;
    isForeign: boolean;
    target: ParameterTarget;
};
type ActionDashcardParameterMappingOption = WritebackParameter & {
    icon: string;
    isForeign: boolean;
    hasVariableTemplateTagTarget?: boolean;
};
type NativeParameterMappingOption = {
    name: string;
    icon: string;
    isForeign: boolean;
    target: NativeParameterDimensionTarget | ParameterVariableTarget;
};
export type ParameterMappingOption = VirtualDashcardParameterMappingOption | ActionDashcardParameterMappingOption | StructuredQuerySectionOption | NativeParameterMappingOption;
export declare function getParameterMappingOptions(question: Question | undefined, parameter: Parameter | null | undefined, card: Card, dashcard?: BaseDashboardCard | null | undefined): ParameterMappingOption[];
export declare function getMappingOptionByTarget(mappingOptions: ParameterMappingOption[], target?: ParameterTarget | null, question?: Question, parameter?: Parameter): ParameterMappingOption | undefined;
export {};
