import React from 'react';
import { Tags, OnSubmitTagsFuncType, TagsWidgetState } from '@wix/bex-core';
export type TagsWidgetProps = {
    /**
     * The FQDN of the entity.
     */
    fqdn?: string;
    /**
     * A string that represents the name of the entity type (e.g., "Orders"),
     * displayed as the title of the manage tags modal.
     */
    entityTypeName: string;
    /**
     * A string that represents the ID of the current entity.
     */
    entityId?: string | null;
    /**
     * Tags object associated with the entity when the widget is loaded.
     */
    initialTags?: Tags;
    /**
     * A subtitle to show on the tags widget card. Relevant for the default card theme only.
     */
    subtitle?: string;
    /**
     * Applies a `data-hook` HTML attribute that can be used in tests.
     */
    dataHook?: string;
    /**
     * A callback function that is called when a user adds or removes tags from the entity.
     * @param tags - An object containing:
     * `allTags`: The updated tags object containing both private and public tags. \
     * `addedTags`: An array of added tags. \
     * `removedTags`: An array of removed tags.
     */
    onSubmit?: OnSubmitTagsFuncType;
    /**
     * The origin of the widget.
     */
    origin?: string;
    /**
     * The theme of the tags widget.
     */
    theme?: 'card' | 'inline';
    /**
     * Displays tags without the option to edit them.
     */
    readOnly?: boolean;
} & ({
    /**
     * The FQDN used to extract the schema from the data-extension service.
     */
    fqdn: string;
    /**
     * The widget state (should not be used when `fqdn` is provided).
     */
    state?: never;
} | {
    /**
     * The widget state (should be used when `fqdn` is not provided).
     */
    state: TagsWidgetState;
    /**
     * The FQDN should not be provided if `state` is specified.
     */
    fqdn?: never;
});
export { OnSubmitTagsFuncType };
export interface TagsWidgetBaseProps extends Omit<TagsWidgetProps, 'origin' | 'fqdn'> {
}
export declare const TagsWidgetBase: (({ subtitle, dataHook, theme, state: _state, ...contentProps }: TagsWidgetBaseProps) => React.JSX.Element) & {
    displayName: string;
};
export declare const TagsWidget: ((props: TagsWidgetProps) => React.JSX.Element) & {
    displayName: string;
};
//# sourceMappingURL=TagsWidget.d.ts.map