import { type IExecutionFactory, type IPreparedExecution } from "@gooddata/sdk-backend-spi";
import { type IInsightDefinition } from "@gooddata/sdk-model";
import { type IExtendedReferencePoint, type IReferencePoint, type IUiConfig, type IVisConstruct, type IVisProps } from "../../../interfaces/Visualization.js";
import { PluggableBaseChart } from "../baseChart/PluggableBaseChart.js";
/**
 * PluggableGeoPushpinChartNext
 *
 * Next-generation geo pushpin chart implementation.
 * Supports multi-layer geo charts through the insight layers property.
 * Additional layers configured externally are preserved but not editable in AD.
 *
 * @alpha
 */
export declare class PluggableGeoPushpinChartNext extends PluggableBaseChart {
    private backend;
    private workspace;
    private liveMapView;
    constructor(props: IVisConstruct);
    private initializePropertiesMeta;
    /**
     * Extends reference point with geo pushpin-specific configuration.
     * Configures UI config, removes sorting, enables percent formatting, and updates clustering properties.
     *
     * @param referencePoint - The reference point to extend
     * @returns Promise resolving to the extended reference point
     */
    getExtendedReferencePoint(referencePoint: IReferencePoint): Promise<IExtendedReferencePoint>;
    getUiConfig(): IUiConfig;
    protected getSupportedPropertiesList(): string[];
    /**
     * Configures buckets for geo pushpin chart by distributing measures between SIZE and COLOR buckets.
     * Ensures proper measure distribution and applies bucket item limits.
     */
    protected configureBuckets(extendedReferencePoint: IExtendedReferencePoint): IExtendedReferencePoint;
    /**
     * Updates properties in the reference point including clustering and location-based properties.
     */
    private updateSupportedProperties;
    /**
     * Validates insight has data defined before rendering.
     * Throws EmptyAfmSdkError if no data is defined.
     *
     * @param insight - The insight definition to validate
     * @returns true if validation passes
     * @throws EmptyAfmSdkError if no data is defined
     * @throws GeoLocationMissingSdkError if latitude attribute is not defined
     */
    protected checkBeforeRender(insight: IInsightDefinition): boolean;
    /**
     * Creates execution for geo pushpin chart with virtual buckets for latitude/longitude.
     * For backends supporting separate lat/long labels, creates virtual LATITUDE and LONGITUDE buckets
     * and excludes the original LOCATION bucket to avoid duplicate attributes.
     *
     * @param options - Visualization options
     * @param insight - Insight definition containing buckets and filters
     * @param executionFactory - Factory for creating executions
     * @returns Configured execution with proper dimensions and sorting
     */
    getExecution(options: IVisProps, insight: IInsightDefinition, executionFactory: IExecutionFactory): IPreparedExecution;
    getExecutions(options: IVisProps, insight: IInsightDefinition, executionFactory: IExecutionFactory): IPreparedExecution[];
    protected renderConfigurationPanel(insight: IInsightDefinition, options: IVisProps): void;
    /**
     * Builds geo-specific visualization configuration.
     * Extends base chart config with geo-specific properties like map tiles and tooltips.
     *
     * @param options - Visualization options
     * @param supportedControls - Supported visualization properties
     * @returns Next-gen geo chart configuration
     */
    private buildGeoVisualizationConfig;
    protected renderVisualization(options: IVisProps, insight: IInsightDefinition, executionFactory: IExecutionFactory): void;
    private buildPrimaryLayerContext;
    private buildAdditionalLayerExecutions;
    private shouldSkipLayer;
    private getInsightControlsWithFallback;
    private syncedHandlers;
    private handleCenterPositionChanged;
    private handleZoomChanged;
    private getCurrentMapView;
}
//# sourceMappingURL=PluggableGeoPushpinChartNext.d.ts.map