import { Component as ComponentType } from '../Component/types';
import { DataSet } from '../DataSet/types';
import { CustomField } from '../CustomField/types';
import { Dashboard, SaveableDashboardDefinition, ImportableDashboard } from './types';
import { FieldUsage } from '@vizzly/api-client';
export * from './saveableDashboardDefinitionSchema';
export * from './fromRaw';
export declare const indexOfDataSet: (dashboard: Dashboard, dataSetId: string) => number;
export declare const getDataSet: (dashboard: Dashboard, dataSetId: string) => DataSet | null;
export declare const hasDataSet: (dashboard: Dashboard, dataSetId: string) => boolean;
export declare const getComponentsUsingDataSet: (dashboard: Dashboard, dataSetId: string) => ComponentType[];
export declare const toSaveableDefinition: (dashboard: Dashboard) => SaveableDashboardDefinition;
export declare const prepareDashboardForImport: (dashboardToImport: Dashboard | ImportableDashboard) => ImportableDashboard;
export declare const mergeDashboardInStateAndDashboardToImport: ({ dashboardToImport, dashboardInState, }: {
    dashboardToImport: ImportableDashboard;
    dashboardInState: Dashboard;
}) => Dashboard;
export declare const setDataSets: (dashboardWithoutDataSets: Omit<Dashboard, 'dataSets'>, dataSets: DataSet[], customFields: {
    [dataSetId: string]: CustomField[];
}) => Dashboard;
export declare const newSaveable: (overrides: Partial<SaveableDashboardDefinition>) => SaveableDashboardDefinition;
export declare const takePlaygroundDashboards: (dashboards: Dashboard[]) => Dashboard[];
export declare const takeLiveDashboards: (dashboards: Dashboard[]) => Dashboard[];
export declare const getDataSetsUsedOnDisplay: (dashboard: Dashboard) => Array<DataSet>;
export declare const getDataSetsUsedOnDashboard: (dashboard: Dashboard) => Array<DataSet>;
export declare const getCopiesOfParentDashboard: (parentDashboardId: string, dashboards: Dashboard[]) => Dashboard[];
export declare const getParentDashboards: (dashboards: Dashboard[]) => Dashboard[];
export declare const getFirstCreated: (dashboards: Dashboard[]) => Dashboard;
export declare const orderByLastUpdated: (dashboards: Dashboard[]) => Dashboard[];
export declare const takeMostRecentlyUpdated: (dashboards: Dashboard[]) => Dashboard | null;
export declare const find: (dashboards: Dashboard[], dashboardId: string) => Dashboard | null;
export declare const updateLibraryWithProtectedComponents: (dashboards: Dashboard[]) => Dashboard[];
export declare function resetToParentDashboard(dashboard: Dashboard, dashboards: Dashboard[], parentDashboardId: string): Dashboard;
export declare const buildProgrammaticDashboard: (programaticDashboards: Partial<SaveableDashboardDefinition>[], dataSets: DataSet[]) => Dashboard[];
export declare const VIZZLY_EDITOR_ID = "vizzly_editor";
export declare function updateWithProgrammaticDashboard(allDashboards: Dashboard[], programmaticDashboards: Dashboard[]): Dashboard[];
export declare const addUniqueLibraryComponents: (programmaticLibrary: ComponentType[], dashboardLibrary: ComponentType[]) => ComponentType[];
export declare const checkAndReturnProgrammaticDashboardId: (dashboards: Dashboard[]) => string | undefined;
export declare const getFieldUsage: (dashboardDefinition: SaveableDashboardDefinition, dataSets: DataSet[]) => FieldUsage;
