import type { CreateCommentReportRequest, ContentCommentsResponse, CreateContentCommentRequest, CreateContentCommentResponse, DeleteContentCommentResponse, DislikedItemMutationResponse, LikedItemMutationResponse, ModerationReportResponse, SavedItemKind } from '@playdrop/types';
type ApiResponseLike<T> = {
    status: number;
    body: T;
    headers: Headers;
};
type RequestExecutor = <T>(input: {
    method: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE';
    path: string;
    body?: unknown;
    headers?: Record<string, string>;
    signal?: AbortSignal;
}) => Promise<ApiResponseLike<T>>;
type ErrorHandler = (response: ApiResponseLike<unknown>, defaultMessage: string) => never;
export declare function buildCommentsApiClientMethods(input: {
    request: RequestExecutor;
    handleApiError: ErrorHandler;
    normalizeSavedItemKindInput: (kind: SavedItemKind) => SavedItemKind;
    normalizeCreatorItemSlug: (value: string, field: 'creator' | 'name') => string;
    normalizePositiveIntegerInput: (value: number, errorCode: string) => number;
}): {
    fetchContentComments(kind: SavedItemKind, creatorUsername: string, itemName: string): Promise<ContentCommentsResponse>;
    createContentComment(kind: SavedItemKind, creatorUsername: string, itemName: string, requestBody: CreateContentCommentRequest): Promise<CreateContentCommentResponse>;
    likeContentComment(commentId: number): Promise<LikedItemMutationResponse>;
    unlikeContentComment(commentId: number): Promise<LikedItemMutationResponse>;
    dislikeContentComment(commentId: number): Promise<DislikedItemMutationResponse>;
    undislikeContentComment(commentId: number): Promise<DislikedItemMutationResponse>;
    reportComment(commentId: number, requestBody: CreateCommentReportRequest): Promise<ModerationReportResponse>;
    deleteContentComment(commentId: number): Promise<DeleteContentCommentResponse>;
};
export {};
//# sourceMappingURL=comments.d.ts.map