import { TypographyProps } from '@mui/material';
import { Citation, PageState, PageResponse, UnsavedCitation, UnsavedAttachment } from '../../../../@types';
export type CitationFieldProps = {
    /**
     * Name and ID of the component. Must match a key from initialValues in Formik.
     * @required
     */
    name: string;
    /**
     * (Optional) Label. NOTE: this won't be floating, it's always static.
     */
    label?: string;
    /**
     * Styling for label
     */
    labelProps?: TypographyProps;
    /**
     * If `true`, the component becomes readonly.
     * @default false
     */
    readOnly?: boolean;
    /**
     * Margin for the FormControl
     */
    margin?: 'dense' | 'none' | 'normal';
    renderContentOnly?: never;
    /**
     * API call for fetching paginated citations. These will populate the "Insert Citation/Attachment(s)" table.
     *
     * If an error occurs during the API call, notify the user then throw the error so that
     * Mui Bueno can handle updating state.
     */
    fetchExistingCitations: (req: PageState) => Promise<PageResponse<Citation>>;
    /**
     * API call for creating a new citation/attachment.
     *
     * If an error occurs during the API call, notify the user then throw the error so that
     * Mui Bueno can handle updating state.
     */
    onCreateCitation: (citation: UnsavedCitation) => Promise<Citation>;
    /**
     * API call for updating a citation/attachment.
     *
     * If an error occurs during the API call, notify the user then throw the error so that
     * Mui Bueno can handle updating state.
     */
    onUpdateCitation: (citation: Citation) => Promise<Citation>;
    /**
     * API call for retrieving a citation by id
     *
     * If an error occurs during the API call, notify the user then throw the error so that
     * Mui Bueno can handle updating state.
     */
    getCitationById: (id: number) => Promise<Citation>;
    /**
     * API call for storing an attachment (ex. in an s3 bucket)
     *
     * If an error occurs during the API call, notify the user then throw the error so that
     * Mui Bueno can handle updating state.
     */
    onStoreAttachment: (citation: UnsavedAttachment) => Promise<Citation>;
    /**
     * API call for retrieving an array citations by an array ids
     *
     * If an error occurs during the API call, notify the user then throw the error so that
     * Mui Bueno can handle updating state.
     */
    getCitationsByIds: (ids: number[]) => Promise<Citation[]>;
};
/**
 * Rich Text field -- uses MUI Tip Tap
 *
 * Formik -- This field cannot be completely controlled, so keep in mind that the Formik value will not update until the field
 * __loses focus__. This is to prevent issues with converting from rich text to HTML as the user types as it could override
 * their changes unintentionally.
 */
export declare const CitationField: (props: CitationFieldProps) => import("react/jsx-runtime").JSX.Element;
export default CitationField;
