import { ResolverActions } from "../../utils/enums";
import { ResolverConfig, ResolverResponse } from "./resolver.data.model";
export interface AttachmentDataProvider {
    save?: (request: SaveAttachmentResolverRequest) => Promise<ResolverResponse<SaveAttachmentResolverData>>;
    delete?: (request: DeleteAttachmentResolverRequest) => Promise<ResolverResponse<undefined>>;
    config?: ResolverConfig;
}
export interface DeleteAttachmentResolverRequest {
    attachmentId: number;
    metadata?: AttachmentResolverMetadata;
    event?: ResolverActions;
}
export interface SaveAttachmentResolverRequest {
    attachment: ResolverAttachment;
    metadata?: AttachmentResolverMetadata;
    event?: ResolverActions;
}
export interface PartialAttachment {
    url: string;
    name: string;
    attachmentId: number;
}
export interface ResolverAttachment {
    attachmentId: number;
    /**
     * File to be uploaded
     */
    file: File;
    /**
     * File name
     */
    name?: string;
    /**
     * Metadata of an attachment
     */
    metadata?: AttachmentResolverMetadata;
    /**
     * Mime type of an attachment
     */
    mimeType?: string;
}
export interface AttachmentResolverMetadata {
    organizationId: string | null;
    documentId: string | null;
    folderId?: string | null;
    attachmentId: number | null;
    commentAnnotationId: string | null;
    apiKey: string | null;
}
export interface SaveAttachmentResolverData {
    url: string;
}
