import type { Draft } from "@reduxjs/toolkit";
import type { DashCardId, DashboardId, DashboardTabId } from "@metabase/embedding-sdk-react/dist/frontend/src/metabase-types/api";
import type { DashboardState, Dispatch, GetState, StoreDashboard, TabDeletionId } from "@metabase/embedding-sdk-react/dist/frontend/src/metabase-types/store";
type CreateNewTabPayload = {
    tabId: DashboardTabId;
};
type DuplicateTabPayload = {
    sourceTabId: DashboardTabId | null;
    newTabId: DashboardTabId;
};
type DeleteTabPayload = {
    tabId: DashboardTabId | null;
    tabDeletionId: TabDeletionId;
};
type UndoDeleteTabPayload = {
    tabDeletionId: TabDeletionId;
};
type RenameTabPayload = {
    tabId: DashboardTabId | null;
    name: string;
};
type MoveTabPayload = {
    sourceTabId: DashboardTabId;
    destinationTabId: DashboardTabId;
};
type SelectTabPayload = {
    tabId: DashboardTabId | null;
};
type MoveDashCardToTabPayload = {
    dashCardId: DashCardId;
    destinationTabId: DashboardTabId;
};
type UndoMoveDashCardToTabPayload = {
    dashCardId: DashCardId;
    originalCol: number;
    originalRow: number;
    originalTabId: number;
};
type InitTabsPayload = {
    slug: string | undefined;
};
export declare function resetTempTabId(): void;
export declare function createNewTab(): {
    payload: CreateNewTabPayload;
    type: string;
};
export declare function duplicateTab(sourceTabId: DashboardTabId | null): {
    payload: DuplicateTabPayload;
    type: string;
};
export declare const selectTab: import("@reduxjs/toolkit").ActionCreatorWithPayload<SelectTabPayload, string>;
export declare const deleteTab: import("@reduxjs/toolkit").ActionCreatorWithPayload<DeleteTabPayload, string>;
export declare const undoDeleteTab: import("@reduxjs/toolkit").ActionCreatorWithPayload<UndoDeleteTabPayload, string>;
export declare const renameTab: import("@reduxjs/toolkit").ActionCreatorWithPayload<RenameTabPayload, string>;
export declare const moveTab: import("@reduxjs/toolkit").ActionCreatorWithPayload<MoveTabPayload, string>;
export declare const moveDashCardToTab: ({ destinationTabId, dashCardId }: MoveDashCardToTabPayload) => (dispatch: Dispatch, getState: GetState) => void;
export declare const undoMoveDashCardToTab: import("@reduxjs/toolkit").ActionCreatorWithPayload<UndoMoveDashCardToTabPayload, string>;
export declare const initTabs: import("@reduxjs/toolkit").ActionCreatorWithPayload<InitTabsPayload, string>;
export declare function getPrevDashAndTabs({ state, filterRemovedTabs, }: {
    state: Draft<DashboardState> | DashboardState;
    filterRemovedTabs?: boolean;
}): {
    dashId: DashboardId | null;
    prevDash: StoreDashboard | null;
    prevTabs: import("@metabase/embedding-sdk-react/dist/frontend/src/metabase-types/store").StoreDashboardTab[];
};
export declare function getDefaultTab({ tabId, dashId, name, }: {
    tabId: DashboardTabId;
    dashId: DashboardId;
    name: string;
}): {
    id: number;
    dashboard_id: DashboardId;
    name: string;
};
export declare function getIdFromSlug(slug: string | undefined): number | undefined;
export declare const tabsReducer: import("@reduxjs/toolkit/dist/createReducer").ReducerWithInitialState<DashboardState>;
export {};
