import { Prisma, PrismaClient } from '@prisma/client';
import { Context } from '../../context';
export type CreateUserInput = Prisma.UserUncheckedCreateInput & Partial<{
    properties: Prisma.MetadataPropertyUncheckedCreateWithoutUserInput[];
    address: Prisma.UserAddressUncheckedCreateWithoutUserInput | null;
}>;
export declare const createUser: ({ properties, address, password, ...input }: CreateUserInput, 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> & {})[];
}>;
