import React, { FunctionComponent, ReactNode } from 'react';
import { VizzlyComponents, VizzlyTheming, trackEventCallback } from '../../types';
import { Component, ComponentType } from '../../../../shared-logic/src/Component/types';
import { DashboardBehaviour, FilterLibrary, LabelFormat } from '../../contexts/DashboardBehaviour/types';
import { Dashboard } from '../../../../shared-logic/src/Dashboard/types';
import { IdentityConfig } from '../../../../shared-logic/src/IdentityConfig/types';
import { StudioState } from '../../contexts/DashboardContext/types';
import { AIFunctions } from '../../contexts/AIProvider/types';
import { GlobalLibrary } from '../../../../shared-logic/src/GlobalLibrary';
import { SavingState } from '../../../../shared-logic/src/VizzlyState';
export declare type StudioProps = {
    vizzlyApiConfig?: VizzlyComponents.ApiConfig;
    runQueriesCallback: VizzlyComponents.runQueriesCallback;
    dashboardBehaviour: Omit<Partial<DashboardBehaviour>, 'featureToggles'> & {
        isProgrammaticParent: boolean;
        mode: DashboardBehaviour['mode'];
        scope: DashboardBehaviour['scope'];
        featureToggles?: Partial<DashboardBehaviour['featureToggles']>;
        id?: string;
    };
    ai: AIFunctions;
    includeComponents?: ComponentType[];
    excludeComponents?: ComponentType[];
    implementationMeta: VizzlyComponents.ImplementationMeta;
    theme?: VizzlyTheming.Base;
    onError?: VizzlyComponents.OnError;
    onViewClick?: (data: Component.OnViewClick, query?: Component.OnViewClickQuery) => void;
    renderTableCell?: (data: Component.RenderTableCell) => React.ReactNode | string | undefined;
    onReset: () => Promise<Dashboard | null>;
    identityConfig: IdentityConfig;
    dashboard: Dashboard;
    children?: ReactNode;
    componentEditor?: StudioState['componentEditor'];
    trackEvent?: trackEventCallback;
    labelFormat?: LabelFormat;
    filterLibrary?: FilterLibrary;
    editor?: {
        globalLibraries: GlobalLibrary.Base[];
    };
    saving: SavingState;
    dashboardHash?: string;
};
export declare const StudioContexts: FunctionComponent<StudioProps>;
