import { AdditionalFilter } from '../AdditionalFilter/types';
import { Component } from '../Component/types';
import { DataSet } from '../DataSet/types';
import { CustomField } from '../CustomField/types';
import { Display, DisplayDumped } from '../Display/types';
import { StoredTheme } from '../Theme/types';
export declare type WebParentDashboard = Pick<Dashboard, 'id' | 'webhookId' | 'createdAt' | 'updatedAt'>;
export declare namespace Dashboard {
    type ExternalMetadata = {
        [key: string]: string | number;
    };
}
export declare type Dashboard = {
    id: string;
    name?: string | null;
    parentDashboardId: string | null;
    metadata: Dashboard.ExternalMetadata;
    /**
     * @deprecated
     */
    theme: StoredTheme;
    display: Display;
    webhookId: string | null;
    componentLibrary: Component[];
    dataSets: DataSet[];
    globalFilters: AdditionalFilter[];
    /** @deprecated */
    isPlayground: boolean;
    createdAt: Date;
    updatedAt: Date;
    /** @deprecated */
    protectedByOrganisation?: boolean;
    isProgrammatic?: boolean;
    permission?: {
        scope: 'read' | 'read_write';
        token: string;
    };
};
export declare type SaveableDashboardDefinition = {
    display: DisplayDumped;
    componentLibrary: Component.RawComponent[];
    globalFilters: Array<AdditionalFilter>;
    isPlayground: boolean;
    customFields: {
        [dataSetId: string]: Array<CustomField>;
    };
    project_id?: string;
    id?: string;
};
export declare type ImportableDashboard = Omit<Dashboard, 'id' | 'parentDashboardId' | 'webhookId' | 'createdAt' | 'updatedAt' | 'isProgrammatic' | 'theme' | 'data' | 'permission' | 'protectedByOrganisation' | 'isPlayground'>;
