type CredentialCreateInput = {
    type: string;
    key: any;
    userId: number;
    appId: string;
};
export declare class CredentialRepository {
    static create(data: CredentialCreateInput): Promise<{
        key: import('../../../prisma-client').Prisma.JsonValue;
        id: number;
        type: string;
        userId: number | null;
        teamId: number | null;
        subscriptionId: string | null;
        billingCycleStart: number | null;
        appId: string | null;
        paymentStatus: string | null;
        invalid: boolean | null;
    } & {
        delegatedTo: null;
        delegatedToId: null;
    }>;
    static findByAppIdAndUserId({ appId, userId }: {
        appId: string;
        userId: number;
    }): Promise<({
        key: import('../../../prisma-client').Prisma.JsonValue;
        id: number;
        type: string;
        userId: number | null;
        teamId: number | null;
        subscriptionId: string | null;
        billingCycleStart: number | null;
        appId: string | null;
        paymentStatus: string | null;
        invalid: boolean | null;
    } & {
        delegatedTo: null;
        delegatedToId: null;
    }) | null>;
    /**
     * Doesn't retrieve key field as that has credentials
     */
    static findFirstByIdWithUser({ id }: {
        id: number;
    }): Promise<({
        user: {
            email: string;
        } | null;
        id: number;
        type: string;
        userId: number | null;
        teamId: number | null;
        appId: string | null;
        invalid: boolean | null;
    } & {
        delegatedTo: null;
        delegatedToId: null;
    }) | null>;
    /**
     * Includes 'key' field which is sensitive data.
     */
    static findFirstByIdWithKeyAndUser({ id }: {
        id: number;
    }): Promise<({
        key: import('../../../prisma-client').Prisma.JsonValue;
        user: {
            email: string;
        } | null;
        id: number;
        type: string;
        userId: number | null;
        teamId: number | null;
        appId: string | null;
        invalid: boolean | null;
    } & {
        delegatedTo: null;
        delegatedToId: null;
    }) | null>;
    static findFirstByAppIdAndUserId({ appId, userId }: {
        appId: string;
        userId: number;
    }): Promise<{
        key: import('../../../prisma-client').Prisma.JsonValue;
        id: number;
        type: string;
        userId: number | null;
        teamId: number | null;
        subscriptionId: string | null;
        billingCycleStart: number | null;
        appId: string | null;
        paymentStatus: string | null;
        invalid: boolean | null;
    } | null>;
    static findFirstByUserIdAndType({ userId, type }: {
        userId: number;
        type: string;
    }): Promise<({
        key: import('../../../prisma-client').Prisma.JsonValue;
        id: number;
        type: string;
        userId: number | null;
        teamId: number | null;
        subscriptionId: string | null;
        billingCycleStart: number | null;
        appId: string | null;
        paymentStatus: string | null;
        invalid: boolean | null;
    } & {
        delegatedTo: null;
        delegatedToId: null;
    }) | null>;
    static deleteById({ id }: {
        id: number;
    }): Promise<void>;
    static findCredentialForCalendarServiceById({ id }: {
        id: number;
    }): Promise<({
        key: import('../../../prisma-client').Prisma.JsonValue;
        user: {
            email: string;
        } | null;
        id: number;
        type: string;
        userId: number | null;
        teamId: number | null;
        appId: string | null;
        invalid: boolean | null;
    } & {
        delegatedTo: null;
        delegatedToId: null;
    }) | null>;
}
export {};
//# sourceMappingURL=credential.d.ts.map