import { Prisma, PrismaClient } from '@prisma/client';
import { Context } from '../../context';
import { CreateUserInput } from './user.mutation';
export declare const deleteUserById: (id: string, authenticate: Context['authenticate'], user: PrismaClient['user']) => Prisma.Prisma__UserClient<{
    name: string;
    id: string;
    createdAt: Date;
    modifiedAt: Date;
    firstName: string;
    email: string;
    emailVerifiedAt: Date;
    preferredName: string;
    flair: string;
    password: string;
    active: boolean;
    lastLogin: Date;
    roleIDs: string[];
    userImageID: string;
    address: import("@prisma/client/runtime/library").GetResult<{
        createdAt: Date;
        modifiedAt: Date;
        company: string;
        streetAddress: string;
        streetAddress2: string;
        zipCode: string;
        city: string;
        country: string;
        userId: string;
    }, unknown> & {};
    properties: (import("@prisma/client/runtime/library").GetResult<{
        id: string;
        createdAt: Date;
        modifiedAt: Date;
        key: string;
        value: string;
        public: boolean;
        articleRevisionId: string;
        pageRevisionId: string;
        subscriptionId: string;
        userId: string;
    }, unknown> & {})[];
    oauth2Accounts: (import("@prisma/client/runtime/library").GetResult<{
        id: string;
        createdAt: Date;
        modifiedAt: Date;
        type: string;
        provider: string;
        providerAccountId: string;
        refreshToken: string;
        accessToken: string;
        expiresAt: number;
        tokenType: string;
        scope: string;
        idToken: string;
        oauthTokenSecret: string;
        oauthToken: string;
        sessionState: string;
        userId: string;
    }, unknown> & {})[];
    paymentProviderCustomers: (import("@prisma/client/runtime/library").GetResult<{
        id: string;
        createdAt: Date;
        modifiedAt: Date;
        paymentProviderID: string;
        customerID: string;
        userId: string;
    }, unknown> & {})[];
}, never, import("@prisma/client/runtime/library").DefaultArgs>;
export declare const createAdminUser: (input: CreateUserInput, authenticate: Context['authenticate'], hashCostFactor: Context['hashCostFactor'], prisma: PrismaClient, mailContext: Context['mailContext']) => Promise<{
    name: string;
    id: string;
    createdAt: Date;
    modifiedAt: Date;
    firstName: string;
    email: string;
    emailVerifiedAt: Date;
    preferredName: string;
    flair: string;
    password: string;
    active: boolean;
    lastLogin: Date;
    roleIDs: string[];
    userImageID: string;
    address: import("@prisma/client/runtime/library").GetResult<{
        createdAt: Date;
        modifiedAt: Date;
        company: string;
        streetAddress: string;
        streetAddress2: string;
        zipCode: string;
        city: string;
        country: string;
        userId: string;
    }, unknown> & {};
    properties: (import("@prisma/client/runtime/library").GetResult<{
        id: string;
        createdAt: Date;
        modifiedAt: Date;
        key: string;
        value: string;
        public: boolean;
        articleRevisionId: string;
        pageRevisionId: string;
        subscriptionId: string;
        userId: string;
    }, unknown> & {})[];
    oauth2Accounts: (import("@prisma/client/runtime/library").GetResult<{
        id: string;
        createdAt: Date;
        modifiedAt: Date;
        type: string;
        provider: string;
        providerAccountId: string;
        refreshToken: string;
        accessToken: string;
        expiresAt: number;
        tokenType: string;
        scope: string;
        idToken: string;
        oauthTokenSecret: string;
        oauthToken: string;
        sessionState: string;
        userId: string;
    }, unknown> & {})[];
    paymentProviderCustomers: (import("@prisma/client/runtime/library").GetResult<{
        id: string;
        createdAt: Date;
        modifiedAt: Date;
        paymentProviderID: string;
        customerID: string;
        userId: string;
    }, unknown> & {})[];
}>;
type UpdateUserInput = Prisma.UserUncheckedUpdateInput & {
    properties: Prisma.MetadataPropertyCreateManyUserInput[];
    address: Prisma.UserAddressUncheckedCreateWithoutUserInput | null;
};
export declare const updateAdminUser: (id: string, { properties, address, ...input }: UpdateUserInput, authenticate: Context['authenticate'], user: PrismaClient['user']) => Promise<{
    name: string;
    id: string;
    createdAt: Date;
    modifiedAt: Date;
    firstName: string;
    email: string;
    emailVerifiedAt: Date;
    preferredName: string;
    flair: string;
    password: string;
    active: boolean;
    lastLogin: Date;
    roleIDs: string[];
    userImageID: string;
    address: import("@prisma/client/runtime/library").GetResult<{
        createdAt: Date;
        modifiedAt: Date;
        company: string;
        streetAddress: string;
        streetAddress2: string;
        zipCode: string;
        city: string;
        country: string;
        userId: string;
    }, unknown> & {};
    properties: (import("@prisma/client/runtime/library").GetResult<{
        id: string;
        createdAt: Date;
        modifiedAt: Date;
        key: string;
        value: string;
        public: boolean;
        articleRevisionId: string;
        pageRevisionId: string;
        subscriptionId: string;
        userId: string;
    }, unknown> & {})[];
    oauth2Accounts: (import("@prisma/client/runtime/library").GetResult<{
        id: string;
        createdAt: Date;
        modifiedAt: Date;
        type: string;
        provider: string;
        providerAccountId: string;
        refreshToken: string;
        accessToken: string;
        expiresAt: number;
        tokenType: string;
        scope: string;
        idToken: string;
        oauthTokenSecret: string;
        oauthToken: string;
        sessionState: string;
        userId: string;
    }, unknown> & {})[];
    paymentProviderCustomers: (import("@prisma/client/runtime/library").GetResult<{
        id: string;
        createdAt: Date;
        modifiedAt: Date;
        paymentProviderID: string;
        customerID: string;
        userId: string;
    }, unknown> & {})[];
}>;
export declare const resetUserPassword: (id: string, password: string, sendMail: boolean, hashCostFactor: number, authenticate: Context['authenticate'], mailContext: Context['mailContext'], userClient: PrismaClient['user']) => Promise<{
    name: string;
    id: string;
    createdAt: Date;
    modifiedAt: Date;
    firstName: string;
    email: string;
    emailVerifiedAt: Date;
    preferredName: string;
    flair: string;
    password: string;
    active: boolean;
    lastLogin: Date;
    roleIDs: string[];
    userImageID: string;
    address: import("@prisma/client/runtime/library").GetResult<{
        createdAt: Date;
        modifiedAt: Date;
        company: string;
        streetAddress: string;
        streetAddress2: string;
        zipCode: string;
        city: string;
        country: string;
        userId: string;
    }, unknown> & {};
    properties: (import("@prisma/client/runtime/library").GetResult<{
        id: string;
        createdAt: Date;
        modifiedAt: Date;
        key: string;
        value: string;
        public: boolean;
        articleRevisionId: string;
        pageRevisionId: string;
        subscriptionId: string;
        userId: string;
    }, unknown> & {})[];
    oauth2Accounts: (import("@prisma/client/runtime/library").GetResult<{
        id: string;
        createdAt: Date;
        modifiedAt: Date;
        type: string;
        provider: string;
        providerAccountId: string;
        refreshToken: string;
        accessToken: string;
        expiresAt: number;
        tokenType: string;
        scope: string;
        idToken: string;
        oauthTokenSecret: string;
        oauthToken: string;
        sessionState: string;
        userId: string;
    }, unknown> & {})[];
    paymentProviderCustomers: (import("@prisma/client/runtime/library").GetResult<{
        id: string;
        createdAt: Date;
        modifiedAt: Date;
        paymentProviderID: string;
        customerID: string;
        userId: string;
    }, unknown> & {})[];
}>;
export {};
