import React from 'react';
import { SearchSelectorActions } from '@parlor/components/select-v4/components/search-selector';
import { ICreatedBox, ICreatedBoxChildrenParams } from '../components/creating-selector-box-wrapper';
import { InboxAware } from '../utils';
import { CreatableSelector } from './components';
import { RenderTopicSelectorProps } from './utils';
type TopicMenuFooterProps = SearchSelectorActions<RenderTopicSelectorProps> & ICreatedBoxChildrenParams<RenderTopicSelectorProps> & Pick<ICreatedBox<RenderTopicSelectorProps>, 'onCreate'>;
export declare const TopicMenuFooter: React.NamedExoticComponent<TopicMenuFooterProps>;
export declare const FormTopicsSelector: React.NamedExoticComponent<Partial<CreatableSelector<RenderTopicSelectorProps> & {
    onChange?: (items?: RenderTopicSelectorProps) => void;
    formRef?: import("react-hook-form").RefCallBack;
    name?: string;
    onBlur?: () => void;
    value?: RenderTopicSelectorProps;
    options?: never;
    disabled?: boolean;
    placeholder?: string;
    portalElement?: Element;
    maxWidth100?: boolean;
    suffix?: React.ReactNode;
    menuIsWithArrow?: boolean;
    menuPlacement?: import("@parlor/common").Placement;
    menuWidth?: number;
    emptyState?: JSX.Element;
    renderOption?: (item: RenderTopicSelectorProps, options?: Partial<import("../../select-v4/select-v4").RenderOptionParams<RenderTopicSelectorProps>>) => JSX.Element;
    menuContentClassName?: string;
    menuClassName?: string;
    renderPrevSelectedItem?: (item: RenderTopicSelectorProps) => JSX.Element;
    isSearchable?: boolean;
    loadOptions?: (filter?: {
        nextToken?: string;
        parent?: RenderTopicSelectorProps;
        searchTerm?: string;
        skip?: number;
    }) => Promise<{
        data: RenderTopicSelectorProps[];
        nextToken?: string;
    }>;
    preOptions?: {
        id: string;
        name: string;
    }[];
    placeholderElement?: JSX.Element;
    renderMenuFooter?: (payload: SearchSelectorActions<RenderTopicSelectorProps>) => JSX.Element;
    renderMenuHeader?: (payload: SearchSelectorActions<RenderTopicSelectorProps>) => JSX.Element;
    renderSelectedItem?: ((item: RenderTopicSelectorProps) => JSX.Element) & ((item: RenderTopicSelectorProps, actions?: SearchSelectorActions<RenderTopicSelectorProps>) => JSX.Element);
    checkIsAlreadySelectedFunction?: (item: RenderTopicSelectorProps) => boolean;
    renderValueContainer?: (item: RenderTopicSelectorProps) => JSX.Element;
    valueContainerWrapper?: (valueContainer: JSX.Element, options: {
        isOpen: boolean;
    }) => JSX.Element;
    isDefaultOpened?: boolean;
    showLabel?: boolean;
} & Partial<Omit<import("react-hook-form").UseControllerProps, "shouldUnregister" | "control">> & Partial<Pick<import("../../..").OriginalFieldWrapperProps, "className" | "label" | "size" | "fieldContainerClassName" | "hint" | "information" | "isFocused" | "variation"> & {
    suffix?: JSX.Element;
}> & import("../../..").ControllerTransformer & {
    required?: boolean;
    variant?: string;
} & InboxAware & {
    disabled?: boolean;
    topicId?: string;
    topicIdIsRequired?: boolean;
}>>;
export declare const TopicsSelector: React.NamedExoticComponent<CreatableSelector<RenderTopicSelectorProps> & import("../..").MenuBaseProps & {
    checkIsAlreadySelectedFunction?: (item: RenderTopicSelectorProps) => boolean;
    formRef?: import("react-hook-form").RefCallBack;
    onBlur?: () => void;
    placeholder?: string;
    portalElement?: Element;
    renderOption?: (item: RenderTopicSelectorProps, options?: Partial<import("../../select-v4/select-v4").RenderOptionParams<RenderTopicSelectorProps>>) => JSX.Element;
    renderPrevSelectedItem?: (item: RenderTopicSelectorProps) => JSX.Element;
    renderSelectedItem?: (item: RenderTopicSelectorProps) => JSX.Element;
    renderValueContainer?: (item: RenderTopicSelectorProps) => JSX.Element;
    valueContainerWrapper?: (valueContainer: JSX.Element, options: {
        isOpen: boolean;
    }) => JSX.Element;
} & {
    loadOptions?: (filter?: {
        nextToken?: string;
        parent?: RenderTopicSelectorProps;
        searchTerm?: string;
        skip?: number;
    }) => Promise<{
        data: RenderTopicSelectorProps[];
        nextToken?: string;
    }>;
    options?: never;
} & {
    disabled?: boolean;
    isDefaultOpened?: boolean;
    isSearchable?: boolean;
    maxWidth100?: boolean;
    name?: string;
    onChange: (items?: RenderTopicSelectorProps) => void;
    placeholderElement?: JSX.Element;
    preOptions?: {
        id: string;
        name: string;
    }[];
    renderMenuFooter?: (payload: SearchSelectorActions<RenderTopicSelectorProps>) => JSX.Element;
    renderMenuHeader?: (payload: SearchSelectorActions<RenderTopicSelectorProps>) => JSX.Element;
    renderSelectedItem?: (item: RenderTopicSelectorProps, actions?: SearchSelectorActions<RenderTopicSelectorProps>) => JSX.Element;
    showLabel?: boolean;
    suffix?: React.ReactNode;
    value?: RenderTopicSelectorProps;
} & InboxAware & {
    topicId?: string;
    topicIdIsRequired?: boolean;
}>;
export declare const RecursiveTopicsSelector: React.NamedExoticComponent<CreatableSelector<RenderTopicSelectorProps> & import("../..").MenuBaseProps & {
    checkIsAlreadySelectedFunction?: (item: RenderTopicSelectorProps) => boolean;
    formRef?: import("react-hook-form").RefCallBack;
    onBlur?: () => void;
    placeholder?: string;
    portalElement?: Element;
    renderOption?: (item: RenderTopicSelectorProps, options?: Partial<import("../../select-v4/select-v4").RenderOptionParams<RenderTopicSelectorProps>>) => JSX.Element;
    renderPrevSelectedItem?: (item: RenderTopicSelectorProps) => JSX.Element;
    renderSelectedItem?: (item: RenderTopicSelectorProps) => JSX.Element;
    renderValueContainer?: (item: RenderTopicSelectorProps) => JSX.Element;
    valueContainerWrapper?: (valueContainer: JSX.Element, options: {
        isOpen: boolean;
    }) => JSX.Element;
} & {
    loadOptions?: (filter?: {
        nextToken?: string;
        parent?: RenderTopicSelectorProps;
        searchTerm?: string;
        skip?: number;
    }) => Promise<{
        data: RenderTopicSelectorProps[];
        nextToken?: string;
    }>;
    options?: never;
} & {
    disabled?: boolean;
    isDefaultOpened?: boolean;
    isSearchable?: boolean;
    maxWidth100?: boolean;
    name?: string;
    onChange: (items?: RenderTopicSelectorProps) => void;
    placeholderElement?: JSX.Element;
    preOptions?: {
        id: string;
        name: string;
    }[];
    renderMenuFooter?: (payload: SearchSelectorActions<RenderTopicSelectorProps>) => JSX.Element;
    renderMenuHeader?: (payload: SearchSelectorActions<RenderTopicSelectorProps>) => JSX.Element;
    renderSelectedItem?: (item: RenderTopicSelectorProps, actions?: SearchSelectorActions<RenderTopicSelectorProps>) => JSX.Element;
    showLabel?: boolean;
    suffix?: React.ReactNode;
    value?: RenderTopicSelectorProps;
} & InboxAware & {
    name: string;
} & {
    [key: string]: any;
    id: string;
} & {
    className?: string;
    hasOpenChild?: boolean;
    hasResolvedChild?: boolean;
    inbox?: {
        [key: string]: any;
        key: string;
    };
    onClick?: (event?: React.MouseEvent<Element, MouseEvent>) => void;
    statusOption?: {
        color?: string;
        value?: string;
    };
    topicKey?: number;
}>;
export declare const FormRecursiveTopicsSelector: React.NamedExoticComponent<Partial<CreatableSelector<RenderTopicSelectorProps> & {
    onChange?: (items?: RenderTopicSelectorProps) => void;
    formRef?: import("react-hook-form").RefCallBack;
    name?: string;
    onBlur?: () => void;
    value?: RenderTopicSelectorProps;
    options?: never;
    disabled?: boolean;
    placeholder?: string;
    portalElement?: Element;
    maxWidth100?: boolean;
    suffix?: React.ReactNode;
    menuIsWithArrow?: boolean;
    menuPlacement?: import("@parlor/common").Placement;
    menuWidth?: number;
    emptyState?: JSX.Element;
    renderOption?: (item: RenderTopicSelectorProps, options?: Partial<import("../../select-v4/select-v4").RenderOptionParams<RenderTopicSelectorProps>>) => JSX.Element;
    menuContentClassName?: string;
    menuClassName?: string;
    renderPrevSelectedItem?: (item: RenderTopicSelectorProps) => JSX.Element;
    isSearchable?: boolean;
    loadOptions?: (filter?: {
        nextToken?: string;
        parent?: RenderTopicSelectorProps;
        searchTerm?: string;
        skip?: number;
    }) => Promise<{
        data: RenderTopicSelectorProps[];
        nextToken?: string;
    }>;
    preOptions?: {
        id: string;
        name: string;
    }[];
    placeholderElement?: JSX.Element;
    renderMenuFooter?: (payload: SearchSelectorActions<RenderTopicSelectorProps>) => JSX.Element;
    renderMenuHeader?: (payload: SearchSelectorActions<RenderTopicSelectorProps>) => JSX.Element;
    renderSelectedItem?: ((item: RenderTopicSelectorProps) => JSX.Element) & ((item: RenderTopicSelectorProps, actions?: SearchSelectorActions<RenderTopicSelectorProps>) => JSX.Element);
    checkIsAlreadySelectedFunction?: (item: RenderTopicSelectorProps) => boolean;
    renderValueContainer?: (item: RenderTopicSelectorProps) => JSX.Element;
    valueContainerWrapper?: (valueContainer: JSX.Element, options: {
        isOpen: boolean;
    }) => JSX.Element;
    isDefaultOpened?: boolean;
    showLabel?: boolean;
} & Partial<Omit<import("react-hook-form").UseControllerProps, "shouldUnregister" | "control">> & Partial<Pick<import("../../..").OriginalFieldWrapperProps, "className" | "label" | "size" | "fieldContainerClassName" | "hint" | "information" | "isFocused" | "variation"> & {
    suffix?: JSX.Element;
}> & import("../../..").ControllerTransformer & {
    required?: boolean;
    variant?: string;
} & InboxAware>>;
export {};
