/// <reference types="react" />
import { UseFormReturn } from 'react-hook-form';
import { Note as INote, Need, Status, Type } from '@parlor/common/amplify-schema';
import { Fields } from '@parlor/components/need-components/manage-need';
import { NeedItemFormValues } from '@parlor/components/need-components/need-item';
import { ModelWithDisplayName, RenderAdminSelectorProps } from '@parlor/components/select';
export type NoteProps = {
    /**
     * notes associated item
     */
    assignedItem?: {
        id: string;
        name: string;
    };
    /**
     * note author name
     */
    author: {
        avatar: string;
        name: string;
    };
    /**
     * className
     */
    className?: string;
    /**
     * hide or show 3 dot action select
     */
    hasActionMenu?: boolean;
    /**
     * isActionBarHidden
     */
    isActionBarHidden?: boolean;
    /**
     * check is admin user
     */
    isAdmin?: boolean;
    /**
     * used for style changes in pinned state
     */
    isPinned?: boolean;
    /**
     * isShowWorkspaceIcon
     */
    isShowWorkspaceIcon?: boolean;
    /**
     * change like button background when liked is true
     */
    liked?: boolean;
    /**
     * show users list tooltip on hover in like button
     */
    likedUsers?: string[];
    /**
     * count of liked users
     */
    likesCount?: number;
    manageNeedFieldOptions?: GetFields;
    /**
     * maximum characters count in description
     */
    max?: number | null;
    /**
     * Note to viewing
     */
    note: INote;
    /**
     * callback when changed description
     */
    onChange?: (innerHTML: string) => void;
    onCreateNeed?: (need: Need) => Promise<Need>;
    /**
     * callback on save button click
     */
    onDelete?: (id?: string) => any;
    onEdit?: (note: INote) => void;
    onHighlightClick?: (needId: string, type?: string) => void;
    /**
     * callback on like button click
     */
    onLike?: (id: string) => any;
    /**
     * callback on reply submit
     */
    onReplySubmit?: (value: string) => any;
    /**
     * callback on save button click
     */
    onSave?: (description: string) => any;
    /**
     * placeholder for editing form
     */
    placeholder?: string;
    /**
     * has 3 pinned posts
     */
    reachedPinnedLimit?: boolean;
    /**
     * add unpin button with his action
     */
    unPinBtnAction?: () => void;
};
type PopupNeedFormValues = NeedItemFormValues & {
    account?: ModelWithDisplayName;
    description: string;
    group: string;
    organizationID: string;
    seen: boolean;
    status: Status;
    type: Type;
    typeOptionID?: string | null;
    user?: RenderAdminSelectorProps;
    userOrAccount: RenderAdminSelectorProps | ModelWithDisplayName;
};
type GetFields = (options: Pick<UseFormReturn<PopupNeedFormValues>, 'getValues' | 'setValue'>) => Fields;
export declare function Note({ isActionBarHidden, isAdmin, liked, likedUsers, likesCount, max, author, note, onChange, onLike, onSave, onDelete, onReplySubmit, placeholder, onHighlightClick, manageNeedFieldOptions, onCreateNeed, isShowWorkspaceIcon, className, isPinned, reachedPinnedLimit, assignedItem, unPinBtnAction, hasActionMenu, onEdit, }: NoteProps): JSX.Element;
export {};
