import type { Action } from "redux-actions";
import type { State } from "../../metabase-types/store";
import type { Undo } from "../../metabase-types/store/undo";
export declare const addUndo: (undo: any) => (dispatch: import("@reduxjs/toolkit").ThunkDispatch<any, any, any>, getState: import("..-types/store").GetState) => Promise<{
    type: "metabase/questions/ADD_UNDO";
    payload: any;
}>;
export declare const pauseUndo: import("redux-actions").ActionFunction1<Undo, Action<{
    pausedAt: number;
    timeoutId: null;
    id: string | number;
    type?: string | undefined;
    action?: (() => void) | null | undefined;
    message?: string | ((undo: Undo) => string) | undefined;
    timeout?: number | undefined;
    initialTimeout?: number | undefined;
    actions?: (() => void)[] | undefined;
    showProgress?: boolean | undefined;
    icon?: "string" | "number" | "function" | "dashboard" | "question" | "clipboard" | "share" | "ai" | "line" | "list" | "table" | "sort" | "filter" | "info" | "int" | "check" | "empty" | "key" | "unknown" | "lines" | "section" | "warning" | "return" | "segment" | "metric" | "field" | "database" | "fields" | "breakout" | "sum" | "pulse" | "snippet" | "collection" | "location" | "variable" | "search" | "model" | "external" | "history" | "move" | "person" | "sun" | "download" | "grid" | "revert" | "label" | "ellipsis" | "split" | "link" | "area" | "embed" | "progress" | "alert" | "document" | "group" | "tab" | "copy" | "add" | "add_column" | "add_data" | "add_row" | "add_to_dash" | "alert_filled" | "alert_confirm" | "archive" | "attachment" | "arrow_up" | "arrow_down" | "arrow_left" | "arrow_left_to_line" | "arrow_right" | "arrow_split" | "audit" | "badge" | "bar" | "bell" | "birthday" | "bookmark" | "bookmark_filled" | "bolt" | "bolt_filled" | "bubble" | "burger" | "calendar" | "chevrondown" | "chevronleft" | "chevronright" | "chevronup" | "click" | "clock" | "clone" | "close" | "cloud" | "cloud_filled" | "compare" | "combine" | "connections" | "contract" | "curved" | "dash" | "curve" | "dyno" | "edit_document" | "enter_or_return" | "expand" | "expand_arrow" | "extract" | "eye" | "eye_crossed_out" | "eye_outline" | "bug" | "formula" | "funnel" | "funnel_outline" | "folder" | "folder_filled" | "gauge" | "gear" | "gem" | "globe" | "grabber" | "google" | "home" | "horizontal_bar" | "hourglass" | "info_filled" | "info_outline" | "insight" | "io" | "join_full_outer" | "join_inner" | "join_left_outer" | "join_right_outer" | "index" | "ldap" | "learn" | "lightbulb" | "lineandbar" | "line_style_dashed" | "line_style_dotted" | "line_style_solid" | "lock" | "lock_filled" | "mail" | "mail_filled" | "model_with_badge" | "moon" | "move_card" | "new_folder" | "notebook" | "palette" | "pause" | "pencil" | "permissions_limited" | "pie" | "pin" | "pinmap" | "pivot_table" | "play" | "play_outlined" | "popover" | "popular" | "recents" | "sankey" | "sql" | "subscription" | "straight" | "stepped" | "sort_arrows" | "sync" | "reference" | "refresh" | "refresh_downstream" | "rocket" | "ruler" | "shield" | "sidebar_closed" | "sidebar_open" | "slack" | "slack_colorized" | "smartscalar" | "sparkles" | "star_filled" | "star" | "store" | "t-shirt" | "table2" | "time_history" | "trash" | "trash_filled" | "triangle_left" | "triangle_right" | "unarchive" | "unpin" | "upload" | "verified" | "official_collection" | "verified_filled" | "view_archive" | "warning_round_filled" | "waterfall" | "webhook" | "10k" | "1m" | "zoom_in" | "zoom_out" | "scalar" | "cake" | "table_spaced" | "beaker" | "eye_filled" | null | undefined;
    toastColor?: string | undefined;
    actionLabel?: string | undefined;
    canDismiss?: boolean | undefined;
    startedAt?: number | undefined;
    dismissIconColor?: string | undefined;
    extraInfo?: ({
        dashcardIds?: number[] | undefined;
        tabId?: number | undefined;
    } & Record<string, unknown>) | undefined;
    _domId?: string | number | undefined;
    count?: number | undefined;
    verb?: string | undefined;
    subject?: string | undefined;
}>>;
export declare const resumeUndo: (undo: any) => (dispatch: import("@reduxjs/toolkit").ThunkDispatch<any, any, any>, getState: import("..-types/store").GetState) => Promise<{
    type: "metabase/questions/RESUME_UNDO";
    payload: any;
}>;
export declare const getIsRecentlyAutoConnectedDashcard: ((state: any, _props: any, parameterId: any) => boolean) & {
    clearCache: () => void;
    resultsCount: () => number;
    resetResultsCount: () => void;
} & {
    resultFunc: (resultFuncArgs_0: Undo[], resultFuncArgs_1: any, resultFuncArgs_2: any) => boolean;
    memoizedResultFunc: ((resultFuncArgs_0: Undo[], resultFuncArgs_1: any, resultFuncArgs_2: any) => boolean) & {
        clearCache: () => void;
        resultsCount: () => number;
        resetResultsCount: () => void;
    };
    lastResult: () => boolean;
    dependencies: [((state: State) => Undo[]) & {
        clearCache: () => void;
        resultsCount: () => number;
        resetResultsCount: () => void;
    } & {
        resultFunc: (resultFuncArgs_0: import("..-types/store/undo").UndoState) => Undo[];
        memoizedResultFunc: ((resultFuncArgs_0: import("..-types/store/undo").UndoState) => Undo[]) & {
            clearCache: () => void;
            resultsCount: () => number;
            resetResultsCount: () => void;
        };
        lastResult: () => Undo[];
        dependencies: [(state: State) => import("..-types/store/undo").UndoState];
        recomputations: () => number;
        resetRecomputations: () => void;
        dependencyRecomputations: () => number;
        resetDependencyRecomputations: () => void;
    } & {
        argsMemoize: typeof import("reselect").weakMapMemoize;
        memoize: typeof import("reselect").weakMapMemoize;
    }, (_state: any, props: any) => any, (_state: any, _props: any, parameterId: any) => any];
    recomputations: () => number;
    resetRecomputations: () => void;
    dependencyRecomputations: () => number;
    resetDependencyRecomputations: () => void;
} & {
    argsMemoize: typeof import("reselect").weakMapMemoize;
    memoize: typeof import("reselect").weakMapMemoize;
};
export declare const dismissUndo: import("redux-actions").ActionFunction1<{
    undoId: Undo["id"];
}, Action<string | number>>;
export declare const dismissAllUndo: import("redux-actions").ActionFunctionAny<Action<any>>;
export declare const performUndo: (undoId: any) => (dispatch: import("@reduxjs/toolkit").ThunkDispatch<any, any, any>, getState: import("..-types/store").GetState) => Promise<{
    type: "metabase/questions/PERFORM_UNDO";
    payload: void;
}>;
export declare function undoReducer(state: Undo[] | undefined, { type, payload, error }: Action<Undo | Undo["id"]>): Undo[];
