import React, { FunctionComponent } from 'react';
import { Component, ComponentType } from '../../../../shared-logic/src/Component/types';
import { Dashboard } from '../../../../shared-logic/src/Dashboard';
import { VizzlyComponents } from '../../types';
import { UseVariableState } from '../Variables/types';
import { DashboardBehaviour as DashboardBehaviourType, FilterLibrary, LabelFormat, TextOverride } from './types';
export interface DashboardBehaviourProps {
    children: React.ReactNode;
    excludeComponentTypes?: ComponentType[];
    includeComponentTypes?: ComponentType[];
    mode: DashboardBehaviourType['mode'];
    isProgrammaticParent: boolean;
    onError?: VizzlyComponents.OnError;
    dashboardBehaviour?: Partial<Omit<DashboardBehaviourType, 'mode' | 'featureToggles'> & {
        featureToggles: Partial<DashboardBehaviourType['featureToggles']>;
    }>;
    onViewClick?: (data: Component.OnViewClick, loadUnderlyingData?: Component.OnViewClickQuery) => void;
    renderTableCell?: (data: Component.RenderTableCell) => React.ReactNode | string | undefined;
    disableToolbar?: boolean;
    cascadeFilterSelection?: boolean;
    onReset: () => Promise<Dashboard | null>;
    textOverride?: TextOverride;
    labelFormat?: LabelFormat;
    filterLibrary?: FilterLibrary;
    pdfSettings?: DashboardBehaviourType['pdfSettings'];
    id?: string;
    valueAlias?: DashboardBehaviourType['valueAlias'];
    componentOverrides: Partial<VizzlyComponents.ComponentOverrides>;
    variables?: UseVariableState;
    scheduledReports?: DashboardBehaviourType['scheduledReports'];
    onScheduledReportChange?: DashboardBehaviourType['onScheduledReportChange'];
    checkSharedFieldUsageAcrossDashboards?: DashboardBehaviourType['checkSharedFieldUsageAcrossDashboards'];
}
declare type ProvidedValues = DashboardBehaviourType & {
    setOverrideDeveloperInfo: (developerInfo: DashboardBehaviourType['overrideDeveloperInfo']) => void;
};
export declare const DashboardBehaviourContext: React.Context<ProvidedValues>;
export declare const DashboardBehaviourContextProvider: FunctionComponent<DashboardBehaviourProps>;
export declare const useDashboardBehaviourContext: () => ProvidedValues;
export {};
