import type { OrmClientConfig } from './client';
import { EmailModel } from './models/email';
import { PhoneNumberModel } from './models/phoneNumber';
import { CryptoAddressModel } from './models/cryptoAddress';
import { WebauthnCredentialModel } from './models/webauthnCredential';
import { AuditLogAuthModel } from './models/auditLogAuth';
import { IdentityProviderModel } from './models/identityProvider';
import { RoleTypeModel } from './models/roleType';
import { UserConnectedAccountModel } from './models/userConnectedAccount';
import { UserModel } from './models/user';
export type { OrmClientConfig, QueryResult, GraphQLError, GraphQLAdapter } from './client';
export { GraphQLRequestError, FetchAdapter } from './client';
export { QueryBuilder } from './query-builder';
export * from './select-types';
export * from './models';
export { createQueryOperations } from './query';
export { createMutationOperations } from './mutation';
/**
 * Create an ORM client instance
 *
 * @example
 * ```typescript
 * const db = createClient({
 *   endpoint: 'https://api.example.com/graphql',
 *   headers: { Authorization: 'Bearer token' },
 * });
 *
 * // Query users
 * const users = await db.user.findMany({
 *   select: { id: true, name: true },
 *   first: 10,
 * }).execute();
 *
 * // Create a user
 * const newUser = await db.user.create({
 *   data: { name: 'John', email: 'john@example.com' },
 *   select: { id: true },
 * }).execute();
 * ```
 */
export declare function createClient(config: OrmClientConfig): {
    email: EmailModel;
    phoneNumber: PhoneNumberModel;
    cryptoAddress: CryptoAddressModel;
    webauthnCredential: WebauthnCredentialModel;
    auditLogAuth: AuditLogAuthModel;
    identityProvider: IdentityProviderModel;
    roleType: RoleTypeModel;
    userConnectedAccount: UserConnectedAccountModel;
    user: UserModel;
    query: {
        currentUserAgent: (options?: {
            select?: Record<string, unknown>;
        }) => import("./query-builder").QueryBuilder<{
            currentUserAgent: string | null;
        }>;
        currentIpAddress: (options?: {
            select?: Record<string, unknown>;
        }) => import("./query-builder").QueryBuilder<{
            currentIpAddress: string | null;
        }>;
        currentUserId: (options?: {
            select?: Record<string, unknown>;
        }) => import("./query-builder").QueryBuilder<{
            currentUserId: string | null;
        }>;
        requireStepUp: (args: import("./query").RequireStepUpVariables, options?: {
            select?: Record<string, unknown>;
        }) => import("./query-builder").QueryBuilder<{
            requireStepUp: boolean | null;
        }>;
        currentUser: <S extends import("./input-types").UserSelect>(options: {
            select: S;
        } & import("./select-types").StrictSelect<S, import("./input-types").UserSelect>) => import("./query-builder").QueryBuilder<{
            currentUser: import("./select-types").InferSelectResult<import("./input-types").User, S> | null;
        }>;
    };
    mutation: {
        signOut: <S extends import("./input-types").SignOutPayloadSelect>(args: import("./mutation").SignOutVariables, options: {
            select: S;
        } & import("./select-types").StrictSelect<S, import("./input-types").SignOutPayloadSelect>) => import("./query-builder").QueryBuilder<{
            signOut: import("./select-types").InferSelectResult<import("./input-types").SignOutPayload, S> | null;
        }>;
        sendAccountDeletionEmail: <S extends import("./input-types").SendAccountDeletionEmailPayloadSelect>(args: import("./mutation").SendAccountDeletionEmailVariables, options: {
            select: S;
        } & import("./select-types").StrictSelect<S, import("./input-types").SendAccountDeletionEmailPayloadSelect>) => import("./query-builder").QueryBuilder<{
            sendAccountDeletionEmail: import("./select-types").InferSelectResult<import("./input-types").SendAccountDeletionEmailPayload, S> | null;
        }>;
        checkPassword: <S extends import("./input-types").CheckPasswordPayloadSelect>(args: import("./mutation").CheckPasswordVariables, options: {
            select: S;
        } & import("./select-types").StrictSelect<S, import("./input-types").CheckPasswordPayloadSelect>) => import("./query-builder").QueryBuilder<{
            checkPassword: import("./select-types").InferSelectResult<import("./input-types").CheckPasswordPayload, S> | null;
        }>;
        disconnectAccount: <S extends import("./input-types").DisconnectAccountPayloadSelect>(args: import("./mutation").DisconnectAccountVariables, options: {
            select: S;
        } & import("./select-types").StrictSelect<S, import("./input-types").DisconnectAccountPayloadSelect>) => import("./query-builder").QueryBuilder<{
            disconnectAccount: import("./select-types").InferSelectResult<import("./input-types").DisconnectAccountPayload, S> | null;
        }>;
        revokeApiKey: <S extends import("./input-types").RevokeApiKeyPayloadSelect>(args: import("./mutation").RevokeApiKeyVariables, options: {
            select: S;
        } & import("./select-types").StrictSelect<S, import("./input-types").RevokeApiKeyPayloadSelect>) => import("./query-builder").QueryBuilder<{
            revokeApiKey: import("./select-types").InferSelectResult<import("./input-types").RevokeApiKeyPayload, S> | null;
        }>;
        revokeSession: <S extends import("./input-types").RevokeSessionPayloadSelect>(args: import("./mutation").RevokeSessionVariables, options: {
            select: S;
        } & import("./select-types").StrictSelect<S, import("./input-types").RevokeSessionPayloadSelect>) => import("./query-builder").QueryBuilder<{
            revokeSession: import("./select-types").InferSelectResult<import("./input-types").RevokeSessionPayload, S> | null;
        }>;
        verifyPassword: <S extends import("./input-types").VerifyPasswordPayloadSelect>(args: import("./mutation").VerifyPasswordVariables, options: {
            select: S;
        } & import("./select-types").StrictSelect<S, import("./input-types").VerifyPasswordPayloadSelect>) => import("./query-builder").QueryBuilder<{
            verifyPassword: import("./select-types").InferSelectResult<import("./input-types").VerifyPasswordPayload, S> | null;
        }>;
        verifyTotp: <S extends import("./input-types").VerifyTotpPayloadSelect>(args: import("./mutation").VerifyTotpVariables, options: {
            select: S;
        } & import("./select-types").StrictSelect<S, import("./input-types").VerifyTotpPayloadSelect>) => import("./query-builder").QueryBuilder<{
            verifyTotp: import("./select-types").InferSelectResult<import("./input-types").VerifyTotpPayload, S> | null;
        }>;
        confirmDeleteAccount: <S extends import("./input-types").ConfirmDeleteAccountPayloadSelect>(args: import("./mutation").ConfirmDeleteAccountVariables, options: {
            select: S;
        } & import("./select-types").StrictSelect<S, import("./input-types").ConfirmDeleteAccountPayloadSelect>) => import("./query-builder").QueryBuilder<{
            confirmDeleteAccount: import("./select-types").InferSelectResult<import("./input-types").ConfirmDeleteAccountPayload, S> | null;
        }>;
        setPassword: <S extends import("./input-types").SetPasswordPayloadSelect>(args: import("./mutation").SetPasswordVariables, options: {
            select: S;
        } & import("./select-types").StrictSelect<S, import("./input-types").SetPasswordPayloadSelect>) => import("./query-builder").QueryBuilder<{
            setPassword: import("./select-types").InferSelectResult<import("./input-types").SetPasswordPayload, S> | null;
        }>;
        verifyEmail: <S extends import("./input-types").VerifyEmailPayloadSelect>(args: import("./mutation").VerifyEmailVariables, options: {
            select: S;
        } & import("./select-types").StrictSelect<S, import("./input-types").VerifyEmailPayloadSelect>) => import("./query-builder").QueryBuilder<{
            verifyEmail: import("./select-types").InferSelectResult<import("./input-types").VerifyEmailPayload, S> | null;
        }>;
        provisionNewUser: <S extends import("./input-types").ProvisionNewUserPayloadSelect>(args: import("./mutation").ProvisionNewUserVariables, options: {
            select: S;
        } & import("./select-types").StrictSelect<S, import("./input-types").ProvisionNewUserPayloadSelect>) => import("./query-builder").QueryBuilder<{
            provisionNewUser: import("./select-types").InferSelectResult<import("./input-types").ProvisionNewUserPayload, S> | null;
        }>;
        resetPassword: <S extends import("./input-types").ResetPasswordPayloadSelect>(args: import("./mutation").ResetPasswordVariables, options: {
            select: S;
        } & import("./select-types").StrictSelect<S, import("./input-types").ResetPasswordPayloadSelect>) => import("./query-builder").QueryBuilder<{
            resetPassword: import("./select-types").InferSelectResult<import("./input-types").ResetPasswordPayload, S> | null;
        }>;
        signInCrossOrigin: <S extends import("./input-types").SignInCrossOriginPayloadSelect>(args: import("./mutation").SignInCrossOriginVariables, options: {
            select: S;
        } & import("./select-types").StrictSelect<S, import("./input-types").SignInCrossOriginPayloadSelect>) => import("./query-builder").QueryBuilder<{
            signInCrossOrigin: import("./select-types").InferSelectResult<import("./input-types").SignInCrossOriginPayload, S> | null;
        }>;
        signUp: <S extends import("./input-types").SignUpPayloadSelect>(args: import("./mutation").SignUpVariables, options: {
            select: S;
        } & import("./select-types").StrictSelect<S, import("./input-types").SignUpPayloadSelect>) => import("./query-builder").QueryBuilder<{
            signUp: import("./select-types").InferSelectResult<import("./input-types").SignUpPayload, S> | null;
        }>;
        signIn: <S extends import("./input-types").SignInPayloadSelect>(args: import("./mutation").SignInVariables, options: {
            select: S;
        } & import("./select-types").StrictSelect<S, import("./input-types").SignInPayloadSelect>) => import("./query-builder").QueryBuilder<{
            signIn: import("./select-types").InferSelectResult<import("./input-types").SignInPayload, S> | null;
        }>;
        extendTokenExpires: <S extends import("./input-types").ExtendTokenExpiresPayloadSelect>(args: import("./mutation").ExtendTokenExpiresVariables, options: {
            select: S;
        } & import("./select-types").StrictSelect<S, import("./input-types").ExtendTokenExpiresPayloadSelect>) => import("./query-builder").QueryBuilder<{
            extendTokenExpires: import("./select-types").InferSelectResult<import("./input-types").ExtendTokenExpiresPayload, S> | null;
        }>;
        createApiKey: <S extends import("./input-types").CreateApiKeyPayloadSelect>(args: import("./mutation").CreateApiKeyVariables, options: {
            select: S;
        } & import("./select-types").StrictSelect<S, import("./input-types").CreateApiKeyPayloadSelect>) => import("./query-builder").QueryBuilder<{
            createApiKey: import("./select-types").InferSelectResult<import("./input-types").CreateApiKeyPayload, S> | null;
        }>;
        requestCrossOriginToken: <S extends import("./input-types").RequestCrossOriginTokenPayloadSelect>(args: import("./mutation").RequestCrossOriginTokenVariables, options: {
            select: S;
        } & import("./select-types").StrictSelect<S, import("./input-types").RequestCrossOriginTokenPayloadSelect>) => import("./query-builder").QueryBuilder<{
            requestCrossOriginToken: import("./select-types").InferSelectResult<import("./input-types").RequestCrossOriginTokenPayload, S> | null;
        }>;
        forgotPassword: <S extends import("./input-types").ForgotPasswordPayloadSelect>(args: import("./mutation").ForgotPasswordVariables, options: {
            select: S;
        } & import("./select-types").StrictSelect<S, import("./input-types").ForgotPasswordPayloadSelect>) => import("./query-builder").QueryBuilder<{
            forgotPassword: import("./select-types").InferSelectResult<import("./input-types").ForgotPasswordPayload, S> | null;
        }>;
        sendVerificationEmail: <S extends import("./input-types").SendVerificationEmailPayloadSelect>(args: import("./mutation").SendVerificationEmailVariables, options: {
            select: S;
        } & import("./select-types").StrictSelect<S, import("./input-types").SendVerificationEmailPayloadSelect>) => import("./query-builder").QueryBuilder<{
            sendVerificationEmail: import("./select-types").InferSelectResult<import("./input-types").SendVerificationEmailPayload, S> | null;
        }>;
        provisionBucket: <S extends import("./input-types").ProvisionBucketPayloadSelect>(args: import("./mutation").ProvisionBucketVariables, options: {
            select: S;
        } & import("./select-types").StrictSelect<S, import("./input-types").ProvisionBucketPayloadSelect>) => import("./query-builder").QueryBuilder<{
            provisionBucket: import("./select-types").InferSelectResult<import("./input-types").ProvisionBucketPayload, S> | null;
        }>;
    };
};
