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";
import { type NewDashboardCard } from "../utils";
export type NewDashCardOpts = {
    dashId: DashboardId;
    tabId: DashboardTabId | null;
};
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("@reduxjs/toolkit").ActionCreatorWithPayload<number, string>;
export declare const addCardToDash: import("@reduxjs/toolkit").ActionCreatorWithPayload<NewDashboardCard, string>;
export declare const addManyCardsToDash: import("@reduxjs/toolkit").ActionCreatorWithPayload<NewDashboardCard[], string>;
export declare const addDashCardToDashboard: ({ dashId, tabId, dashcardOverrides }: AddDashCardOpts) => (dispatch: Dispatch, getState: GetState) => NewDashboardCard;
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 addIFrameDashCardToDashboard: ({ 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;
    };
}>;
