import { Insertable, Kysely, Updateable } from 'kysely';
import { DB } from "../schema";
import { PartnerTable } from "../schema/tables/partner.table";
export interface PartnerIds {
    sharedById: string;
    sharedWithId: string;
}
export declare enum PartnerDirection {
    SharedBy = "shared-by",
    SharedWith = "shared-with"
}
export declare class PartnerRepository {
    private db;
    constructor(db: Kysely<DB>);
    getAll(userId: string): Promise<{
        createdAt: Date;
        updatedAt: Date;
        updateId: string;
        createId: string;
        sharedById: string;
        sharedWithId: string;
        inTimeline: boolean;
        sharedBy: {
            id: string;
            email: string;
            name: string;
            profileImagePath: string;
            avatarColor: import("kysely").ExtractColumnType<DB & {
                sharedBy: import("../schema/tables/user.table").UserTable;
            }, "partner" | "sharedBy", "avatarColor">;
            profileChangedAt: string;
        } | null;
        sharedWith: {
            id: string;
            email: string;
            name: string;
            profileImagePath: string;
            avatarColor: import("kysely").ExtractColumnType<DB & {
                sharedWith: import("../schema/tables/user.table").UserTable;
            }, "partner" | "sharedWith", "avatarColor">;
            profileChangedAt: string;
        } | null;
    }[]>;
    get({ sharedWithId, sharedById }: PartnerIds): Promise<{
        createdAt: Date;
        updatedAt: Date;
        updateId: string;
        createId: string;
        sharedById: string;
        sharedWithId: string;
        inTimeline: boolean;
        sharedBy: {
            id: string;
            email: string;
            name: string;
            profileImagePath: string;
            avatarColor: import("kysely").ExtractColumnType<DB & {
                sharedBy: import("../schema/tables/user.table").UserTable;
            }, "partner" | "sharedBy", "avatarColor">;
            profileChangedAt: string;
        } | null;
        sharedWith: {
            id: string;
            email: string;
            name: string;
            profileImagePath: string;
            avatarColor: import("kysely").ExtractColumnType<DB & {
                sharedWith: import("../schema/tables/user.table").UserTable;
            }, "partner" | "sharedWith", "avatarColor">;
            profileChangedAt: string;
        } | null;
    } | undefined>;
    create(values: Insertable<PartnerTable>): Promise<{
        createdAt: Date;
        updatedAt: Date;
        updateId: string;
        createId: string;
        sharedById: string;
        sharedWithId: string;
        inTimeline: boolean;
        sharedBy: {
            id: string;
            email: string;
            name: string;
            profileImagePath: string;
            avatarColor: import("kysely").ExtractColumnType<DB & {
                sharedBy: import("../schema/tables/user.table").UserTable;
            }, "partner" | "sharedBy", "avatarColor">;
            profileChangedAt: string;
        };
        sharedWith: {
            id: string;
            email: string;
            name: string;
            profileImagePath: string;
            avatarColor: import("kysely").ExtractColumnType<DB & {
                sharedWith: import("../schema/tables/user.table").UserTable;
            }, "partner" | "sharedWith", "avatarColor">;
            profileChangedAt: string;
        };
    }>;
    update({ sharedWithId, sharedById }: PartnerIds, values: Updateable<PartnerTable>): Promise<{
        createdAt: Date;
        updatedAt: Date;
        updateId: string;
        createId: string;
        sharedById: string;
        sharedWithId: string;
        inTimeline: boolean;
        sharedBy: {
            id: string;
            email: string;
            name: string;
            profileImagePath: string;
            avatarColor: import("kysely").ExtractColumnType<DB & {
                sharedBy: import("../schema/tables/user.table").UserTable;
            }, "partner" | "sharedBy", "avatarColor">;
            profileChangedAt: string;
        };
        sharedWith: {
            id: string;
            email: string;
            name: string;
            profileImagePath: string;
            avatarColor: import("kysely").ExtractColumnType<DB & {
                sharedWith: import("../schema/tables/user.table").UserTable;
            }, "partner" | "sharedWith", "avatarColor">;
            profileChangedAt: string;
        };
    }>;
    remove({ sharedWithId, sharedById }: PartnerIds): Promise<void>;
    private builder;
}
