import { type IAttribute, type IInsightDefinition, type ObjRef } from "@gooddata/sdk-model";
import { type IBucketItem, type IVisualizationProperties } from "../../../interfaces/Visualization.js";
/**
 * Extracts visualization controls from insight properties.
 *
 * @param insight - The insight definition
 * @returns Visualization controls or empty object
 * @internal
 */
export declare function extractControls(insight: IInsightDefinition): IVisualizationProperties;
/**
 * Gets the latitude attribute from the insight's LOCATION bucket.
 *
 * @remarks
 * The LOCATION bucket contains the primary geo attribute (latitude label).
 * This is used for backward compatibility with the bucket structure.
 *
 * @param insight - The insight definition
 * @returns Latitude attribute or undefined if not present
 * @internal
 */
export declare function getLatitudeAttribute(insight: IInsightDefinition): IAttribute | undefined;
/**
 * Extracts identifier or URI from an ObjRef.
 *
 * @param ref - Object reference to extract from
 * @returns URI string, identifier string, or undefined
 * @internal
 */
export declare function getRefIdentifier(ref: ObjRef | undefined): string | undefined;
/**
 * Creates an ObjRef for an attribute, using URI or ID based on the location attribute format.
 *
 * @param locationAttribute - The location attribute to match format against
 * @param attributeId - Display form ID or URI to use
 * @returns Object reference (URI or ID based)
 * @internal
 */
export declare function createAttributeRef(locationAttribute: IAttribute, attributeId: string): ObjRef;
/**
 * Extracts location-related properties for tooltip text, latitude, and longitude display forms.
 *
 * @param locationItem - The location bucket item containing display forms
 * @param supportsSeparateLatLong - Whether backend supports separate lat/long labels
 * @returns Object with tooltipText and optionally latitude/longitude identifiers
 * @internal
 */
export declare function getLocationProperties(locationItem: IBucketItem): {
    tooltipText: string | undefined;
    latitude?: string | undefined;
    longitude?: string | undefined;
};
/**
 * Gets the alias and local identifier from a location attribute.
 *
 * @param locationAttribute - The location attribute
 * @param customLocalId - Optional custom local identifier to use
 * @returns Object with alias and localId
 * @internal
 */
export declare function getAttributeMetadata(locationAttribute: IAttribute, customLocalId?: string): {
    alias: string | undefined;
    localId: string;
};
/**
 * Returns controls attached to the primary pushpin layer in the insight definition.
 *
 * @internal
 */
export declare function getPrimaryLayerControls(insight: IInsightDefinition): {
    latitude?: string;
    longitude?: string;
    tooltipText?: string;
};
//# sourceMappingURL=geoAttributeHelper.d.ts.map