import type Layer from "@arcgis/core/layers/Layer";
import type MapNotesLayer from "@arcgis/core/layers/MapNotesLayer";
import type PortalItem from "@arcgis/core/portal/PortalItem";
import type { QuerySourceCapabilities } from "../data/QuerySourceCapabilities.js";
import { type FeatureLayerJson } from "../json/FeatureLayerJson.js";
import type { OperationalLayerJson } from "../json/OperationalLayerJson.js";
import type { PropertyDefs } from "../support/Serializable.js";
import type { MapNotesSublayerExtension, MapNotesSublayerExtensionProperties } from "./MapNotesSublayerExtension.js";
import type { LayerExtensionProperties, LayerProperties } from "./_LayerExtension.js";
import { LayerExtension } from "./_LayerExtension.js";
import { SublayerExtensionCollectionBase } from "./support/_SublayerExtensionCollection.js";
/**
 * Ref type for map notes layer extension.
 */
export declare const MAP_NOTES_LAYER_TYPE = "map-notes-layer";
/**
 * Properties that can be passed into the constructor for
 * {@link MapNotesLayerExtension}.
 */
export interface MapNotesLayerExtensionProperties extends LayerExtensionProperties {
    /**
     * The Esri MapNotesLayer object being extended.
     */
    layer?: MapNotesLayer | (FeatureLayerJson & LayerProperties);
}
/**
 * Extends the capabilities of an Esri MapNotesLayer object.
 */
export declare class MapNotesLayerExtension extends LayerExtension<MapNotesLayerExtensionProperties> {
    get layer(): MapNotesLayer;
    get supportsSublayers(): boolean;
    _createSublayerExtension(properties?: MapNotesSublayerExtensionProperties): MapNotesSublayerExtension;
    _getProjectWebmapJSON(): OperationalLayerJson | undefined;
    protected _applyLayerProperties(properties: LayerProperties, layer: Layer): Promise<void>;
    protected _getSerializableProperties(): PropertyDefs<MapNotesLayerExtensionProperties>;
    /**
     * @inheritDoc
     */
    protected _isSupportedLayer(layer: Layer): boolean;
    protected _applyPortalItemProperties(portalItem: PortalItem): Promise<void>;
    protected _capabilities(): QuerySourceCapabilities;
    protected _getSerializableLayerType(): string;
    protected _getSerializableRefLayerProperties(): Record<string, unknown>;
    protected _createSublayerExtensionCollection(): SublayerExtensionCollectionBase;
}
