import { Dimension, Filter, FilterRelations, FilterRelationsModel, FilterRelationsModelNode, Measure } from '@sisense/sdk-data';
import { JtdTarget, JumpToDashboardConfig, JumpToDashboardConfigForPivot, TriggerMethod } from '../../../domains/dashboarding/hooks/jtd/jtd-types';
import { TabbersConfig } from '../../../domains/dashboarding/hooks/use-tabber';
import { Panel, WidgetDto } from '../../../domains/widgets/components/widget-by-id/types';
import { RestApi } from '../../../infra/api/rest-api';
import { type CascadingFilterDto, DashboardDto, type FilterDto, type LayoutDto } from '../../../infra/api/types/dashboard-dto';
import type { SpecificWidgetOptions, WidgetsOptions, WidgetsPanelColumnLayout } from './types';
type WidgetJtdDtoSlice = Pick<WidgetDto, 'oid' | 'type' | 'metadata' | 'drillToDashboardConfig'>;
export declare const translateLayout: (layout: LayoutDto) => WidgetsPanelColumnLayout;
export declare function extractDashboardFilters(dashboardFilters: Array<FilterDto | CascadingFilterDto>, filterRelationsModel?: FilterRelationsModel | FilterRelationsModelNode): Filter[] | FilterRelations;
export declare const getJtdNavigateType: (widget: WidgetJtdDtoSlice) => TriggerMethod;
export declare const convertDimensionsToDimIndexes: (widget: WidgetJtdDtoSlice, dimensionIds: string[]) => string[];
/**
 * Extract pivot targets configuration from widget DTO and build Map-based targets
 *
 * @param widget - Widget DTO with drillToDashboardConfig
 * @returns Map of dimensions/measures to their targets or undefined if no targets found
 * @internal
 */
export declare function extractPivotTargetsConfigFromWidgetDto(widget: WidgetJtdDtoSlice): Map<Dimension | {
    dimension: Dimension;
    location: 'row' | 'column' | 'value';
} | Measure, JtdTarget[]> | undefined;
/**
 * Converts a Fusion {@link WidgetDto}'s `drillToDashboardConfig` into Compose SDK JumpToDashboardConfig | JumpToDashboardConfigForPivot
 * {@link JumpToDashboardConfig} {@link JumpToDashboardConfigForPivot} for use with {@link useJtdWidget}
 *
 * @param widget - Fusion widget DTO (or the subset of fields used for JTD translation)
 * @returns JTD config, or `undefined` when there is no versioned JTD DTO or the widget type does not support JTD
 *
 * @group Dashboards
 */
export declare function jumpToDashboardConfigFromWidgetDto(widget: WidgetJtdDtoSlice): JumpToDashboardConfig | JumpToDashboardConfigForPivot | undefined;
export declare function translateWidgetsOptions(widgets?: WidgetDto[]): WidgetsOptions;
/**
 * Applies {@link SpecificWidgetOptions} to a {@link WidgetDto}.
 * Merges filtersOptions and jtdConfig into the DTO for persistence.
 *
 * @internal
 */
export declare function withSpecificWidgetOptions(widgetOptions?: SpecificWidgetOptions): (widgetDto: WidgetDto) => WidgetDto;
export declare function translateTabbersOptions(widgets?: WidgetDto[]): TabbersConfig;
/**
 * Replace all shared formulas, which defined by id references, in the dashboard with their actual values.
 *
 * @param dashboard - The dashboard DTO to replace shared formulas in
 * @param api - The REST API instance
 * @returns The dashboard DTO with shared formulas, defined by id references, replaced
 * @internal
 */
export declare function withSharedFormulas(dashboard: DashboardDto, api: RestApi): Promise<DashboardDto>;
/**
 * Find dimension or measure by instanceId in widget panels and convert to proper type
 *
 * @param panels - Widget metadata panels to search
 * @param pivotDimension - Instance ID to find, this is not a PivotDimId, it is the instanceId of the dimension or measure
 * @returns Dimension/Measure object with optional location info or undefined if not found
 * @internal
 */
export declare function findDimensionByInstanceId(panels: Panel[], pivotDimension: string): Dimension | Measure | {
    dimension: Dimension;
    location: 'row' | 'column' | 'value';
} | undefined;
export {};
