import { RefObject } from 'react';
import { ConditionalModalState, TagsBIReporter, TagsManagementState, TagsSearchState, ToastConfig } from '@wix/bex-core';
import { MessageModalLayoutProps } from '@wix/design-system';
import { Tag } from '@wix/bex-utils/@wix/ambassador-os-tags-v1-tag/types';
export interface TagsModalStateParams {
    readonly tagsManagementState: TagsManagementState;
    readonly entityTypeName: string;
}
export declare class TagsModalState {
    readonly tagsManagementState: TagsManagementState;
    readonly tagsSearchState: TagsSearchState;
    readonly manageTagsModalState: ConditionalModalState<unknown>;
    readonly confirmModalState: ConditionalModalState<Partial<MessageModalLayoutProps>>;
    readonly container: import("@wix/bex-core").WixPatternsContainer;
    readonly tagsBIReporter: TagsBIReporter;
    readonly entityTypeName: string;
    origin?: string;
    tagSubOrigin?: string;
    editedTagId: string | null;
    editedTagErrorMessage: string | null;
    isShowingNewTagListItem: boolean;
    tagToDelete?: Tag;
    toastConfigs: import("mobx").IObservableArray<ToastConfig>;
    ref: RefObject<HTMLDivElement> | null;
    constructor({ tagsManagementState, entityTypeName }: TagsModalStateParams);
    init(): () => void;
    openManageTagsModal({ origin, tagSubOrigin, }: {
        origin: string;
        tagSubOrigin?: string;
    }): void;
    closeManageTagsModal(): void;
    openConfirmDeleteModal(props?: Partial<MessageModalLayoutProps>): void;
    handleSearchChange(newSearchValue: string): void;
    handleSearchClear(): void;
    handleCreateCtaClick(): void;
    handleEditCtaClick(tag: Tag): void;
    handleCancelEditCtaClick(): void;
    showNotification(toastConfig: ToastConfig): void;
    hideNotification(toastConfig?: ToastConfig): void;
    createTagFromSearch(): Promise<void>;
    createTagFromList(newName: string): Promise<void>;
    updateTag({ tag, newName, isLastTag, }: {
        tag: Tag;
        newName: string;
        isLastTag: boolean;
    }): Promise<void>;
    deleteTag(tagToDelete: Tag): Promise<void>;
    get searchValue(): string;
    get shownItems(): Tag[];
    get isOpen(): boolean;
    get toastConfig(): ToastConfig;
    private handleCreateCtaTimeout?;
    private showNotificationTimeout?;
    private createTagFromListTimeout?;
    private updateTagTimeout?;
    private _createTag;
    private _isValidName;
    private _reportBiModalOpened;
    private _reportModalClosedBi;
    private _reportSearchChangedBi;
    private _reportSearchEventsBi;
    private _scrollContentTo;
    private _getValidationMessage;
}
//# sourceMappingURL=TagsModalState.d.ts.map