import Viewpoint from "@arcgis/core/Viewpoint";
import type { EntityProperties } from "../Entity.js";
import { EntityBase } from "../Entity.js";
import type { ViewpointJson } from "../json/ViewpointJson.js";
import type { PropertyDefs } from "../support/Serializable.js";
/**
 * The source of the bookmark.
 */
export type BookmarkSource = 
/**
 * Bookmark defined in the map.
 */
"map"
/**
 * Bookmark defined by the user.
 */
 | "user";
/**
 * Properties that can be passed into the constructor for
 * {@link mapping/Bookmark!Bookmark}.
 */
export interface BookmarkProperties extends EntityProperties {
    /**
     * See {@link mapping/Bookmark!Bookmark.source}.
     */
    source?: BookmarkSource;
    /**
     * See {@link mapping/Bookmark!Bookmark.title}.
     */
    title?: string;
    /**
     * See {@link mapping/Bookmark!Bookmark.viewpoint}.
     */
    viewpoint?: Viewpoint | ViewpointJson;
}
/**
 * A bookmark for a map extension. Consists of a title and a viewpoint.
 * Bookmarks can be created stand-alone or initialized from webmap bookmarks or
 * from slides on web scene presentations.
 */
export declare class Bookmark extends EntityBase<BookmarkProperties> {
    /**
     * The source the bookmark came from.
     */
    source: BookmarkSource;
    /**
     * A human-readable title for the bookmark.
     */
    title: string;
    /**
     * The saved viewpoint to navigate to.
     */
    viewpoint: Viewpoint;
    /**
     * @inheritDoc
     */
    protected readonly _itemType: string;
    protected _getSerializableProperties(): PropertyDefs<BookmarkProperties>;
}
