import type { Location, Query } from "history";
import type { ReactNode } from "react";
import type { Route } from "react-router";
import { type NewDashCardOpts, type SetDashboardAttributesOpts, type navigateToNewCardFromDashboard } from "@metabase/embedding-sdk-react/dist/frontend/src/metabase/dashboard/actions";
import type { DashboardControlsPassedProps } from "@metabase/embedding-sdk-react/dist/frontend/src/metabase/dashboard/hoc/types";
import type { FetchDashboardResult } from "@metabase/embedding-sdk-react/dist/frontend/src/metabase/dashboard/types";
import type { Dashboard as IDashboard, DashboardId, CardId, DashboardTabId, DashCardId, ParameterId, ParameterMappingOptions, ParameterValueOrArray, RowValue, ValuesQueryType, ValuesSourceConfig, ValuesSourceType, VisualizationSettings } from "@metabase/embedding-sdk-react/dist/frontend/src/metabase-types/api";
import type { DashboardSidebarName, SelectedTabId, State, StoreDashcard } from "@metabase/embedding-sdk-react/dist/frontend/src/metabase-types/store";
export type DashboardProps = {
    route: Route;
    params: {
        slug: string;
    };
    children?: ReactNode;
    canManageSubscriptions: boolean;
    isAdmin: boolean;
    isNavbarOpen: boolean;
    isEditing: boolean;
    isSharing: boolean;
    dashboardBeforeEditing: IDashboard | null;
    isEditingParameter: boolean;
    isDirty: boolean;
    dashboard: IDashboard | null;
    slowCards: Record<DashCardId, boolean>;
    parameterValues: Record<ParameterId, ParameterValueOrArray>;
    loadingStartTime: number | null;
    clickBehaviorSidebarDashcard: StoreDashcard | null;
    isAddParameterPopoverOpen: boolean;
    sidebar: State["dashboard"]["sidebar"];
    isHeaderVisible: boolean;
    isAdditionalInfoVisible: boolean;
    selectedTabId: SelectedTabId;
    isNavigatingBackToDashboard: boolean;
    addCardOnLoad?: DashCardId;
    editingOnLoad?: string | string[] | boolean;
    initialize: (opts?: {
        clearCache?: boolean;
    }) => void;
    cancelFetchDashboardCardData: () => void;
    addCardToDashboard: (opts: {
        dashId: DashboardId;
        cardId: CardId;
        tabId: DashboardTabId | null;
    }) => void;
    addHeadingDashCardToDashboard: (opts: NewDashCardOpts) => void;
    addMarkdownDashCardToDashboard: (opts: NewDashCardOpts) => void;
    addLinkDashCardToDashboard: (opts: NewDashCardOpts) => void;
    setEditingDashboard: (dashboard: IDashboard | null) => void;
    setDashboardAttributes: (opts: SetDashboardAttributesOpts) => void;
    setSharing: (isSharing: boolean) => void;
    toggleSidebar: (sidebarName: DashboardSidebarName) => void;
    closeSidebar: () => void;
    closeNavbar: () => void;
    setErrorPage: (error: unknown) => void;
    onChangeLocation: (location: Location) => void;
    addParameter: (option: ParameterMappingOptions) => void;
    setParameterName: (id: ParameterId, name: string) => void;
    setParameterType: (id: ParameterId, type: string) => void;
    navigateToNewCardFromDashboard: typeof navigateToNewCardFromDashboard;
    setParameterDefaultValue: (id: ParameterId, value: RowValue) => void;
    setParameterRequired: (id: ParameterId, value: boolean) => void;
    setParameterTemporalUnits: (id: ParameterId, value: boolean) => void;
    setParameterIsMultiSelect: (id: ParameterId, isMultiSelect: boolean) => void;
    setParameterQueryType: (id: ParameterId, queryType: ValuesQueryType) => void;
    setParameterSourceType: (id: ParameterId, sourceType: ValuesSourceType) => void;
    setParameterSourceConfig: (id: ParameterId, config: ValuesSourceConfig) => void;
    setParameterFilteringParameters: (parameters: ParameterId[]) => void;
    showAddParameterPopover: () => void;
    removeParameter: (id: ParameterId) => void;
    onReplaceAllDashCardVisualizationSettings: (id: DashCardId, settings: Partial<VisualizationSettings>) => void;
    onUpdateDashCardVisualizationSettings: (id: DashCardId, settings: Partial<VisualizationSettings>) => void;
    onUpdateDashCardColumnSettings: (id: DashCardId, columnKey: string, settings?: Record<string, unknown> | null) => void;
    updateDashboardAndCards: () => void;
    setSidebar: (opts: {
        name: DashboardSidebarName;
    }) => void;
    hideAddParameterPopover: () => void;
    fetchDashboard: (opts: {
        dashId: DashboardId;
        queryParams?: Query;
        options?: {
            clearCache?: boolean;
            preserveParameters?: boolean;
        };
    }) => Promise<FetchDashboardResult>;
    fetchDashboardCardData: (opts?: {
        isRefreshing?: boolean;
        reload?: boolean;
        clearCache?: boolean;
    }) => void;
} & DashboardControlsPassedProps;
export declare const Dashboard: import("react").ComponentType<{
    route: Route;
    params: {
        slug: string;
    };
    children?: ReactNode;
    canManageSubscriptions: boolean;
    isAdmin: boolean;
    isNavbarOpen: boolean;
    isEditing: boolean;
    isSharing: boolean;
    dashboardBeforeEditing: IDashboard | null;
    isEditingParameter: boolean;
    isDirty: boolean;
    dashboard: IDashboard | null;
    slowCards: Record<DashCardId, boolean>;
    parameterValues: Record<ParameterId, ParameterValueOrArray>;
    loadingStartTime: number | null;
    clickBehaviorSidebarDashcard: StoreDashcard | null;
    isAddParameterPopoverOpen: boolean;
    sidebar: State["dashboard"]["sidebar"];
    isHeaderVisible: boolean;
    isAdditionalInfoVisible: boolean;
    selectedTabId: SelectedTabId;
    isNavigatingBackToDashboard: boolean;
    addCardOnLoad?: number | undefined;
    editingOnLoad?: string | boolean | string[] | undefined;
    initialize: (opts?: {
        clearCache?: boolean;
    }) => void;
    cancelFetchDashboardCardData: () => void;
    addCardToDashboard: (opts: {
        dashId: DashboardId;
        cardId: CardId;
        tabId: DashboardTabId | null;
    }) => void;
    addHeadingDashCardToDashboard: (opts: NewDashCardOpts) => void;
    addMarkdownDashCardToDashboard: (opts: NewDashCardOpts) => void;
    addLinkDashCardToDashboard: (opts: NewDashCardOpts) => void;
    setEditingDashboard: (dashboard: IDashboard | null) => void;
    setDashboardAttributes: (opts: SetDashboardAttributesOpts) => void;
    setSharing: (isSharing: boolean) => void;
    toggleSidebar: (sidebarName: DashboardSidebarName) => void;
    closeSidebar: () => void;
    closeNavbar: () => void;
    setErrorPage: (error: unknown) => void;
    onChangeLocation: (location: Location) => void;
    addParameter: (option: ParameterMappingOptions) => void;
    setParameterName: (id: ParameterId, name: string) => void;
    setParameterType: (id: ParameterId, type: string) => void;
    navigateToNewCardFromDashboard: typeof navigateToNewCardFromDashboard;
    setParameterDefaultValue: (id: ParameterId, value: RowValue) => void;
    setParameterRequired: (id: ParameterId, value: boolean) => void;
    setParameterTemporalUnits: (id: ParameterId, value: boolean) => void;
    setParameterIsMultiSelect: (id: ParameterId, isMultiSelect: boolean) => void;
    setParameterQueryType: (id: ParameterId, queryType: ValuesQueryType) => void;
    setParameterSourceType: (id: ParameterId, sourceType: ValuesSourceType) => void;
    setParameterSourceConfig: (id: ParameterId, config: ValuesSourceConfig) => void;
    setParameterFilteringParameters: (parameters: ParameterId[]) => void;
    showAddParameterPopover: () => void;
    removeParameter: (id: ParameterId) => void;
    onReplaceAllDashCardVisualizationSettings: (id: DashCardId, settings: Partial<VisualizationSettings>) => void;
    onUpdateDashCardVisualizationSettings: (id: DashCardId, settings: Partial<VisualizationSettings>) => void;
    onUpdateDashCardColumnSettings: (id: DashCardId, columnKey: string, settings?: Record<string, unknown> | null) => void;
    updateDashboardAndCards: () => void;
    setSidebar: (opts: {
        name: DashboardSidebarName;
    }) => void;
    hideAddParameterPopover: () => void;
    fetchDashboard: (opts: {
        dashId: DashboardId;
        queryParams?: Query;
        options?: {
            clearCache?: boolean;
            preserveParameters?: boolean;
        };
    }) => Promise<FetchDashboardResult>;
    fetchDashboardCardData: (opts?: {
        isRefreshing?: boolean;
        reload?: boolean;
        clearCache?: boolean;
    }) => void;
} & import("@metabase/embedding-sdk-react/dist/frontend/src/metabase/dashboard/types").EmbedThemeControls & import("@metabase/embedding-sdk-react/dist/frontend/src/metabase/dashboard/types").EmbedTitledControls & import("@metabase/embedding-sdk-react/dist/frontend/src/metabase/dashboard/types").EmbedHideDownloadButtonControls & import("@metabase/embedding-sdk-react/dist/frontend/src/metabase/dashboard/types").EmbedHideParametersControls & import("@metabase/embedding-sdk-react/dist/frontend/src/metabase/dashboard/types").EmbedFontControls & import("@metabase/embedding-sdk-react/dist/frontend/src/metabase/dashboard/types").DashboardFullscreenControls & import("@metabase/embedding-sdk-react/dist/frontend/src/metabase/dashboard/types").DashboardRefreshPeriodControls & import("@metabase/embedding-sdk-react/dist/frontend/src/metabase/dashboard/hoc/types").DashboardControlsProps & {
    parameterQueryParams: {
        [key: string]: string | string[] | null | undefined;
    };
}>;
