import { type ObjRef } from "@gooddata/sdk-model";
import { type ITigerDashboardAttributeFilterConfig, type ITigerDashboardDateFilterConfig, type ITigerDashboardLayout, type ITigerDashboardTab, type ITigerFilterContextItem } from "./TigerTypes.js";
/**
 * @public
 */
export interface IDashboardDateFilterConfigItem {
    dateDataSet: ObjRef;
    config: ITigerDashboardDateFilterConfig;
}
/**
 * Dashboard tab definition.
 *
 * @remarks
 * This is an alias for ITigerDashboardTab for backward compatibility.
 *
 * @public
 */
export type IDashboardTab = ITigerDashboardTab;
/**
 * @public
 */
export interface IAnalyticalDashboard {
    version: "2";
    layout?: ITigerDashboardLayout;
    filterContextRef?: ObjRef;
    dateFilterConfig?: ITigerDashboardDateFilterConfig;
    dateFilterConfigs?: IDashboardDateFilterConfigItem[];
    attributeFilterConfigs?: ITigerDashboardAttributeFilterConfig[];
    plugins?: IDashboardPluginLink[];
    disableCrossFiltering?: boolean;
    disableUserFilterReset?: boolean;
    disableUserFilterSave?: boolean;
    disableFilterViews?: boolean;
    evaluationFrequency?: string;
    sectionHeadersDateDataSet?: ObjRef;
    /**
     * Optional tabs configuration; when defined, the dashboard renders as a tabbed interface.
     * Each tab has its own layout, filter context and filter configs.
     *
     * @alpha
     */
    tabs?: ITigerDashboardTab[];
}
/**
 * @public
 */
export interface IFilterContext {
    version: "2";
    filters: ITigerFilterContextItem[];
}
/**
 * @alpha
 */
export interface IFilterContextWithTab extends IFilterContext {
    tabLocalIdentifier?: string;
}
/**
 * @public
 */
export interface IDashboardPlugin {
    version: "2";
    url: string;
}
/**
 * @public
 */
export interface IDashboardPluginLink {
    version: "2";
    plugin: ObjRef;
    parameters?: string;
}
/**
 * @public
 */
export declare function isAnalyticalDashboard(dashboard: unknown): dashboard is IAnalyticalDashboard;
/**
 * @public
 */
export declare function isFilterContext(filterContext: unknown): filterContext is IFilterContext;
/**
 * @alpha
 */
export declare function isFilterContextWithTab(filterContext: unknown): filterContext is IFilterContextWithTab;
/**
 * @public
 */
export declare function isDashboardPlugin(plugin: unknown): plugin is IDashboardPlugin;
/**
 * @public
 */
export declare function isDashboardPluginLink(pluginLink: unknown): pluginLink is IDashboardPluginLink;
/**
 * @alpha
 */
export declare function isDashboardTab(tab: unknown): tab is ITigerDashboardTab;
//# sourceMappingURL=AnalyticalDashboardModelV2.d.ts.map