import type { Query } from "history";
import type { ReactNode } from "react";
import { type NewDashCardOpts, type SetDashboardAttributesOpts } from "@metabase/embedding-sdk-react/dist/frontend/src/metabase/dashboard/actions";
import type { NavigateToNewCardFromDashboardOpts } from "@metabase/embedding-sdk-react/dist/frontend/src/metabase/dashboard/components/DashCard/types";
import type { CancelledFetchDashboardResult, DashboardDisplayOptionControls, FetchDashboardResult } from "@metabase/embedding-sdk-react/dist/frontend/src/metabase/dashboard/types";
import type { CardId, DashCardId, DashCardVisualizationSettings, DashboardCard, DashboardId, DashboardTabId, Dashboard as IDashboard, ParameterId, ParameterValueOrArray, TemporalUnit, ValuesQueryType, ValuesSourceConfig, ValuesSourceType } from "@metabase/embedding-sdk-react/dist/frontend/src/metabase-types/api";
import type { DashboardSidebarName, SelectedTabId, State } from "@metabase/embedding-sdk-react/dist/frontend/src/metabase-types/store";
export type DashboardProps = {
    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: DashboardCard | null;
    isAddParameterPopoverOpen: boolean;
    sidebar: State["dashboard"]["sidebar"];
    isHeaderVisible: boolean;
    isAdditionalInfoVisible: boolean;
    selectedTabId: SelectedTabId;
    isNavigatingBackToDashboard: boolean;
    addCardOnLoad?: DashCardId;
    editingOnLoad?: string | string[] | boolean;
    dashboardId: DashboardId;
    parameterQueryParams: Query;
    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;
    setParameterName: (id: ParameterId, name: string) => void;
    setParameterType: (id: ParameterId, type: string, sectionId: string) => void;
    navigateToNewCardFromDashboard: (opts: NavigateToNewCardFromDashboardOpts) => void;
    setParameterDefaultValue: (id: ParameterId, value: unknown) => void;
    setParameterRequired: (id: ParameterId, value: boolean) => void;
    setParameterTemporalUnits: (id: ParameterId, temporalUnits: TemporalUnit[]) => 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: (parameterId: ParameterId, filteringParameters: ParameterId[]) => void;
    showAddParameterPopover: () => void;
    removeParameter: (id: ParameterId) => void;
    onReplaceAllDashCardVisualizationSettings: (id: DashCardId, settings: DashCardVisualizationSettings | null | undefined) => void;
    onUpdateDashCardVisualizationSettings: (id: DashCardId, settings: DashCardVisualizationSettings | null | undefined) => 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;
} & DashboardDisplayOptionControls;
declare function Dashboard(props: DashboardProps): import("react/jsx-runtime").JSX.Element;
export declare function isCancelledFetchDashboardResult(result: FetchDashboardResult): result is CancelledFetchDashboardResult;
export { Dashboard };
