import { type IBucket, type IInsightDefinition } from "@gooddata/sdk-model";
import { type IVisualizationProperties } from "../../../interfaces/Visualization.js";
/**
 * Creates virtual buckets (latitude, longitude) based on controls.
 *
 * @param insight - The insight definition
 * @param controls - Visualization controls containing latitude, longitude
 * @returns Array of virtual buckets
 * @internal
 */
export declare function createVirtualBuckets(insight: IInsightDefinition, controls: IVisualizationProperties): IBucket[];
/**
 * Attempts to create a virtual bucket if the attribute ID is provided.
 *
 * @param insight - The insight definition
 * @param attributeId - Display form ID or URI to use (undefined if not configured)
 * @param bucketName - Name for the virtual bucket
 * @param localIdentifier - Local identifier for the attribute
 * @returns Virtual bucket or undefined
 * @internal
 */
export declare function tryCreateVirtualBucket(insight: IInsightDefinition, attributeId: string | undefined, bucketName: string, localIdentifier: string): IBucket | undefined;
/**
 * Creates a virtual bucket from the latitude attribute's display form.
 * Virtual buckets are used for latitude and longitude execution attributes.
 *
 * @remarks
 * The latitude attribute is used as the base attribute for resolving related display forms
 * (latitude, longitude) since it represents the primary geo attribute.
 *
 * @param insight - The insight definition
 * @param bucketName - Name for the virtual bucket (e.g., LATITUDE, LONGITUDE)
 * @param attributeId - Display form ID or URI to use
 * @param attributeLocalIdentifier - Local identifier for the attribute
 * @returns Virtual bucket or undefined if latitude attribute is not present or bucket already exists
 * @internal
 */
export declare function createVirtualBucketFromLocationAttribute(insight: IInsightDefinition, bucketName: string, attributeId: string, attributeLocalIdentifier: string): IBucket | undefined;
//# sourceMappingURL=geoVirtualBucketFactory.d.ts.map