import type { Card, CardId, DashCardId, DashboardCard, DashboardId, DashboardTabId, VirtualCard } from "@metabase/embedding-sdk-react/dist/frontend/src/metabase-types/api";
import type { Dispatch, GetState } from "@metabase/embedding-sdk-react/dist/frontend/src/metabase-types/store";
import type { SectionLayout } from "../sections";
export type NewDashCardOpts = {
    dashId: DashboardId;
    tabId: DashboardTabId | null;
};
type NewDashboardCard = Omit<DashboardCard, "entity_id" | "created_at" | "updated_at">;
export type AddDashCardOpts = NewDashCardOpts & {
    dashcardOverrides: Partial<NewDashboardCard> & {
        card: Card | VirtualCard;
    };
};
export declare const MARK_NEW_CARD_SEEN = "metabase/dashboard/MARK_NEW_CARD_SEEN";
export declare const markNewCardSeen: import("redux-actions").ActionFunctionAny<import("redux-actions").Action<any>>;
export declare const addDashCardToDashboard: ({ dashId, tabId, dashcardOverrides }: AddDashCardOpts) => (dispatch: Dispatch, getState: GetState) => {
    id: number;
    row: number;
    card: Card<import("@metabase/embedding-sdk-react/dist/frontend/src/metabase-types/api").DatasetQuery> | (Partial<Omit<Card<import("@metabase/embedding-sdk-react/dist/frontend/src/metabase-types/api").DatasetQuery>, "name" | "dataset_query" | "visualization_settings">> & {
        name: null;
        dataset_query: Record<string, never>;
        display: import("@metabase/embedding-sdk-react/dist/frontend/src/metabase-types/api").VirtualCardDisplay;
        visualization_settings: Record<string, never>;
    });
    parameter_mappings?: import("@metabase/embedding-sdk-react/dist/frontend/src/metabase-types/api").ActionParametersMapping[] | import("@metabase/embedding-sdk-react/dist/frontend/src/metabase-types/api").DashboardParameterMapping[] | import("@metabase/embedding-sdk-react/dist/frontend/src/metabase-types/api").VirtualDashCardParameterMapping[] | null | undefined;
    col: number;
    size_x: number;
    size_y: number;
    dashboard_id: DashboardId;
    dashboard_tab_id: number | null;
    card_id: number | null;
    collection_authority_level?: import("@metabase/embedding-sdk-react/dist/frontend/src/metabase-types/api").CollectionAuthorityLevel | undefined;
    visualization_settings?: import("@metabase/embedding-sdk-react/dist/frontend/src/metabase-types/api").DashCardVisualizationSettings | (import("@metabase/embedding-sdk-react/dist/frontend/src/metabase-types/api").DashCardVisualizationSettings & {
        "button.label"?: string | undefined;
        click_behavior?: import("@metabase/embedding-sdk-react/dist/frontend/src/metabase-types/api").ClickBehavior | undefined;
        actionDisplayType?: import("@metabase/embedding-sdk-react/dist/frontend/src/metabase-types/api").ActionDisplayType | undefined;
        virtual_card: VirtualCard;
    }) | (import("@metabase/embedding-sdk-react/dist/frontend/src/metabase-types/api").DashCardVisualizationSettings & {
        virtual_card: VirtualCard;
        link?: import("@metabase/embedding-sdk-react/dist/frontend/src/metabase-types/api").LinkCardSettings | undefined;
    }) | undefined;
    justAdded?: boolean | undefined;
};
export type AddSectionOpts = NewDashCardOpts & {
    sectionLayout: SectionLayout;
};
export declare const addSectionToDashboard: ({ dashId, tabId, sectionLayout }: AddSectionOpts) => (dispatch: Dispatch, getState: GetState) => void;
export type AddCardToDashboardOpts = NewDashCardOpts & {
    cardId: CardId;
};
export declare const addCardToDashboard: ({ dashId, tabId, cardId }: AddCardToDashboardOpts) => (dispatch: Dispatch, getState: GetState) => Promise<void>;
export declare const addHeadingDashCardToDashboard: ({ dashId, tabId }: NewDashCardOpts) => (dispatch: Dispatch) => void;
export declare const addMarkdownDashCardToDashboard: ({ dashId, tabId }: NewDashCardOpts) => (dispatch: Dispatch) => void;
export declare const addLinkDashCardToDashboard: ({ dashId, tabId }: NewDashCardOpts) => (dispatch: Dispatch) => void;
export declare const replaceCard: ({ dashcardId, nextCardId, }: {
    dashcardId: DashCardId;
    nextCardId: CardId;
}) => (dispatch: Dispatch, getState: GetState) => Promise<void>;
export declare const removeCardFromDashboard: (args_0: {
    dashcardId: DashCardId;
    cardId: DashboardCard["card_id"];
}) => (dispatch: import("@reduxjs/toolkit").ThunkDispatch<any, any, any>, getState: GetState) => Promise<{
    type: "metabase/dashboard/REMOVE_CARD_FROM_DASH";
    payload: {
        dashcardId: number;
    };
}>;
export declare const undoRemoveCardFromDashboard: (args_0: any) => (dispatch: import("@reduxjs/toolkit").ThunkDispatch<any, any, any>, getState: GetState) => Promise<{
    type: "metabase/dashboard/UNDO_REMOVE_CARD_FROM_DASH";
    payload: {
        dashcardId: any;
    };
}>;
export {};
