import { Insertable, Kysely } from 'kysely';
import { DB } from 'src/schema';
import { ActivityTable } from 'src/schema/tables/activity.table';
export interface ActivitySearch {
    albumId?: string;
    assetId?: string | null;
    userId?: string;
    isLiked?: boolean;
}
export declare class ActivityRepository {
    private db;
    constructor(db: Kysely<DB>);
    search(options: ActivitySearch): Promise<{
        id: string;
        assetId: string | null;
        userId: string;
        updatedAt: Date;
        createdAt: Date;
        comment: string | null;
        updateId: string;
        albumId: string;
        isLiked: boolean;
        user: {
            name: string;
            id: string;
            email: string;
            profileImagePath: string;
            avatarColor: import("src/enum").UserAvatarColor | null;
            profileChangedAt: string;
        };
    }[]>;
    create(activity: Insertable<ActivityTable>): Promise<{
        id: string;
        assetId: string | null;
        user: {
            name: string;
            id: string;
            email: string;
            profileImagePath: string;
            avatarColor: import("kysely").ExtractColumnType<DB, "user" | "activity", "avatarColor">;
            profileChangedAt: string;
        };
        userId: string;
        updatedAt: Date;
        createdAt: Date;
        comment: string | null;
        updateId: string;
        albumId: string;
        isLiked: boolean;
    }>;
    delete(id: string): Promise<void>;
    getStatistics({ albumId, assetId, }: {
        albumId: string;
        assetId?: string;
    }): Promise<{
        comments: number;
        likes: number;
    }>;
}
