import { Kysely } from 'kysely';
import { AssetVisibility } from "../enum";
import { DB } from "../schema";
export declare class ViewRepository {
    private db;
    constructor(db: Kysely<DB>);
    getUniqueOriginalPaths(userId: string): Promise<string[]>;
    getAssetsByOriginalPath(userId: string, partialPath: string): Promise<{
        id: string;
        createdAt: Date;
        type: import("src/enum").AssetType;
        duration: number | null;
        updatedAt: Date;
        deletedAt: Date | null;
        status: import("src/enum").AssetStatus;
        updateId: string;
        ownerId: string;
        width: number | null;
        height: number | null;
        originalPath: string;
        fileCreatedAt: Date;
        fileModifiedAt: Date;
        isFavorite: boolean;
        checksum: Buffer<ArrayBufferLike>;
        checksumAlgorithm: import("src/enum").ChecksumAlgorithm;
        livePhotoVideoId: string | null;
        originalFileName: string;
        thumbhash: Buffer<ArrayBufferLike> | null;
        isOffline: boolean;
        libraryId: string | null;
        isExternal: boolean;
        localDateTime: Date;
        stackId: string | null;
        duplicateId: string | null;
        visibility: AssetVisibility;
        isEdited: boolean;
        exifInfo: import("kysely").ShallowDehydrateObject<{
            description: string;
            colorspace: string | null;
            assetId: string;
            state: string | null;
            updatedAt: Date;
            updateId: string;
            make: string | null;
            model: string | null;
            exifImageWidth: number | null;
            exifImageHeight: number | null;
            fileSizeInByte: number | null;
            orientation: string | null;
            dateTimeOriginal: Date | null;
            modifyDate: Date | null;
            lensModel: string | null;
            fNumber: number | null;
            focalLength: number | null;
            iso: number | null;
            latitude: number | null;
            longitude: number | null;
            city: string | null;
            country: string | null;
            fps: number | null;
            exposureTime: string | null;
            livePhotoCID: string | null;
            timeZone: string | null;
            projectionType: string | null;
            profileDescription: string | null;
            bitsPerSample: number | null;
            autoStackId: string | null;
            rating: number | null;
            tags: string[] | null;
            lockedProperties: ("description" | "dateTimeOriginal" | "latitude" | "longitude" | "timeZone" | "rating" | "tags")[] | null;
        }> | null;
    }[]>;
}
