import React from 'react';
import type { Application } from '../application';
import type { IEntityRef, IEntityTag } from '../domain';
import { TaskMonitor } from '../task';
import './EntityTagEditor.less';
export interface IOwner {
    name: string;
    cloudProvider: string;
    region: string;
    account: string;
}
export interface IOwnerOption {
    label: string;
    type: string;
    owner: IOwner;
    isDefault: boolean;
}
export interface IEntityTagEditorProps {
    owner: IOwner;
    application: Application;
    entityType: string;
    tag: IEntityTag;
    ownerOptions: IOwnerOption[];
    entityRef: IEntityRef;
    isNew: boolean;
    show?: boolean;
    closeModal?(result?: any): void;
    dismissModal?(rejection?: any): void;
    onUpdate?(): void;
}
export interface IEntityTagEditorState {
    taskMonitor: TaskMonitor;
    isSubmitting: boolean;
    initialValues: IEntityTagEditorValues;
}
export interface IEntityTagEditorValues {
    message: string;
    ownerOption?: IOwnerOption;
}
export declare class EntityTagEditor extends React.Component<IEntityTagEditorProps, IEntityTagEditorState> {
    static defaultProps: Partial<IEntityTagEditorProps>;
    /** Shows the Entity Tag Editor modal */
    static show(props: IEntityTagEditorProps): Promise<void>;
    constructor(props: IEntityTagEditorProps);
    private close;
    private upsertTag;
    render(): JSX.Element;
}
