import { ResolverActions } from "../../utils/enums";
import { BaseMetadata } from "./base-metadata.data.model";
import { PartialUser } from "./comment-resolver.data.model";
import { ReactionAnnotation } from "./reaction-annotation.data.model";
import { ResolverConfig, ResolverResponse } from "./resolver.data.model";
export interface ReactionAnnotationDataProvider {
    get: (request: GetReactionResolverRequest) => Promise<ResolverResponse<Record<string, PartialReactionAnnotation>>>;
    save: (request: SaveReactionResolverRequest) => Promise<ResolverResponse<undefined>>;
    delete: (request: DeleteReactionResolverRequest) => Promise<ResolverResponse<undefined>>;
    config?: ResolverConfig;
}
export interface GetReactionResolverRequest {
    organizationId: string;
    reactionAnnotationIds?: string[];
    documentIds?: string[];
    folderId?: string;
    allDocuments?: boolean;
}
export interface DeleteReactionResolverRequest {
    reactionAnnotationId: string;
    metadata?: BaseMetadata;
    event?: ResolverActions;
}
export interface SaveReactionResolverRequest {
    reactionAnnotation: {
        [key: string]: PartialReactionAnnotation;
    };
    metadata?: BaseMetadata;
    event?: ResolverActions;
}
export interface PartialReactionAnnotationResult {
    strippedData: {
        [annotationId: string]: PartialReactionAnnotation;
    } | null;
    originalData: ReactionAnnotation | null;
}
export interface PartialReactionAnnotation {
    annotationId: string;
    metadata?: BaseMetadata;
    icon?: string;
    from?: PartialUser;
}
