import { type IAttributeWithReferences } from "@gooddata/sdk-backend-spi";
import { type ICatalogAttribute, type IInsight, type ISettings, type ObjRef } from "@gooddata/sdk-model";
/**
 * Determines if a visualization type supports the "Show as Table" UI button.
 * This controls whether users can manually toggle table view in the UI.
 *
 * @param insightType - The visualization type to check
 * @returns true if the visualization supports the Show as Table UI feature
 * @public
 */
export declare function supportsShowAsTable(insightType?: string): boolean;
/**
 * Determines if a visualization type can be converted to table format.
 * This is used for accessibility and export purposes, separate from UI controls.
 *
 * @param insightType - The visualization type to check
 * @returns true if the visualization can be converted to table format
 * @public
 */
export declare function canConvertToTable(insightType?: string): boolean;
type GeoTableConversionOptions = {
    settings?: ISettings;
    defaultDisplayFormRefs?: Map<string, ObjRef>;
};
/**
 * Defines a single layer's table conversion result for multi-layer geo charts.
 *
 * @alpha
 */
export interface ILayerTableDefinition {
    /** Stable id — "root" for root layer, layer.id for additional layers */
    layerId: string;
    /** Human-readable name for the tab label */
    layerName: string;
    /** Normalized layer type */
    layerType: string;
    /** Converted table insight for this layer */
    tableInsight: IInsight;
}
interface ILayerTableConversionOptions {
    settings?: ISettings;
    catalogAttributes?: ICatalogAttribute[];
    preloadedAttributesWithReferences?: IAttributeWithReferences[];
}
/**
 * Converts a multi-layer geo insight into per-layer table definitions.
 *
 * Returns `undefined` when the insight is not a new-geo type (flags off, non-geo, etc.).
 * Returns an array of {@link ILayerTableDefinition} with root layer first, then
 * additional layers in their original order.
 *
 * @internal
 */
export declare function convertGeoInsightToLayerTables(insight: IInsight, options: ILayerTableConversionOptions): ILayerTableDefinition[] | undefined;
/**
 * Converts an insight to layered table definitions.
 *
 * @remarks
 * Currently supports geo insights only and is gated by `enableGeoChartA11yImprovements`.
 *
 * @internal
 */
export declare function convertInsightToLayerTables(insight: IInsight, options: ILayerTableConversionOptions): ILayerTableDefinition[] | undefined;
/**
 * Converts any insight (except of type "table", "repeater", or "xirr") to a table insight definition.
 * For table, repeater, or xirr insights, returns the original insight.
 *
 * @param insight - The input insight to convert.
 * @returns IInsight with table visualization or the original insight if conversion is not supported.
 * @public
 */
export declare function convertInsightToTableDefinition(insight: IInsight, options?: GeoTableConversionOptions): IInsight;
export {};
//# sourceMappingURL=insightToTable.d.ts.map