/// <reference types="@arcgis/core/interfaces.d.ts" />
/// <reference types="../../index.d.ts" />
import { Use } from '@arcgis/components-controllers';
import { Nil } from '@arcgis/components-utils';
import { default as BasemapGalleryViewModel } from '@arcgis/core/widgets/BasemapGallery/BasemapGalleryViewModel.js';
import { JsxNode, ToElement, PublicLitElement as LitElement, TargetedEvent } from '@arcgis/lumina';
import { HeadingLevel } from '../../support/heading';
import { ArcgisReferenceElement } from '../../utils/component-utils';

declare const useBasemapGalleryViewModel: (component: import('@arcgis/components-controllers').StencilLifecycles & {
    manager: import('@arcgis/components-controllers').ControllerManager;
    el: HTMLElement;
    autoDestroyDisabled?: boolean;
    destroy?: () => Promise<void>;
} & Pick<BasemapGalleryViewModel, never> & {
    reactiveUtils?: typeof __esri.reactiveUtils;
    state?: "ready" | "loading" | "unsupported" | "disabled" | undefined;
    icon: Nil | string;
    label: Nil | string;
    referenceElement: ArcgisReferenceElement | Nil | string;
    arcgisReady: import('@arcgis/components-controllers').EventEmitter;
    position: __esri.UIPosition;
    arcgisPropertyChange: import('@arcgis/components-controllers').EventEmitter<{
        name: string;
    }> | undefined;
    el: HTMLElement & {
        childElem?: HTMLElement & {
            ownedBy?: HTMLElement;
        };
        view?: __esri.MapView | __esri.SceneView | undefined;
    };
    autoDestroyDisabled: boolean;
    destroy: () => Promise<void>;
}, options?: {
    editConstructorProperties(props: unknown): unknown;
} | undefined) => BasemapGalleryViewModel;
/** BasemapGallery component displays a collection images representing basemaps from [ArcGIS.com](https://www.arcgis.com/index.html) or a user-defined set of map or image services. When a new basemap is selected from the BasemapGallery, the map's basemap layers are removed and replaced with the basemap layers of the associated basemap selected in the gallery.
 */
export declare class ArcgisBasemapGallery extends LitElement {
    /**
     * The map's current [basemap](https://developers.arcgis.com/javascript/latest/api-reference/esri-Map.html#basemap).
     */
    activeBasemap: __esri.Basemap | nullish;
    /**
     * If true, the component will not be destroyed automatically when it is
     * disconnected from the document. This is useful when you want to move the
     * component to a different place on the page, or temporarily hide it. If this
     * is set, make sure to call the \`destroy\` method when you are done to prevent
     * memory leaks.
     */
    autoDestroyDisabled: boolean;
    /**
     * When `true`, sets the component to a disabled state so the user cannot interact with it.
     */
    disabled: boolean;
    /**
     * Indicates the heading level to use for the message "No basemaps available"
     * when no basemaps are available in the BasemapGallery.
     */
    headingLevel: HeadingLevel;
    /**
     * Icon which represents the component.
     * Typically used when the component is controlled by another component (e.g. by the Expand component).
     * Search [Calcite Icons](https://developers.arcgis.com/calcite-design-system/icons/) for possible values.
     */
    icon: string;
    /**
     * The component's default label.
     */
    label: string;
    position: __esri.UIPosition;
    referenceElement: ArcgisReferenceElement | Nil | string;
    /**
     * The source for basemaps that the component will display.
     */
    source: __esri.LocalBasemapsSource | __esri.PortalBasemapsSource;
    /**
     * The current state of the component.
     */
    readonly state: "ready" | "loading" | "unsupported" | "disabled";
    /** Permanently destroy the component */
    destroy(): Promise<void>;
    readonly arcgisPropertyChange: TargetedEvent<this, {
        name: "state" | "activeBasemap";
    }>;
    readonly arcgisReady: TargetedEvent<this, undefined>;
}
export {};
