/// <reference types="@geoscene/core/interfaces.d.ts" />
/// <reference types="../../index.d.ts" />
import { Use } from '@arcgis/lumina/controllers';
import { default as VersionManagementViewModel } from '@geoscene/core/widgets/VersionManagement/VersionManagementViewModel.js';
import { JsxNode, ToEvents, PublicLitElement as LitElement, TargetedEvent } from '@arcgis/lumina';
import { GeosceneReferenceElement } from '../../utils/component-utils';
import { GeosceneVersionManagementServiceItem } from '../geoscene-version-management-service-item/customElement.js';

declare const useVersionManagementViewModel: (component: LitElement & Pick<VersionManagementViewModel, never> & import('../../controllers/useViewModel').ViewModelControllerUses<VersionManagementViewModel>) => VersionManagementViewModel;
type VersioningStateEventType = "version-changed" | "version-created" | "version-deleted" | "version-switched";
export interface VersioningStateEvent {
    type?: VersioningStateEventType;
    versionIdentifier?: __geoscene.VersionInfoVersionIdentifier;
    versioningState?: __geoscene.VersioningState;
}
export type InitialVersionInfo = {
    url: string;
    name: string;
};
/**
 * The Version Management component allows users to view available versions, change versions, delete versions, and alter versions.
 * The [View](https://doc.geoscene.cn/javascript/4.33/api-reference/geoscene-views-View.html) will update to match the features on the selected version.
 * To learn more about version management please visit the [versioning guide doc](https://doc.geoscene.cn/javascript/4.33/utility-network/version-management-service/).
 *
 * > The Version Management component does not support proxied feature services or feature services that utilize stored credentials.
 *
 * Note: Sign in to access the data in this sample, U/P: `viewer01`/`I68VGU^nMurF`
 *
 * [Read more...](https://doc.geoscene.cn/javascript/4.33/references/map-components/geoscene-version-management/)
 */
export declare class GeosceneVersionManagement extends LitElement {
    /** @default false */
    allowEditingDisabled: boolean;
    /**
     * 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](https://doc.geoscene.cn/javascript/4.33/references/map-components/geoscene-version-management/#destroy) method when you are done to
     * prevent memory leaks.
     *
     * @default false
     */
    autoDestroyDisabled: boolean;
    /** @default false */
    closable: boolean;
    /**
     * The `initialVersionInfos` property enables users to initialize the Version Management component with a predefined set of versions.
     * By providing an array of `InitialVersionInfo`, the component displays a specified version for each feature service upon initialization.
     */
    get initialVersionInfos(): InitialVersionInfo[];
    set initialVersionInfos(value: InitialVersionInfo[]);
    icon?: string;
    label?: string;
    /**
     * Replace localized message strings with your own strings.
     *
     * _**Note**: Individual message keys may change between releases._
     */
    messageOverrides?: typeof this.messages._overrides;
    mode?: string;
    /**
     * Specifies the number of versions displayed on each page of the Version Management component.
     *
     * @default 5
     */
    pageSize: number;
    /** @default "top-right" */
    position: __geoscene.UIPosition;
    /**
     * By assigning the `id` attribute of the Map or Scene component to this property, you can position a child component anywhere in the DOM while still maintaining a connection to the Map or Scene.
     *
     * @see [Associate components with a Map or Scene component](https://doc.geoscene.cn/javascript/4.33/programming-patterns/#associate-components-with-a-map-or-scene-component)
     */
    referenceElement?: GeosceneReferenceElement | string;
    /** The current state of the component. */
    readonly state: "ready" | "loading" | "disabled" | "executing" | "failed" | "success";
    /**
     * This class provides functionality for managing versions in a versioned geodatabase.
     * In the event that the Version Management component is destroyed, the VersioningStates can be utilized to maintain the current state of the Version Management component.
     * The Version Management component can be reinitialized using a `Collection<VersioningState>`, or a predefined `Collection<VersioningState>` can be provided during the initial instantiation of the Version Management component.
     */
    versioningStates: __geoscene.Collection<__geoscene.VersioningState>;
    /** Permanently destroy the component. */
    destroy(): Promise<void>;
    /** Emitted when the component associated with a map or scene view is is ready to be interacted with. */
    readonly geosceneReady: TargetedEvent<this, void>;
    readonly geosceneVersioningStateChanged: TargetedEvent<this, VersioningStateEvent>;
    private messages: {
        label: string;
        actions: {
            cancelSave: string;
            deleteVersion: string;
            editVersion: string;
            newVersion: string;
            refreshVersions: string;
            saveVersion: string;
            searchVersions: string;
            switchToVersion: string;
        };
        accessLevels: {
            private: string;
            protected: string;
            public: string;
        };
        executionErrors: {
            invalidVersionName: string;
            noAdvancedEditingUserTypeExtension: string;
            noFeatureServiceFound: string;
            notValidEnterpriseVersion: string;
            noVersionManagementServiceFound: string;
        };
        headers: {
            currentVersion: string;
            manageVersions: string;
            filterVersions: string;
            versionProperties: string;
            invalidInitialVersion: string;
            invalidInitialFeatureService: string;
        };
        input: {
            versionAccess: string;
            versionDescription: string;
            versionName: string;
            versionOwner: string;
        };
        labels: {
            versionList: string;
        };
        loadErrors: {
            invalidInitialVersion: string;
            invalidInitialFeatureService: string;
            noFeatureServices: string;
            noViewProperty: string;
        };
    } & import('@arcgis/lumina/controllers').T9nMeta<{
        label: string;
        actions: {
            cancelSave: string;
            deleteVersion: string;
            editVersion: string;
            newVersion: string;
            refreshVersions: string;
            saveVersion: string;
            searchVersions: string;
            switchToVersion: string;
        };
        accessLevels: {
            private: string;
            protected: string;
            public: string;
        };
        executionErrors: {
            invalidVersionName: string;
            noAdvancedEditingUserTypeExtension: string;
            noFeatureServiceFound: string;
            notValidEnterpriseVersion: string;
            noVersionManagementServiceFound: string;
        };
        headers: {
            currentVersion: string;
            manageVersions: string;
            filterVersions: string;
            versionProperties: string;
            invalidInitialVersion: string;
            invalidInitialFeatureService: string;
        };
        input: {
            versionAccess: string;
            versionDescription: string;
            versionName: string;
            versionOwner: string;
        };
        labels: {
            versionList: string;
        };
        loadErrors: {
            invalidInitialVersion: string;
            invalidInitialFeatureService: string;
            noFeatureServices: string;
            noViewProperty: string;
        };
    }>;
}
export {};