import { type IAttributeWithReferences } from "@gooddata/sdk-backend-spi";
import type { IDashboardFilterGroupsConfig } from "@gooddata/sdk-model";
import { type IAttributeFilterConfigsState } from "./attributeFilterConfigs/attrtibuteFilterConfigsState.js";
import type { IDateFilterConfigState } from "./dateFilterConfig/dateFilterConfigState.js";
import { type IDateFilterConfigsState } from "./dateFilterConfigs/dateFilterConfigsState.js";
import type { FilterContextState } from "./filterContext/filterContextState.js";
import type { ILayoutState } from "./layout/layoutState.js";
import { type IMeasureValueFilterConfigsState } from "./measureValueFilterConfigs/measureValueFilterConfigsState.js";
/**
 * Identifier used for dashboards without explicit tabs support and the first tab created automatically.
 *
 * @internal
 */
export declare const DEFAULT_TAB_ID = "defaultTabId";
export declare const getActiveTab: (state: ITabsState) => ITabState | undefined;
/**
 * Gets a tab by its local identifier, or the active tab if no identifier is provided.
 *
 * @param state - The tabs state
 * @param tabLocalIdentifier - Optional tab local identifier. If not provided, returns the active tab.
 * @returns The tab state or undefined if not found
 *
 * @internal
 */
export declare const getTabOrActive: (state: ITabsState, tabLocalIdentifier?: string | undefined) => ITabState | undefined;
/**
 * @alpha
 */
export interface ITabState {
    title?: string;
    localIdentifier: string;
    dateFilterConfig?: IDateFilterConfigState;
    dateFilterConfigs?: IDateFilterConfigsState;
    attributeFilterConfigs?: IAttributeFilterConfigsState;
    measureValueFilterConfigs?: IMeasureValueFilterConfigsState;
    filterContext?: FilterContextState;
    filterGroupsConfig?: IDashboardFilterGroupsConfig;
    layout?: ILayoutState;
    /**
     * UI-only flag indicating the tab is currently being renamed.
     * @internal
     */
    isRenaming?: boolean;
}
/**
 * @alpha
 */
export interface ITabsState {
    /**
     * Array of tabs with their configurations.
     */
    tabs?: ITabState[];
    /**
     * Local identifier of the currently active tab.
     */
    activeTabLocalIdentifier?: string;
    /**
     * Attribute metadata objects with referenced objects for all attribute filters across all tabs.
     * @beta
     */
    attributesWithReferences?: IAttributeWithReferences[];
}
export declare const tabsInitialState: ITabsState;
//# sourceMappingURL=tabsState.d.ts.map