/**
 * API
 * Audius V1 API
 *
 * The version of the OpenAPI document: 1.0
 *
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */
import * as runtime from '../runtime';
import type { CommentRepliesResponse, CommentResponse, CreateCommentRequestBody, CreateCommentResponse, PinCommentRequestBody, ReactCommentRequestBody, UnclaimedIdResponse, UpdateCommentRequestBody, WriteResponse } from '../models';
export interface CreateCommentRequest {
    userId: string;
    metadata: CreateCommentRequestBody;
}
export interface DeleteCommentRequest {
    commentId: string;
    userId: string;
}
export interface GetCommentRequest {
    commentId: string;
}
export interface GetCommentRepliesRequest {
    commentId: string;
    offset?: number;
    limit?: number;
    userId?: string;
}
export interface PinCommentRequest {
    commentId: string;
    userId: string;
    metadata: PinCommentRequestBody;
}
export interface ReactToCommentRequest {
    commentId: string;
    userId: string;
    metadata: ReactCommentRequestBody;
}
export interface ReportCommentRequest {
    commentId: string;
    userId: string;
}
export interface UnpinCommentRequest {
    commentId: string;
    userId: string;
    metadata: PinCommentRequestBody;
}
export interface UnreactToCommentRequest {
    commentId: string;
    userId: string;
    metadata: ReactCommentRequestBody;
}
export interface UpdateCommentRequest {
    commentId: string;
    userId: string;
    metadata: UpdateCommentRequestBody;
}
/**
 *
 */
export declare class CommentsApi extends runtime.BaseAPI {
    /**
     * @hidden
     * Creates a new comment
     */
    createCommentRaw(params: CreateCommentRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<CreateCommentResponse>>;
    /**
     * Creates a new comment
     */
    createComment(params: CreateCommentRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<CreateCommentResponse>;
    /**
     * @hidden
     * Deletes a comment
     */
    deleteCommentRaw(params: DeleteCommentRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<WriteResponse>>;
    /**
     * Deletes a comment
     */
    deleteComment(params: DeleteCommentRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<WriteResponse>;
    /**
     * @hidden
     * Gets a comment by ID
     */
    getCommentRaw(params: GetCommentRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<CommentResponse>>;
    /**
     * Gets a comment by ID
     */
    getComment(params: GetCommentRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<CommentResponse>;
    /**
     * @hidden
     * Gets replies to a parent comment
     */
    getCommentRepliesRaw(params: GetCommentRepliesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<CommentRepliesResponse>>;
    /**
     * Gets replies to a parent comment
     */
    getCommentReplies(params: GetCommentRepliesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<CommentRepliesResponse>;
    /**
     * @hidden
     * Gets an unclaimed blockchain comment ID
     */
    getUnclaimedCommentIDRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<UnclaimedIdResponse>>;
    /**
     * Gets an unclaimed blockchain comment ID
     */
    getUnclaimedCommentID(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<UnclaimedIdResponse>;
    /**
     * @hidden
     * Pin a comment
     */
    pinCommentRaw(params: PinCommentRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<WriteResponse>>;
    /**
     * Pin a comment
     */
    pinComment(params: PinCommentRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<WriteResponse>;
    /**
     * @hidden
     * React to a comment
     */
    reactToCommentRaw(params: ReactToCommentRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<WriteResponse>>;
    /**
     * React to a comment
     */
    reactToComment(params: ReactToCommentRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<WriteResponse>;
    /**
     * @hidden
     * Report a comment
     */
    reportCommentRaw(params: ReportCommentRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<WriteResponse>>;
    /**
     * Report a comment
     */
    reportComment(params: ReportCommentRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<WriteResponse>;
    /**
     * @hidden
     * Unpin a comment
     */
    unpinCommentRaw(params: UnpinCommentRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<WriteResponse>>;
    /**
     * Unpin a comment
     */
    unpinComment(params: UnpinCommentRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<WriteResponse>;
    /**
     * @hidden
     * Unreact to a comment
     */
    unreactToCommentRaw(params: UnreactToCommentRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<WriteResponse>>;
    /**
     * Unreact to a comment
     */
    unreactToComment(params: UnreactToCommentRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<WriteResponse>;
    /**
     * @hidden
     * Updates a comment
     */
    updateCommentRaw(params: UpdateCommentRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<WriteResponse>>;
    /**
     * Updates a comment
     */
    updateComment(params: UpdateCommentRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<WriteResponse>;
}
