import type { Action } from "@vertigis/arcgis-extensions/support/Action";
import type { MapModelProperties as CommonMapModelProperties } from "../common/MapModelProperties.js";
/**
 * A reference to an MMPK map.
 */
export interface MmpkProperties {
    /**
     * The path of the mmpk file. The referenced file can be either a single
     * .mmpk file or an unzipped/exploded folder. The path is relative to the
     * root level user data directory for that app; for example, the File
     * Sharing folder for the app in iTunes for Apple devices.
     */
    path: string;
    /**
     * The portal item which contains the mmpk. This may be either a Portal item
     * ID or a URL to the item.
     */
    source?: string;
    /**
     * Either the name of the map or the index (starting at 0) of the map to
     * load from the mmpk, for mmpks that have multiple maps.
     */
    mapId: string | number;
}
/**
 * @inheritdoc
 */
export interface MapModelProperties extends CommonMapModelProperties {
    /**
     * Either a string path to the mmpk file on disk, or an object containing
     * the path and mapId. In either case, the path is relative to the root
     * level user data directory for that app; for example, the File Sharing
     * folder for the app in iTunes for Apple devices. The referenced file can
     * be either a single .mmpk file or an unzipped/exploded folder. If a path
     * is specified as a string, then the first map within the mmpk is selected.
     * If you would like to use a different path, then use the object syntax
     * which allows for specifying which map within the mmpk to load.
     */
    mmpk?: string | MmpkProperties;
    /**
     * An action that will be performed when the map is about to initialize,
     * just before the map is initialized.
     */
    onInitializing?: Action;
    /**
     * An action that will be performed when the user makes a secondary click
     * (e.g. right click with mouse or long tap) on the map. If not defined and
     * not overridden, it will cause a context menu to appear at the position
     * where the secondary click happened.
     */
    onSecondaryClick?: Action;
}
