
/* !!! This is code generated by Prisma. Do not edit directly. !!! */
/* eslint-disable */
// biome-ignore-all lint: generated file
// @ts-nocheck
/*
 * WARNING: This is an internal file that is subject to change!
 *
 * 🛑 Under no circumstances should you import this file directly! 🛑
 *
 * All exports from this file are wrapped under a `Prisma` namespace object in the client.ts file.
 * While this enables partial backward compatibility, it is not part of the stable public API.
 *
 * If you are looking for your Models, Enums, and Input Types, please import them from the respective
 * model files in the `model` directory!
 */

import * as runtime from "@prisma/client/runtime/client"
import type * as Prisma from "../models.js"
import { type PrismaClient } from "./class.js"

export type * from '../models.js'

export type DMMF = typeof runtime.DMMF

export type PrismaPromise<T> = runtime.Types.Public.PrismaPromise<T>

/**
 * Prisma Errors
 */

export const PrismaClientKnownRequestError = runtime.PrismaClientKnownRequestError
export type PrismaClientKnownRequestError = runtime.PrismaClientKnownRequestError

export const PrismaClientUnknownRequestError = runtime.PrismaClientUnknownRequestError
export type PrismaClientUnknownRequestError = runtime.PrismaClientUnknownRequestError

export const PrismaClientRustPanicError = runtime.PrismaClientRustPanicError
export type PrismaClientRustPanicError = runtime.PrismaClientRustPanicError

export const PrismaClientInitializationError = runtime.PrismaClientInitializationError
export type PrismaClientInitializationError = runtime.PrismaClientInitializationError

export const PrismaClientValidationError = runtime.PrismaClientValidationError
export type PrismaClientValidationError = runtime.PrismaClientValidationError

/**
 * Re-export of sql-template-tag
 */
export const sql = runtime.sqltag
export const empty = runtime.empty
export const join = runtime.join
export const raw = runtime.raw
export const Sql = runtime.Sql
export type Sql = runtime.Sql



/**
 * Decimal.js
 */
export const Decimal = runtime.Decimal
export type Decimal = runtime.Decimal

export type DecimalJsLike = runtime.DecimalJsLike

/**
* Extensions
*/
export type Extension = runtime.Types.Extensions.UserArgs
export const getExtensionContext = runtime.Extensions.getExtensionContext
export type Args<T, F extends runtime.Operation> = runtime.Types.Public.Args<T, F>
export type Payload<T, F extends runtime.Operation = never> = runtime.Types.Public.Payload<T, F>
export type Result<T, A, F extends runtime.Operation> = runtime.Types.Public.Result<T, A, F>
export type Exact<A, W> = runtime.Types.Public.Exact<A, W>

export type PrismaVersion = {
  client: string
  engine: string
}

/**
 * Prisma Client JS version: 7.7.0
 * Query Engine version: 75cbdc1eb7150937890ad5465d861175c6624711
 */
export const prismaVersion: PrismaVersion = {
  client: "7.7.0",
  engine: "75cbdc1eb7150937890ad5465d861175c6624711"
}

/**
 * Utility Types
 */

export type Bytes = runtime.Bytes
export type JsonObject = runtime.JsonObject
export type JsonArray = runtime.JsonArray
export type JsonValue = runtime.JsonValue
export type InputJsonObject = runtime.InputJsonObject
export type InputJsonArray = runtime.InputJsonArray
export type InputJsonValue = runtime.InputJsonValue


export const NullTypes = {
  DbNull: runtime.NullTypes.DbNull as (new (secret: never) => typeof runtime.DbNull),
  JsonNull: runtime.NullTypes.JsonNull as (new (secret: never) => typeof runtime.JsonNull),
  AnyNull: runtime.NullTypes.AnyNull as (new (secret: never) => typeof runtime.AnyNull),
}
/**
 * Helper for filtering JSON entries that have `null` on the database (empty on the db)
 *
 * @see https://www.prisma.io/docs/concepts/components/prisma-client/working-with-fields/working-with-json-fields#filtering-on-a-json-field
 */
export const DbNull = runtime.DbNull

/**
 * Helper for filtering JSON entries that have JSON `null` values (not empty on the db)
 *
 * @see https://www.prisma.io/docs/concepts/components/prisma-client/working-with-fields/working-with-json-fields#filtering-on-a-json-field
 */
export const JsonNull = runtime.JsonNull

/**
 * Helper for filtering JSON entries that are `Prisma.DbNull` or `Prisma.JsonNull`
 *
 * @see https://www.prisma.io/docs/concepts/components/prisma-client/working-with-fields/working-with-json-fields#filtering-on-a-json-field
 */
export const AnyNull = runtime.AnyNull


type SelectAndInclude = {
  select: any
  include: any
}

type SelectAndOmit = {
  select: any
  omit: any
}

/**
 * From T, pick a set of properties whose keys are in the union K
 */
type Prisma__Pick<T, K extends keyof T> = {
    [P in K]: T[P];
};

export type Enumerable<T> = T | Array<T>;

/**
 * Subset
 * @desc From `T` pick properties that exist in `U`. Simple version of Intersection
 */
export type Subset<T, U> = {
  [key in keyof T]: key extends keyof U ? T[key] : never;
};

/**
 * SelectSubset
 * @desc From `T` pick properties that exist in `U`. Simple version of Intersection.
 * Additionally, it validates, if both select and include are present. If the case, it errors.
 */
export type SelectSubset<T, U> = {
  [key in keyof T]: key extends keyof U ? T[key] : never
} &
  (T extends SelectAndInclude
    ? 'Please either choose `select` or `include`.'
    : T extends SelectAndOmit
      ? 'Please either choose `select` or `omit`.'
      : {})

/**
 * Subset + Intersection
 * @desc From `T` pick properties that exist in `U` and intersect `K`
 */
export type SubsetIntersection<T, U, K> = {
  [key in keyof T]: key extends keyof U ? T[key] : never
} &
  K

type Without<T, U> = { [P in Exclude<keyof T, keyof U>]?: never };

/**
 * XOR is needed to have a real mutually exclusive union type
 * https://stackoverflow.com/questions/42123407/does-typescript-support-mutually-exclusive-types
 */
export type XOR<T, U> =
  T extends object ?
  U extends object ?
    (Without<T, U> & U) | (Without<U, T> & T)
  : U : T


/**
 * Is T a Record?
 */
type IsObject<T extends any> = T extends Array<any>
? False
: T extends Date
? False
: T extends Uint8Array
? False
: T extends BigInt
? False
: T extends object
? True
: False


/**
 * If it's T[], return T
 */
export type UnEnumerate<T extends unknown> = T extends Array<infer U> ? U : T

/**
 * From ts-toolbelt
 */

type __Either<O extends object, K extends Key> = Omit<O, K> &
  {
    // Merge all but K
    [P in K]: Prisma__Pick<O, P & keyof O> // With K possibilities
  }[K]

type EitherStrict<O extends object, K extends Key> = Strict<__Either<O, K>>

type EitherLoose<O extends object, K extends Key> = ComputeRaw<__Either<O, K>>

type _Either<
  O extends object,
  K extends Key,
  strict extends Boolean
> = {
  1: EitherStrict<O, K>
  0: EitherLoose<O, K>
}[strict]

export type Either<
  O extends object,
  K extends Key,
  strict extends Boolean = 1
> = O extends unknown ? _Either<O, K, strict> : never

export type Union = any

export type PatchUndefined<O extends object, O1 extends object> = {
  [K in keyof O]: O[K] extends undefined ? At<O1, K> : O[K]
} & {}

/** Helper Types for "Merge" **/
export type IntersectOf<U extends Union> = (
  U extends unknown ? (k: U) => void : never
) extends (k: infer I) => void
  ? I
  : never

export type Overwrite<O extends object, O1 extends object> = {
    [K in keyof O]: K extends keyof O1 ? O1[K] : O[K];
} & {};

type _Merge<U extends object> = IntersectOf<Overwrite<U, {
    [K in keyof U]-?: At<U, K>;
}>>;

type Key = string | number | symbol;
type AtStrict<O extends object, K extends Key> = O[K & keyof O];
type AtLoose<O extends object, K extends Key> = O extends unknown ? AtStrict<O, K> : never;
export type At<O extends object, K extends Key, strict extends Boolean = 1> = {
    1: AtStrict<O, K>;
    0: AtLoose<O, K>;
}[strict];

export type ComputeRaw<A extends any> = A extends Function ? A : {
  [K in keyof A]: A[K];
} & {};

export type OptionalFlat<O> = {
  [K in keyof O]?: O[K];
} & {};

type _Record<K extends keyof any, T> = {
  [P in K]: T;
};

// cause typescript not to expand types and preserve names
type NoExpand<T> = T extends unknown ? T : never;

// this type assumes the passed object is entirely optional
export type AtLeast<O extends object, K extends string> = NoExpand<
  O extends unknown
  ? | (K extends keyof O ? { [P in K]: O[P] } & O : O)
    | {[P in keyof O as P extends K ? P : never]-?: O[P]} & O
  : never>;

type _Strict<U, _U = U> = U extends unknown ? U & OptionalFlat<_Record<Exclude<Keys<_U>, keyof U>, never>> : never;

export type Strict<U extends object> = ComputeRaw<_Strict<U>>;
/** End Helper Types for "Merge" **/

export type Merge<U extends object> = ComputeRaw<_Merge<Strict<U>>>;

export type Boolean = True | False

export type True = 1

export type False = 0

export type Not<B extends Boolean> = {
  0: 1
  1: 0
}[B]

export type Extends<A1 extends any, A2 extends any> = [A1] extends [never]
  ? 0 // anything `never` is false
  : A1 extends A2
  ? 1
  : 0

export type Has<U extends Union, U1 extends Union> = Not<
  Extends<Exclude<U1, U>, U1>
>

export type Or<B1 extends Boolean, B2 extends Boolean> = {
  0: {
    0: 0
    1: 1
  }
  1: {
    0: 1
    1: 1
  }
}[B1][B2]

export type Keys<U extends Union> = U extends unknown ? keyof U : never

export type GetScalarType<T, O> = O extends object ? {
  [P in keyof T]: P extends keyof O
    ? O[P]
    : never
} : never

type FieldPaths<
  T,
  U = Omit<T, '_avg' | '_sum' | '_count' | '_min' | '_max'>
> = IsObject<T> extends True ? U : T

export type GetHavingFields<T> = {
  [K in keyof T]: Or<
    Or<Extends<'OR', K>, Extends<'AND', K>>,
    Extends<'NOT', K>
  > extends True
    ? // infer is only needed to not hit TS limit
      // based on the brilliant idea of Pierre-Antoine Mills
      // https://github.com/microsoft/TypeScript/issues/30188#issuecomment-478938437
      T[K] extends infer TK
      ? GetHavingFields<UnEnumerate<TK> extends object ? Merge<UnEnumerate<TK>> : never>
      : never
    : {} extends FieldPaths<T[K]>
    ? never
    : K
}[keyof T]

/**
 * Convert tuple to union
 */
type _TupleToUnion<T> = T extends (infer E)[] ? E : never
type TupleToUnion<K extends readonly any[]> = _TupleToUnion<K>
export type MaybeTupleToUnion<T> = T extends any[] ? TupleToUnion<T> : T

/**
 * Like `Pick`, but additionally can also accept an array of keys
 */
export type PickEnumerable<T, K extends Enumerable<keyof T> | keyof T> = Prisma__Pick<T, MaybeTupleToUnion<K>>

/**
 * Exclude all keys with underscores
 */
export type ExcludeUnderscoreKeys<T extends string> = T extends `_${string}` ? never : T


export type FieldRef<Model, FieldType> = runtime.FieldRef<Model, FieldType>

type FieldRefInputType<Model, FieldType> = Model extends never ? never : FieldRef<Model, FieldType>


export const ModelName = {
  User: 'User',
  Session: 'Session',
  Account: 'Account',
  Verification: 'Verification',
  Apikey: 'Apikey',
  Organization: 'Organization',
  OrganizationRole: 'OrganizationRole',
  Member: 'Member',
  Invitation: 'Invitation',
  Subscription: 'Subscription',
  PhoneNumber: 'PhoneNumber',
  Agent: 'Agent',
  AgentConfiguration: 'AgentConfiguration',
  KnowledgeSource: 'KnowledgeSource',
  CallLog: 'CallLog',
  CallTranscript: 'CallTranscript',
  OutboundCall: 'OutboundCall',
  Campaign: 'Campaign',
  Tool: 'Tool',
  McpServerCatalogItem: 'McpServerCatalogItem',
  McpConnection: 'McpConnection',
  AgentMcpConnection: 'AgentMcpConnection',
  McpToolExecutionLog: 'McpToolExecutionLog',
  Secret: 'Secret',
  AuditLog: 'AuditLog'
} as const

export type ModelName = (typeof ModelName)[keyof typeof ModelName]



export interface TypeMapCb<GlobalOmitOptions = {}> extends runtime.Types.Utils.Fn<{extArgs: runtime.Types.Extensions.InternalArgs }, runtime.Types.Utils.Record<string, any>> {
  returns: TypeMap<this['params']['extArgs'], GlobalOmitOptions>
}

export type TypeMap<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs, GlobalOmitOptions = {}> = {
  globalOmitOptions: {
    omit: GlobalOmitOptions
  }
  meta: {
    modelProps: "user" | "session" | "account" | "verification" | "apikey" | "organization" | "organizationRole" | "member" | "invitation" | "subscription" | "phoneNumber" | "agent" | "agentConfiguration" | "knowledgeSource" | "callLog" | "callTranscript" | "outboundCall" | "campaign" | "tool" | "mcpServerCatalogItem" | "mcpConnection" | "agentMcpConnection" | "mcpToolExecutionLog" | "secret" | "auditLog"
    txIsolationLevel: TransactionIsolationLevel
  }
  model: {
    User: {
      payload: Prisma.$UserPayload<ExtArgs>
      fields: Prisma.UserFieldRefs
      operations: {
        findUnique: {
          args: Prisma.UserFindUniqueArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$UserPayload> | null
        }
        findUniqueOrThrow: {
          args: Prisma.UserFindUniqueOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$UserPayload>
        }
        findFirst: {
          args: Prisma.UserFindFirstArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$UserPayload> | null
        }
        findFirstOrThrow: {
          args: Prisma.UserFindFirstOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$UserPayload>
        }
        findMany: {
          args: Prisma.UserFindManyArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$UserPayload>[]
        }
        create: {
          args: Prisma.UserCreateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$UserPayload>
        }
        createMany: {
          args: Prisma.UserCreateManyArgs<ExtArgs>
          result: BatchPayload
        }
        createManyAndReturn: {
          args: Prisma.UserCreateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$UserPayload>[]
        }
        delete: {
          args: Prisma.UserDeleteArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$UserPayload>
        }
        update: {
          args: Prisma.UserUpdateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$UserPayload>
        }
        deleteMany: {
          args: Prisma.UserDeleteManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateMany: {
          args: Prisma.UserUpdateManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateManyAndReturn: {
          args: Prisma.UserUpdateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$UserPayload>[]
        }
        upsert: {
          args: Prisma.UserUpsertArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$UserPayload>
        }
        aggregate: {
          args: Prisma.UserAggregateArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.AggregateUser>
        }
        groupBy: {
          args: Prisma.UserGroupByArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.UserGroupByOutputType>[]
        }
        count: {
          args: Prisma.UserCountArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.UserCountAggregateOutputType> | number
        }
      }
    }
    Session: {
      payload: Prisma.$SessionPayload<ExtArgs>
      fields: Prisma.SessionFieldRefs
      operations: {
        findUnique: {
          args: Prisma.SessionFindUniqueArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$SessionPayload> | null
        }
        findUniqueOrThrow: {
          args: Prisma.SessionFindUniqueOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$SessionPayload>
        }
        findFirst: {
          args: Prisma.SessionFindFirstArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$SessionPayload> | null
        }
        findFirstOrThrow: {
          args: Prisma.SessionFindFirstOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$SessionPayload>
        }
        findMany: {
          args: Prisma.SessionFindManyArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$SessionPayload>[]
        }
        create: {
          args: Prisma.SessionCreateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$SessionPayload>
        }
        createMany: {
          args: Prisma.SessionCreateManyArgs<ExtArgs>
          result: BatchPayload
        }
        createManyAndReturn: {
          args: Prisma.SessionCreateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$SessionPayload>[]
        }
        delete: {
          args: Prisma.SessionDeleteArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$SessionPayload>
        }
        update: {
          args: Prisma.SessionUpdateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$SessionPayload>
        }
        deleteMany: {
          args: Prisma.SessionDeleteManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateMany: {
          args: Prisma.SessionUpdateManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateManyAndReturn: {
          args: Prisma.SessionUpdateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$SessionPayload>[]
        }
        upsert: {
          args: Prisma.SessionUpsertArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$SessionPayload>
        }
        aggregate: {
          args: Prisma.SessionAggregateArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.AggregateSession>
        }
        groupBy: {
          args: Prisma.SessionGroupByArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.SessionGroupByOutputType>[]
        }
        count: {
          args: Prisma.SessionCountArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.SessionCountAggregateOutputType> | number
        }
      }
    }
    Account: {
      payload: Prisma.$AccountPayload<ExtArgs>
      fields: Prisma.AccountFieldRefs
      operations: {
        findUnique: {
          args: Prisma.AccountFindUniqueArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$AccountPayload> | null
        }
        findUniqueOrThrow: {
          args: Prisma.AccountFindUniqueOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$AccountPayload>
        }
        findFirst: {
          args: Prisma.AccountFindFirstArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$AccountPayload> | null
        }
        findFirstOrThrow: {
          args: Prisma.AccountFindFirstOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$AccountPayload>
        }
        findMany: {
          args: Prisma.AccountFindManyArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$AccountPayload>[]
        }
        create: {
          args: Prisma.AccountCreateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$AccountPayload>
        }
        createMany: {
          args: Prisma.AccountCreateManyArgs<ExtArgs>
          result: BatchPayload
        }
        createManyAndReturn: {
          args: Prisma.AccountCreateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$AccountPayload>[]
        }
        delete: {
          args: Prisma.AccountDeleteArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$AccountPayload>
        }
        update: {
          args: Prisma.AccountUpdateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$AccountPayload>
        }
        deleteMany: {
          args: Prisma.AccountDeleteManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateMany: {
          args: Prisma.AccountUpdateManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateManyAndReturn: {
          args: Prisma.AccountUpdateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$AccountPayload>[]
        }
        upsert: {
          args: Prisma.AccountUpsertArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$AccountPayload>
        }
        aggregate: {
          args: Prisma.AccountAggregateArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.AggregateAccount>
        }
        groupBy: {
          args: Prisma.AccountGroupByArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.AccountGroupByOutputType>[]
        }
        count: {
          args: Prisma.AccountCountArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.AccountCountAggregateOutputType> | number
        }
      }
    }
    Verification: {
      payload: Prisma.$VerificationPayload<ExtArgs>
      fields: Prisma.VerificationFieldRefs
      operations: {
        findUnique: {
          args: Prisma.VerificationFindUniqueArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$VerificationPayload> | null
        }
        findUniqueOrThrow: {
          args: Prisma.VerificationFindUniqueOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$VerificationPayload>
        }
        findFirst: {
          args: Prisma.VerificationFindFirstArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$VerificationPayload> | null
        }
        findFirstOrThrow: {
          args: Prisma.VerificationFindFirstOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$VerificationPayload>
        }
        findMany: {
          args: Prisma.VerificationFindManyArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$VerificationPayload>[]
        }
        create: {
          args: Prisma.VerificationCreateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$VerificationPayload>
        }
        createMany: {
          args: Prisma.VerificationCreateManyArgs<ExtArgs>
          result: BatchPayload
        }
        createManyAndReturn: {
          args: Prisma.VerificationCreateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$VerificationPayload>[]
        }
        delete: {
          args: Prisma.VerificationDeleteArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$VerificationPayload>
        }
        update: {
          args: Prisma.VerificationUpdateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$VerificationPayload>
        }
        deleteMany: {
          args: Prisma.VerificationDeleteManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateMany: {
          args: Prisma.VerificationUpdateManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateManyAndReturn: {
          args: Prisma.VerificationUpdateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$VerificationPayload>[]
        }
        upsert: {
          args: Prisma.VerificationUpsertArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$VerificationPayload>
        }
        aggregate: {
          args: Prisma.VerificationAggregateArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.AggregateVerification>
        }
        groupBy: {
          args: Prisma.VerificationGroupByArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.VerificationGroupByOutputType>[]
        }
        count: {
          args: Prisma.VerificationCountArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.VerificationCountAggregateOutputType> | number
        }
      }
    }
    Apikey: {
      payload: Prisma.$ApikeyPayload<ExtArgs>
      fields: Prisma.ApikeyFieldRefs
      operations: {
        findUnique: {
          args: Prisma.ApikeyFindUniqueArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$ApikeyPayload> | null
        }
        findUniqueOrThrow: {
          args: Prisma.ApikeyFindUniqueOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$ApikeyPayload>
        }
        findFirst: {
          args: Prisma.ApikeyFindFirstArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$ApikeyPayload> | null
        }
        findFirstOrThrow: {
          args: Prisma.ApikeyFindFirstOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$ApikeyPayload>
        }
        findMany: {
          args: Prisma.ApikeyFindManyArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$ApikeyPayload>[]
        }
        create: {
          args: Prisma.ApikeyCreateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$ApikeyPayload>
        }
        createMany: {
          args: Prisma.ApikeyCreateManyArgs<ExtArgs>
          result: BatchPayload
        }
        createManyAndReturn: {
          args: Prisma.ApikeyCreateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$ApikeyPayload>[]
        }
        delete: {
          args: Prisma.ApikeyDeleteArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$ApikeyPayload>
        }
        update: {
          args: Prisma.ApikeyUpdateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$ApikeyPayload>
        }
        deleteMany: {
          args: Prisma.ApikeyDeleteManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateMany: {
          args: Prisma.ApikeyUpdateManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateManyAndReturn: {
          args: Prisma.ApikeyUpdateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$ApikeyPayload>[]
        }
        upsert: {
          args: Prisma.ApikeyUpsertArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$ApikeyPayload>
        }
        aggregate: {
          args: Prisma.ApikeyAggregateArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.AggregateApikey>
        }
        groupBy: {
          args: Prisma.ApikeyGroupByArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.ApikeyGroupByOutputType>[]
        }
        count: {
          args: Prisma.ApikeyCountArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.ApikeyCountAggregateOutputType> | number
        }
      }
    }
    Organization: {
      payload: Prisma.$OrganizationPayload<ExtArgs>
      fields: Prisma.OrganizationFieldRefs
      operations: {
        findUnique: {
          args: Prisma.OrganizationFindUniqueArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$OrganizationPayload> | null
        }
        findUniqueOrThrow: {
          args: Prisma.OrganizationFindUniqueOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$OrganizationPayload>
        }
        findFirst: {
          args: Prisma.OrganizationFindFirstArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$OrganizationPayload> | null
        }
        findFirstOrThrow: {
          args: Prisma.OrganizationFindFirstOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$OrganizationPayload>
        }
        findMany: {
          args: Prisma.OrganizationFindManyArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$OrganizationPayload>[]
        }
        create: {
          args: Prisma.OrganizationCreateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$OrganizationPayload>
        }
        createMany: {
          args: Prisma.OrganizationCreateManyArgs<ExtArgs>
          result: BatchPayload
        }
        createManyAndReturn: {
          args: Prisma.OrganizationCreateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$OrganizationPayload>[]
        }
        delete: {
          args: Prisma.OrganizationDeleteArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$OrganizationPayload>
        }
        update: {
          args: Prisma.OrganizationUpdateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$OrganizationPayload>
        }
        deleteMany: {
          args: Prisma.OrganizationDeleteManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateMany: {
          args: Prisma.OrganizationUpdateManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateManyAndReturn: {
          args: Prisma.OrganizationUpdateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$OrganizationPayload>[]
        }
        upsert: {
          args: Prisma.OrganizationUpsertArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$OrganizationPayload>
        }
        aggregate: {
          args: Prisma.OrganizationAggregateArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.AggregateOrganization>
        }
        groupBy: {
          args: Prisma.OrganizationGroupByArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.OrganizationGroupByOutputType>[]
        }
        count: {
          args: Prisma.OrganizationCountArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.OrganizationCountAggregateOutputType> | number
        }
      }
    }
    OrganizationRole: {
      payload: Prisma.$OrganizationRolePayload<ExtArgs>
      fields: Prisma.OrganizationRoleFieldRefs
      operations: {
        findUnique: {
          args: Prisma.OrganizationRoleFindUniqueArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$OrganizationRolePayload> | null
        }
        findUniqueOrThrow: {
          args: Prisma.OrganizationRoleFindUniqueOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$OrganizationRolePayload>
        }
        findFirst: {
          args: Prisma.OrganizationRoleFindFirstArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$OrganizationRolePayload> | null
        }
        findFirstOrThrow: {
          args: Prisma.OrganizationRoleFindFirstOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$OrganizationRolePayload>
        }
        findMany: {
          args: Prisma.OrganizationRoleFindManyArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$OrganizationRolePayload>[]
        }
        create: {
          args: Prisma.OrganizationRoleCreateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$OrganizationRolePayload>
        }
        createMany: {
          args: Prisma.OrganizationRoleCreateManyArgs<ExtArgs>
          result: BatchPayload
        }
        createManyAndReturn: {
          args: Prisma.OrganizationRoleCreateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$OrganizationRolePayload>[]
        }
        delete: {
          args: Prisma.OrganizationRoleDeleteArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$OrganizationRolePayload>
        }
        update: {
          args: Prisma.OrganizationRoleUpdateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$OrganizationRolePayload>
        }
        deleteMany: {
          args: Prisma.OrganizationRoleDeleteManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateMany: {
          args: Prisma.OrganizationRoleUpdateManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateManyAndReturn: {
          args: Prisma.OrganizationRoleUpdateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$OrganizationRolePayload>[]
        }
        upsert: {
          args: Prisma.OrganizationRoleUpsertArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$OrganizationRolePayload>
        }
        aggregate: {
          args: Prisma.OrganizationRoleAggregateArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.AggregateOrganizationRole>
        }
        groupBy: {
          args: Prisma.OrganizationRoleGroupByArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.OrganizationRoleGroupByOutputType>[]
        }
        count: {
          args: Prisma.OrganizationRoleCountArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.OrganizationRoleCountAggregateOutputType> | number
        }
      }
    }
    Member: {
      payload: Prisma.$MemberPayload<ExtArgs>
      fields: Prisma.MemberFieldRefs
      operations: {
        findUnique: {
          args: Prisma.MemberFindUniqueArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$MemberPayload> | null
        }
        findUniqueOrThrow: {
          args: Prisma.MemberFindUniqueOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$MemberPayload>
        }
        findFirst: {
          args: Prisma.MemberFindFirstArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$MemberPayload> | null
        }
        findFirstOrThrow: {
          args: Prisma.MemberFindFirstOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$MemberPayload>
        }
        findMany: {
          args: Prisma.MemberFindManyArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$MemberPayload>[]
        }
        create: {
          args: Prisma.MemberCreateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$MemberPayload>
        }
        createMany: {
          args: Prisma.MemberCreateManyArgs<ExtArgs>
          result: BatchPayload
        }
        createManyAndReturn: {
          args: Prisma.MemberCreateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$MemberPayload>[]
        }
        delete: {
          args: Prisma.MemberDeleteArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$MemberPayload>
        }
        update: {
          args: Prisma.MemberUpdateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$MemberPayload>
        }
        deleteMany: {
          args: Prisma.MemberDeleteManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateMany: {
          args: Prisma.MemberUpdateManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateManyAndReturn: {
          args: Prisma.MemberUpdateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$MemberPayload>[]
        }
        upsert: {
          args: Prisma.MemberUpsertArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$MemberPayload>
        }
        aggregate: {
          args: Prisma.MemberAggregateArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.AggregateMember>
        }
        groupBy: {
          args: Prisma.MemberGroupByArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.MemberGroupByOutputType>[]
        }
        count: {
          args: Prisma.MemberCountArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.MemberCountAggregateOutputType> | number
        }
      }
    }
    Invitation: {
      payload: Prisma.$InvitationPayload<ExtArgs>
      fields: Prisma.InvitationFieldRefs
      operations: {
        findUnique: {
          args: Prisma.InvitationFindUniqueArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$InvitationPayload> | null
        }
        findUniqueOrThrow: {
          args: Prisma.InvitationFindUniqueOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$InvitationPayload>
        }
        findFirst: {
          args: Prisma.InvitationFindFirstArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$InvitationPayload> | null
        }
        findFirstOrThrow: {
          args: Prisma.InvitationFindFirstOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$InvitationPayload>
        }
        findMany: {
          args: Prisma.InvitationFindManyArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$InvitationPayload>[]
        }
        create: {
          args: Prisma.InvitationCreateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$InvitationPayload>
        }
        createMany: {
          args: Prisma.InvitationCreateManyArgs<ExtArgs>
          result: BatchPayload
        }
        createManyAndReturn: {
          args: Prisma.InvitationCreateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$InvitationPayload>[]
        }
        delete: {
          args: Prisma.InvitationDeleteArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$InvitationPayload>
        }
        update: {
          args: Prisma.InvitationUpdateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$InvitationPayload>
        }
        deleteMany: {
          args: Prisma.InvitationDeleteManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateMany: {
          args: Prisma.InvitationUpdateManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateManyAndReturn: {
          args: Prisma.InvitationUpdateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$InvitationPayload>[]
        }
        upsert: {
          args: Prisma.InvitationUpsertArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$InvitationPayload>
        }
        aggregate: {
          args: Prisma.InvitationAggregateArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.AggregateInvitation>
        }
        groupBy: {
          args: Prisma.InvitationGroupByArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.InvitationGroupByOutputType>[]
        }
        count: {
          args: Prisma.InvitationCountArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.InvitationCountAggregateOutputType> | number
        }
      }
    }
    Subscription: {
      payload: Prisma.$SubscriptionPayload<ExtArgs>
      fields: Prisma.SubscriptionFieldRefs
      operations: {
        findUnique: {
          args: Prisma.SubscriptionFindUniqueArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$SubscriptionPayload> | null
        }
        findUniqueOrThrow: {
          args: Prisma.SubscriptionFindUniqueOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$SubscriptionPayload>
        }
        findFirst: {
          args: Prisma.SubscriptionFindFirstArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$SubscriptionPayload> | null
        }
        findFirstOrThrow: {
          args: Prisma.SubscriptionFindFirstOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$SubscriptionPayload>
        }
        findMany: {
          args: Prisma.SubscriptionFindManyArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$SubscriptionPayload>[]
        }
        create: {
          args: Prisma.SubscriptionCreateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$SubscriptionPayload>
        }
        createMany: {
          args: Prisma.SubscriptionCreateManyArgs<ExtArgs>
          result: BatchPayload
        }
        createManyAndReturn: {
          args: Prisma.SubscriptionCreateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$SubscriptionPayload>[]
        }
        delete: {
          args: Prisma.SubscriptionDeleteArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$SubscriptionPayload>
        }
        update: {
          args: Prisma.SubscriptionUpdateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$SubscriptionPayload>
        }
        deleteMany: {
          args: Prisma.SubscriptionDeleteManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateMany: {
          args: Prisma.SubscriptionUpdateManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateManyAndReturn: {
          args: Prisma.SubscriptionUpdateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$SubscriptionPayload>[]
        }
        upsert: {
          args: Prisma.SubscriptionUpsertArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$SubscriptionPayload>
        }
        aggregate: {
          args: Prisma.SubscriptionAggregateArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.AggregateSubscription>
        }
        groupBy: {
          args: Prisma.SubscriptionGroupByArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.SubscriptionGroupByOutputType>[]
        }
        count: {
          args: Prisma.SubscriptionCountArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.SubscriptionCountAggregateOutputType> | number
        }
      }
    }
    PhoneNumber: {
      payload: Prisma.$PhoneNumberPayload<ExtArgs>
      fields: Prisma.PhoneNumberFieldRefs
      operations: {
        findUnique: {
          args: Prisma.PhoneNumberFindUniqueArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$PhoneNumberPayload> | null
        }
        findUniqueOrThrow: {
          args: Prisma.PhoneNumberFindUniqueOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$PhoneNumberPayload>
        }
        findFirst: {
          args: Prisma.PhoneNumberFindFirstArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$PhoneNumberPayload> | null
        }
        findFirstOrThrow: {
          args: Prisma.PhoneNumberFindFirstOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$PhoneNumberPayload>
        }
        findMany: {
          args: Prisma.PhoneNumberFindManyArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$PhoneNumberPayload>[]
        }
        create: {
          args: Prisma.PhoneNumberCreateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$PhoneNumberPayload>
        }
        createMany: {
          args: Prisma.PhoneNumberCreateManyArgs<ExtArgs>
          result: BatchPayload
        }
        createManyAndReturn: {
          args: Prisma.PhoneNumberCreateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$PhoneNumberPayload>[]
        }
        delete: {
          args: Prisma.PhoneNumberDeleteArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$PhoneNumberPayload>
        }
        update: {
          args: Prisma.PhoneNumberUpdateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$PhoneNumberPayload>
        }
        deleteMany: {
          args: Prisma.PhoneNumberDeleteManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateMany: {
          args: Prisma.PhoneNumberUpdateManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateManyAndReturn: {
          args: Prisma.PhoneNumberUpdateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$PhoneNumberPayload>[]
        }
        upsert: {
          args: Prisma.PhoneNumberUpsertArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$PhoneNumberPayload>
        }
        aggregate: {
          args: Prisma.PhoneNumberAggregateArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.AggregatePhoneNumber>
        }
        groupBy: {
          args: Prisma.PhoneNumberGroupByArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.PhoneNumberGroupByOutputType>[]
        }
        count: {
          args: Prisma.PhoneNumberCountArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.PhoneNumberCountAggregateOutputType> | number
        }
      }
    }
    Agent: {
      payload: Prisma.$AgentPayload<ExtArgs>
      fields: Prisma.AgentFieldRefs
      operations: {
        findUnique: {
          args: Prisma.AgentFindUniqueArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$AgentPayload> | null
        }
        findUniqueOrThrow: {
          args: Prisma.AgentFindUniqueOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$AgentPayload>
        }
        findFirst: {
          args: Prisma.AgentFindFirstArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$AgentPayload> | null
        }
        findFirstOrThrow: {
          args: Prisma.AgentFindFirstOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$AgentPayload>
        }
        findMany: {
          args: Prisma.AgentFindManyArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$AgentPayload>[]
        }
        create: {
          args: Prisma.AgentCreateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$AgentPayload>
        }
        createMany: {
          args: Prisma.AgentCreateManyArgs<ExtArgs>
          result: BatchPayload
        }
        createManyAndReturn: {
          args: Prisma.AgentCreateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$AgentPayload>[]
        }
        delete: {
          args: Prisma.AgentDeleteArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$AgentPayload>
        }
        update: {
          args: Prisma.AgentUpdateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$AgentPayload>
        }
        deleteMany: {
          args: Prisma.AgentDeleteManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateMany: {
          args: Prisma.AgentUpdateManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateManyAndReturn: {
          args: Prisma.AgentUpdateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$AgentPayload>[]
        }
        upsert: {
          args: Prisma.AgentUpsertArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$AgentPayload>
        }
        aggregate: {
          args: Prisma.AgentAggregateArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.AggregateAgent>
        }
        groupBy: {
          args: Prisma.AgentGroupByArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.AgentGroupByOutputType>[]
        }
        count: {
          args: Prisma.AgentCountArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.AgentCountAggregateOutputType> | number
        }
      }
    }
    AgentConfiguration: {
      payload: Prisma.$AgentConfigurationPayload<ExtArgs>
      fields: Prisma.AgentConfigurationFieldRefs
      operations: {
        findUnique: {
          args: Prisma.AgentConfigurationFindUniqueArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$AgentConfigurationPayload> | null
        }
        findUniqueOrThrow: {
          args: Prisma.AgentConfigurationFindUniqueOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$AgentConfigurationPayload>
        }
        findFirst: {
          args: Prisma.AgentConfigurationFindFirstArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$AgentConfigurationPayload> | null
        }
        findFirstOrThrow: {
          args: Prisma.AgentConfigurationFindFirstOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$AgentConfigurationPayload>
        }
        findMany: {
          args: Prisma.AgentConfigurationFindManyArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$AgentConfigurationPayload>[]
        }
        create: {
          args: Prisma.AgentConfigurationCreateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$AgentConfigurationPayload>
        }
        createMany: {
          args: Prisma.AgentConfigurationCreateManyArgs<ExtArgs>
          result: BatchPayload
        }
        createManyAndReturn: {
          args: Prisma.AgentConfigurationCreateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$AgentConfigurationPayload>[]
        }
        delete: {
          args: Prisma.AgentConfigurationDeleteArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$AgentConfigurationPayload>
        }
        update: {
          args: Prisma.AgentConfigurationUpdateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$AgentConfigurationPayload>
        }
        deleteMany: {
          args: Prisma.AgentConfigurationDeleteManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateMany: {
          args: Prisma.AgentConfigurationUpdateManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateManyAndReturn: {
          args: Prisma.AgentConfigurationUpdateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$AgentConfigurationPayload>[]
        }
        upsert: {
          args: Prisma.AgentConfigurationUpsertArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$AgentConfigurationPayload>
        }
        aggregate: {
          args: Prisma.AgentConfigurationAggregateArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.AggregateAgentConfiguration>
        }
        groupBy: {
          args: Prisma.AgentConfigurationGroupByArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.AgentConfigurationGroupByOutputType>[]
        }
        count: {
          args: Prisma.AgentConfigurationCountArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.AgentConfigurationCountAggregateOutputType> | number
        }
      }
    }
    KnowledgeSource: {
      payload: Prisma.$KnowledgeSourcePayload<ExtArgs>
      fields: Prisma.KnowledgeSourceFieldRefs
      operations: {
        findUnique: {
          args: Prisma.KnowledgeSourceFindUniqueArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$KnowledgeSourcePayload> | null
        }
        findUniqueOrThrow: {
          args: Prisma.KnowledgeSourceFindUniqueOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$KnowledgeSourcePayload>
        }
        findFirst: {
          args: Prisma.KnowledgeSourceFindFirstArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$KnowledgeSourcePayload> | null
        }
        findFirstOrThrow: {
          args: Prisma.KnowledgeSourceFindFirstOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$KnowledgeSourcePayload>
        }
        findMany: {
          args: Prisma.KnowledgeSourceFindManyArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$KnowledgeSourcePayload>[]
        }
        create: {
          args: Prisma.KnowledgeSourceCreateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$KnowledgeSourcePayload>
        }
        createMany: {
          args: Prisma.KnowledgeSourceCreateManyArgs<ExtArgs>
          result: BatchPayload
        }
        createManyAndReturn: {
          args: Prisma.KnowledgeSourceCreateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$KnowledgeSourcePayload>[]
        }
        delete: {
          args: Prisma.KnowledgeSourceDeleteArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$KnowledgeSourcePayload>
        }
        update: {
          args: Prisma.KnowledgeSourceUpdateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$KnowledgeSourcePayload>
        }
        deleteMany: {
          args: Prisma.KnowledgeSourceDeleteManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateMany: {
          args: Prisma.KnowledgeSourceUpdateManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateManyAndReturn: {
          args: Prisma.KnowledgeSourceUpdateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$KnowledgeSourcePayload>[]
        }
        upsert: {
          args: Prisma.KnowledgeSourceUpsertArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$KnowledgeSourcePayload>
        }
        aggregate: {
          args: Prisma.KnowledgeSourceAggregateArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.AggregateKnowledgeSource>
        }
        groupBy: {
          args: Prisma.KnowledgeSourceGroupByArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.KnowledgeSourceGroupByOutputType>[]
        }
        count: {
          args: Prisma.KnowledgeSourceCountArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.KnowledgeSourceCountAggregateOutputType> | number
        }
      }
    }
    CallLog: {
      payload: Prisma.$CallLogPayload<ExtArgs>
      fields: Prisma.CallLogFieldRefs
      operations: {
        findUnique: {
          args: Prisma.CallLogFindUniqueArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$CallLogPayload> | null
        }
        findUniqueOrThrow: {
          args: Prisma.CallLogFindUniqueOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$CallLogPayload>
        }
        findFirst: {
          args: Prisma.CallLogFindFirstArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$CallLogPayload> | null
        }
        findFirstOrThrow: {
          args: Prisma.CallLogFindFirstOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$CallLogPayload>
        }
        findMany: {
          args: Prisma.CallLogFindManyArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$CallLogPayload>[]
        }
        create: {
          args: Prisma.CallLogCreateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$CallLogPayload>
        }
        createMany: {
          args: Prisma.CallLogCreateManyArgs<ExtArgs>
          result: BatchPayload
        }
        createManyAndReturn: {
          args: Prisma.CallLogCreateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$CallLogPayload>[]
        }
        delete: {
          args: Prisma.CallLogDeleteArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$CallLogPayload>
        }
        update: {
          args: Prisma.CallLogUpdateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$CallLogPayload>
        }
        deleteMany: {
          args: Prisma.CallLogDeleteManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateMany: {
          args: Prisma.CallLogUpdateManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateManyAndReturn: {
          args: Prisma.CallLogUpdateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$CallLogPayload>[]
        }
        upsert: {
          args: Prisma.CallLogUpsertArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$CallLogPayload>
        }
        aggregate: {
          args: Prisma.CallLogAggregateArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.AggregateCallLog>
        }
        groupBy: {
          args: Prisma.CallLogGroupByArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.CallLogGroupByOutputType>[]
        }
        count: {
          args: Prisma.CallLogCountArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.CallLogCountAggregateOutputType> | number
        }
      }
    }
    CallTranscript: {
      payload: Prisma.$CallTranscriptPayload<ExtArgs>
      fields: Prisma.CallTranscriptFieldRefs
      operations: {
        findUnique: {
          args: Prisma.CallTranscriptFindUniqueArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$CallTranscriptPayload> | null
        }
        findUniqueOrThrow: {
          args: Prisma.CallTranscriptFindUniqueOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$CallTranscriptPayload>
        }
        findFirst: {
          args: Prisma.CallTranscriptFindFirstArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$CallTranscriptPayload> | null
        }
        findFirstOrThrow: {
          args: Prisma.CallTranscriptFindFirstOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$CallTranscriptPayload>
        }
        findMany: {
          args: Prisma.CallTranscriptFindManyArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$CallTranscriptPayload>[]
        }
        create: {
          args: Prisma.CallTranscriptCreateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$CallTranscriptPayload>
        }
        createMany: {
          args: Prisma.CallTranscriptCreateManyArgs<ExtArgs>
          result: BatchPayload
        }
        createManyAndReturn: {
          args: Prisma.CallTranscriptCreateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$CallTranscriptPayload>[]
        }
        delete: {
          args: Prisma.CallTranscriptDeleteArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$CallTranscriptPayload>
        }
        update: {
          args: Prisma.CallTranscriptUpdateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$CallTranscriptPayload>
        }
        deleteMany: {
          args: Prisma.CallTranscriptDeleteManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateMany: {
          args: Prisma.CallTranscriptUpdateManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateManyAndReturn: {
          args: Prisma.CallTranscriptUpdateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$CallTranscriptPayload>[]
        }
        upsert: {
          args: Prisma.CallTranscriptUpsertArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$CallTranscriptPayload>
        }
        aggregate: {
          args: Prisma.CallTranscriptAggregateArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.AggregateCallTranscript>
        }
        groupBy: {
          args: Prisma.CallTranscriptGroupByArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.CallTranscriptGroupByOutputType>[]
        }
        count: {
          args: Prisma.CallTranscriptCountArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.CallTranscriptCountAggregateOutputType> | number
        }
      }
    }
    OutboundCall: {
      payload: Prisma.$OutboundCallPayload<ExtArgs>
      fields: Prisma.OutboundCallFieldRefs
      operations: {
        findUnique: {
          args: Prisma.OutboundCallFindUniqueArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$OutboundCallPayload> | null
        }
        findUniqueOrThrow: {
          args: Prisma.OutboundCallFindUniqueOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$OutboundCallPayload>
        }
        findFirst: {
          args: Prisma.OutboundCallFindFirstArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$OutboundCallPayload> | null
        }
        findFirstOrThrow: {
          args: Prisma.OutboundCallFindFirstOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$OutboundCallPayload>
        }
        findMany: {
          args: Prisma.OutboundCallFindManyArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$OutboundCallPayload>[]
        }
        create: {
          args: Prisma.OutboundCallCreateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$OutboundCallPayload>
        }
        createMany: {
          args: Prisma.OutboundCallCreateManyArgs<ExtArgs>
          result: BatchPayload
        }
        createManyAndReturn: {
          args: Prisma.OutboundCallCreateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$OutboundCallPayload>[]
        }
        delete: {
          args: Prisma.OutboundCallDeleteArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$OutboundCallPayload>
        }
        update: {
          args: Prisma.OutboundCallUpdateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$OutboundCallPayload>
        }
        deleteMany: {
          args: Prisma.OutboundCallDeleteManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateMany: {
          args: Prisma.OutboundCallUpdateManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateManyAndReturn: {
          args: Prisma.OutboundCallUpdateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$OutboundCallPayload>[]
        }
        upsert: {
          args: Prisma.OutboundCallUpsertArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$OutboundCallPayload>
        }
        aggregate: {
          args: Prisma.OutboundCallAggregateArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.AggregateOutboundCall>
        }
        groupBy: {
          args: Prisma.OutboundCallGroupByArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.OutboundCallGroupByOutputType>[]
        }
        count: {
          args: Prisma.OutboundCallCountArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.OutboundCallCountAggregateOutputType> | number
        }
      }
    }
    Campaign: {
      payload: Prisma.$CampaignPayload<ExtArgs>
      fields: Prisma.CampaignFieldRefs
      operations: {
        findUnique: {
          args: Prisma.CampaignFindUniqueArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$CampaignPayload> | null
        }
        findUniqueOrThrow: {
          args: Prisma.CampaignFindUniqueOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$CampaignPayload>
        }
        findFirst: {
          args: Prisma.CampaignFindFirstArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$CampaignPayload> | null
        }
        findFirstOrThrow: {
          args: Prisma.CampaignFindFirstOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$CampaignPayload>
        }
        findMany: {
          args: Prisma.CampaignFindManyArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$CampaignPayload>[]
        }
        create: {
          args: Prisma.CampaignCreateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$CampaignPayload>
        }
        createMany: {
          args: Prisma.CampaignCreateManyArgs<ExtArgs>
          result: BatchPayload
        }
        createManyAndReturn: {
          args: Prisma.CampaignCreateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$CampaignPayload>[]
        }
        delete: {
          args: Prisma.CampaignDeleteArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$CampaignPayload>
        }
        update: {
          args: Prisma.CampaignUpdateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$CampaignPayload>
        }
        deleteMany: {
          args: Prisma.CampaignDeleteManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateMany: {
          args: Prisma.CampaignUpdateManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateManyAndReturn: {
          args: Prisma.CampaignUpdateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$CampaignPayload>[]
        }
        upsert: {
          args: Prisma.CampaignUpsertArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$CampaignPayload>
        }
        aggregate: {
          args: Prisma.CampaignAggregateArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.AggregateCampaign>
        }
        groupBy: {
          args: Prisma.CampaignGroupByArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.CampaignGroupByOutputType>[]
        }
        count: {
          args: Prisma.CampaignCountArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.CampaignCountAggregateOutputType> | number
        }
      }
    }
    Tool: {
      payload: Prisma.$ToolPayload<ExtArgs>
      fields: Prisma.ToolFieldRefs
      operations: {
        findUnique: {
          args: Prisma.ToolFindUniqueArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$ToolPayload> | null
        }
        findUniqueOrThrow: {
          args: Prisma.ToolFindUniqueOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$ToolPayload>
        }
        findFirst: {
          args: Prisma.ToolFindFirstArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$ToolPayload> | null
        }
        findFirstOrThrow: {
          args: Prisma.ToolFindFirstOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$ToolPayload>
        }
        findMany: {
          args: Prisma.ToolFindManyArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$ToolPayload>[]
        }
        create: {
          args: Prisma.ToolCreateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$ToolPayload>
        }
        createMany: {
          args: Prisma.ToolCreateManyArgs<ExtArgs>
          result: BatchPayload
        }
        createManyAndReturn: {
          args: Prisma.ToolCreateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$ToolPayload>[]
        }
        delete: {
          args: Prisma.ToolDeleteArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$ToolPayload>
        }
        update: {
          args: Prisma.ToolUpdateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$ToolPayload>
        }
        deleteMany: {
          args: Prisma.ToolDeleteManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateMany: {
          args: Prisma.ToolUpdateManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateManyAndReturn: {
          args: Prisma.ToolUpdateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$ToolPayload>[]
        }
        upsert: {
          args: Prisma.ToolUpsertArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$ToolPayload>
        }
        aggregate: {
          args: Prisma.ToolAggregateArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.AggregateTool>
        }
        groupBy: {
          args: Prisma.ToolGroupByArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.ToolGroupByOutputType>[]
        }
        count: {
          args: Prisma.ToolCountArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.ToolCountAggregateOutputType> | number
        }
      }
    }
    McpServerCatalogItem: {
      payload: Prisma.$McpServerCatalogItemPayload<ExtArgs>
      fields: Prisma.McpServerCatalogItemFieldRefs
      operations: {
        findUnique: {
          args: Prisma.McpServerCatalogItemFindUniqueArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$McpServerCatalogItemPayload> | null
        }
        findUniqueOrThrow: {
          args: Prisma.McpServerCatalogItemFindUniqueOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$McpServerCatalogItemPayload>
        }
        findFirst: {
          args: Prisma.McpServerCatalogItemFindFirstArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$McpServerCatalogItemPayload> | null
        }
        findFirstOrThrow: {
          args: Prisma.McpServerCatalogItemFindFirstOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$McpServerCatalogItemPayload>
        }
        findMany: {
          args: Prisma.McpServerCatalogItemFindManyArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$McpServerCatalogItemPayload>[]
        }
        create: {
          args: Prisma.McpServerCatalogItemCreateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$McpServerCatalogItemPayload>
        }
        createMany: {
          args: Prisma.McpServerCatalogItemCreateManyArgs<ExtArgs>
          result: BatchPayload
        }
        createManyAndReturn: {
          args: Prisma.McpServerCatalogItemCreateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$McpServerCatalogItemPayload>[]
        }
        delete: {
          args: Prisma.McpServerCatalogItemDeleteArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$McpServerCatalogItemPayload>
        }
        update: {
          args: Prisma.McpServerCatalogItemUpdateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$McpServerCatalogItemPayload>
        }
        deleteMany: {
          args: Prisma.McpServerCatalogItemDeleteManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateMany: {
          args: Prisma.McpServerCatalogItemUpdateManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateManyAndReturn: {
          args: Prisma.McpServerCatalogItemUpdateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$McpServerCatalogItemPayload>[]
        }
        upsert: {
          args: Prisma.McpServerCatalogItemUpsertArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$McpServerCatalogItemPayload>
        }
        aggregate: {
          args: Prisma.McpServerCatalogItemAggregateArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.AggregateMcpServerCatalogItem>
        }
        groupBy: {
          args: Prisma.McpServerCatalogItemGroupByArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.McpServerCatalogItemGroupByOutputType>[]
        }
        count: {
          args: Prisma.McpServerCatalogItemCountArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.McpServerCatalogItemCountAggregateOutputType> | number
        }
      }
    }
    McpConnection: {
      payload: Prisma.$McpConnectionPayload<ExtArgs>
      fields: Prisma.McpConnectionFieldRefs
      operations: {
        findUnique: {
          args: Prisma.McpConnectionFindUniqueArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$McpConnectionPayload> | null
        }
        findUniqueOrThrow: {
          args: Prisma.McpConnectionFindUniqueOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$McpConnectionPayload>
        }
        findFirst: {
          args: Prisma.McpConnectionFindFirstArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$McpConnectionPayload> | null
        }
        findFirstOrThrow: {
          args: Prisma.McpConnectionFindFirstOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$McpConnectionPayload>
        }
        findMany: {
          args: Prisma.McpConnectionFindManyArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$McpConnectionPayload>[]
        }
        create: {
          args: Prisma.McpConnectionCreateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$McpConnectionPayload>
        }
        createMany: {
          args: Prisma.McpConnectionCreateManyArgs<ExtArgs>
          result: BatchPayload
        }
        createManyAndReturn: {
          args: Prisma.McpConnectionCreateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$McpConnectionPayload>[]
        }
        delete: {
          args: Prisma.McpConnectionDeleteArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$McpConnectionPayload>
        }
        update: {
          args: Prisma.McpConnectionUpdateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$McpConnectionPayload>
        }
        deleteMany: {
          args: Prisma.McpConnectionDeleteManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateMany: {
          args: Prisma.McpConnectionUpdateManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateManyAndReturn: {
          args: Prisma.McpConnectionUpdateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$McpConnectionPayload>[]
        }
        upsert: {
          args: Prisma.McpConnectionUpsertArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$McpConnectionPayload>
        }
        aggregate: {
          args: Prisma.McpConnectionAggregateArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.AggregateMcpConnection>
        }
        groupBy: {
          args: Prisma.McpConnectionGroupByArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.McpConnectionGroupByOutputType>[]
        }
        count: {
          args: Prisma.McpConnectionCountArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.McpConnectionCountAggregateOutputType> | number
        }
      }
    }
    AgentMcpConnection: {
      payload: Prisma.$AgentMcpConnectionPayload<ExtArgs>
      fields: Prisma.AgentMcpConnectionFieldRefs
      operations: {
        findUnique: {
          args: Prisma.AgentMcpConnectionFindUniqueArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$AgentMcpConnectionPayload> | null
        }
        findUniqueOrThrow: {
          args: Prisma.AgentMcpConnectionFindUniqueOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$AgentMcpConnectionPayload>
        }
        findFirst: {
          args: Prisma.AgentMcpConnectionFindFirstArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$AgentMcpConnectionPayload> | null
        }
        findFirstOrThrow: {
          args: Prisma.AgentMcpConnectionFindFirstOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$AgentMcpConnectionPayload>
        }
        findMany: {
          args: Prisma.AgentMcpConnectionFindManyArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$AgentMcpConnectionPayload>[]
        }
        create: {
          args: Prisma.AgentMcpConnectionCreateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$AgentMcpConnectionPayload>
        }
        createMany: {
          args: Prisma.AgentMcpConnectionCreateManyArgs<ExtArgs>
          result: BatchPayload
        }
        createManyAndReturn: {
          args: Prisma.AgentMcpConnectionCreateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$AgentMcpConnectionPayload>[]
        }
        delete: {
          args: Prisma.AgentMcpConnectionDeleteArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$AgentMcpConnectionPayload>
        }
        update: {
          args: Prisma.AgentMcpConnectionUpdateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$AgentMcpConnectionPayload>
        }
        deleteMany: {
          args: Prisma.AgentMcpConnectionDeleteManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateMany: {
          args: Prisma.AgentMcpConnectionUpdateManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateManyAndReturn: {
          args: Prisma.AgentMcpConnectionUpdateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$AgentMcpConnectionPayload>[]
        }
        upsert: {
          args: Prisma.AgentMcpConnectionUpsertArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$AgentMcpConnectionPayload>
        }
        aggregate: {
          args: Prisma.AgentMcpConnectionAggregateArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.AggregateAgentMcpConnection>
        }
        groupBy: {
          args: Prisma.AgentMcpConnectionGroupByArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.AgentMcpConnectionGroupByOutputType>[]
        }
        count: {
          args: Prisma.AgentMcpConnectionCountArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.AgentMcpConnectionCountAggregateOutputType> | number
        }
      }
    }
    McpToolExecutionLog: {
      payload: Prisma.$McpToolExecutionLogPayload<ExtArgs>
      fields: Prisma.McpToolExecutionLogFieldRefs
      operations: {
        findUnique: {
          args: Prisma.McpToolExecutionLogFindUniqueArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$McpToolExecutionLogPayload> | null
        }
        findUniqueOrThrow: {
          args: Prisma.McpToolExecutionLogFindUniqueOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$McpToolExecutionLogPayload>
        }
        findFirst: {
          args: Prisma.McpToolExecutionLogFindFirstArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$McpToolExecutionLogPayload> | null
        }
        findFirstOrThrow: {
          args: Prisma.McpToolExecutionLogFindFirstOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$McpToolExecutionLogPayload>
        }
        findMany: {
          args: Prisma.McpToolExecutionLogFindManyArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$McpToolExecutionLogPayload>[]
        }
        create: {
          args: Prisma.McpToolExecutionLogCreateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$McpToolExecutionLogPayload>
        }
        createMany: {
          args: Prisma.McpToolExecutionLogCreateManyArgs<ExtArgs>
          result: BatchPayload
        }
        createManyAndReturn: {
          args: Prisma.McpToolExecutionLogCreateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$McpToolExecutionLogPayload>[]
        }
        delete: {
          args: Prisma.McpToolExecutionLogDeleteArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$McpToolExecutionLogPayload>
        }
        update: {
          args: Prisma.McpToolExecutionLogUpdateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$McpToolExecutionLogPayload>
        }
        deleteMany: {
          args: Prisma.McpToolExecutionLogDeleteManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateMany: {
          args: Prisma.McpToolExecutionLogUpdateManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateManyAndReturn: {
          args: Prisma.McpToolExecutionLogUpdateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$McpToolExecutionLogPayload>[]
        }
        upsert: {
          args: Prisma.McpToolExecutionLogUpsertArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$McpToolExecutionLogPayload>
        }
        aggregate: {
          args: Prisma.McpToolExecutionLogAggregateArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.AggregateMcpToolExecutionLog>
        }
        groupBy: {
          args: Prisma.McpToolExecutionLogGroupByArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.McpToolExecutionLogGroupByOutputType>[]
        }
        count: {
          args: Prisma.McpToolExecutionLogCountArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.McpToolExecutionLogCountAggregateOutputType> | number
        }
      }
    }
    Secret: {
      payload: Prisma.$SecretPayload<ExtArgs>
      fields: Prisma.SecretFieldRefs
      operations: {
        findUnique: {
          args: Prisma.SecretFindUniqueArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$SecretPayload> | null
        }
        findUniqueOrThrow: {
          args: Prisma.SecretFindUniqueOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$SecretPayload>
        }
        findFirst: {
          args: Prisma.SecretFindFirstArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$SecretPayload> | null
        }
        findFirstOrThrow: {
          args: Prisma.SecretFindFirstOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$SecretPayload>
        }
        findMany: {
          args: Prisma.SecretFindManyArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$SecretPayload>[]
        }
        create: {
          args: Prisma.SecretCreateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$SecretPayload>
        }
        createMany: {
          args: Prisma.SecretCreateManyArgs<ExtArgs>
          result: BatchPayload
        }
        createManyAndReturn: {
          args: Prisma.SecretCreateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$SecretPayload>[]
        }
        delete: {
          args: Prisma.SecretDeleteArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$SecretPayload>
        }
        update: {
          args: Prisma.SecretUpdateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$SecretPayload>
        }
        deleteMany: {
          args: Prisma.SecretDeleteManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateMany: {
          args: Prisma.SecretUpdateManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateManyAndReturn: {
          args: Prisma.SecretUpdateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$SecretPayload>[]
        }
        upsert: {
          args: Prisma.SecretUpsertArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$SecretPayload>
        }
        aggregate: {
          args: Prisma.SecretAggregateArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.AggregateSecret>
        }
        groupBy: {
          args: Prisma.SecretGroupByArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.SecretGroupByOutputType>[]
        }
        count: {
          args: Prisma.SecretCountArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.SecretCountAggregateOutputType> | number
        }
      }
    }
    AuditLog: {
      payload: Prisma.$AuditLogPayload<ExtArgs>
      fields: Prisma.AuditLogFieldRefs
      operations: {
        findUnique: {
          args: Prisma.AuditLogFindUniqueArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$AuditLogPayload> | null
        }
        findUniqueOrThrow: {
          args: Prisma.AuditLogFindUniqueOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$AuditLogPayload>
        }
        findFirst: {
          args: Prisma.AuditLogFindFirstArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$AuditLogPayload> | null
        }
        findFirstOrThrow: {
          args: Prisma.AuditLogFindFirstOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$AuditLogPayload>
        }
        findMany: {
          args: Prisma.AuditLogFindManyArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$AuditLogPayload>[]
        }
        create: {
          args: Prisma.AuditLogCreateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$AuditLogPayload>
        }
        createMany: {
          args: Prisma.AuditLogCreateManyArgs<ExtArgs>
          result: BatchPayload
        }
        createManyAndReturn: {
          args: Prisma.AuditLogCreateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$AuditLogPayload>[]
        }
        delete: {
          args: Prisma.AuditLogDeleteArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$AuditLogPayload>
        }
        update: {
          args: Prisma.AuditLogUpdateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$AuditLogPayload>
        }
        deleteMany: {
          args: Prisma.AuditLogDeleteManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateMany: {
          args: Prisma.AuditLogUpdateManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateManyAndReturn: {
          args: Prisma.AuditLogUpdateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$AuditLogPayload>[]
        }
        upsert: {
          args: Prisma.AuditLogUpsertArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$AuditLogPayload>
        }
        aggregate: {
          args: Prisma.AuditLogAggregateArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.AggregateAuditLog>
        }
        groupBy: {
          args: Prisma.AuditLogGroupByArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.AuditLogGroupByOutputType>[]
        }
        count: {
          args: Prisma.AuditLogCountArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.AuditLogCountAggregateOutputType> | number
        }
      }
    }
  }
} & {
  other: {
    payload: any
    operations: {
      $executeRaw: {
        args: [query: TemplateStringsArray | Sql, ...values: any[]],
        result: any
      }
      $executeRawUnsafe: {
        args: [query: string, ...values: any[]],
        result: any
      }
      $queryRaw: {
        args: [query: TemplateStringsArray | Sql, ...values: any[]],
        result: any
      }
      $queryRawUnsafe: {
        args: [query: string, ...values: any[]],
        result: any
      }
    }
  }
}

/**
 * Enums
 */

export const TransactionIsolationLevel = runtime.makeStrictEnum({
  ReadUncommitted: 'ReadUncommitted',
  ReadCommitted: 'ReadCommitted',
  RepeatableRead: 'RepeatableRead',
  Serializable: 'Serializable'
} as const)

export type TransactionIsolationLevel = (typeof TransactionIsolationLevel)[keyof typeof TransactionIsolationLevel]


export const UserScalarFieldEnum = {
  id: 'id',
  name: 'name',
  email: 'email',
  emailVerified: 'emailVerified',
  image: 'image',
  createdAt: 'createdAt',
  updatedAt: 'updatedAt',
  role: 'role',
  banned: 'banned',
  banReason: 'banReason',
  banExpires: 'banExpires',
  stripeCustomerId: 'stripeCustomerId'
} as const

export type UserScalarFieldEnum = (typeof UserScalarFieldEnum)[keyof typeof UserScalarFieldEnum]


export const SessionScalarFieldEnum = {
  id: 'id',
  expiresAt: 'expiresAt',
  token: 'token',
  createdAt: 'createdAt',
  updatedAt: 'updatedAt',
  ipAddress: 'ipAddress',
  userAgent: 'userAgent',
  userId: 'userId',
  impersonatedBy: 'impersonatedBy',
  activeOrganizationId: 'activeOrganizationId'
} as const

export type SessionScalarFieldEnum = (typeof SessionScalarFieldEnum)[keyof typeof SessionScalarFieldEnum]


export const AccountScalarFieldEnum = {
  id: 'id',
  accountId: 'accountId',
  providerId: 'providerId',
  userId: 'userId',
  accessToken: 'accessToken',
  refreshToken: 'refreshToken',
  idToken: 'idToken',
  accessTokenExpiresAt: 'accessTokenExpiresAt',
  refreshTokenExpiresAt: 'refreshTokenExpiresAt',
  scope: 'scope',
  password: 'password',
  createdAt: 'createdAt',
  updatedAt: 'updatedAt'
} as const

export type AccountScalarFieldEnum = (typeof AccountScalarFieldEnum)[keyof typeof AccountScalarFieldEnum]


export const VerificationScalarFieldEnum = {
  id: 'id',
  identifier: 'identifier',
  value: 'value',
  expiresAt: 'expiresAt',
  createdAt: 'createdAt',
  updatedAt: 'updatedAt'
} as const

export type VerificationScalarFieldEnum = (typeof VerificationScalarFieldEnum)[keyof typeof VerificationScalarFieldEnum]


export const ApikeyScalarFieldEnum = {
  id: 'id',
  configId: 'configId',
  name: 'name',
  start: 'start',
  referenceId: 'referenceId',
  prefix: 'prefix',
  key: 'key',
  refillInterval: 'refillInterval',
  refillAmount: 'refillAmount',
  lastRefillAt: 'lastRefillAt',
  enabled: 'enabled',
  rateLimitEnabled: 'rateLimitEnabled',
  rateLimitTimeWindow: 'rateLimitTimeWindow',
  rateLimitMax: 'rateLimitMax',
  requestCount: 'requestCount',
  remaining: 'remaining',
  lastRequest: 'lastRequest',
  expiresAt: 'expiresAt',
  createdAt: 'createdAt',
  updatedAt: 'updatedAt',
  permissions: 'permissions',
  metadata: 'metadata'
} as const

export type ApikeyScalarFieldEnum = (typeof ApikeyScalarFieldEnum)[keyof typeof ApikeyScalarFieldEnum]


export const OrganizationScalarFieldEnum = {
  id: 'id',
  name: 'name',
  slug: 'slug',
  logo: 'logo',
  createdAt: 'createdAt',
  metadata: 'metadata',
  stripeCustomerId: 'stripeCustomerId',
  accessKey: 'accessKey',
  plan: 'plan'
} as const

export type OrganizationScalarFieldEnum = (typeof OrganizationScalarFieldEnum)[keyof typeof OrganizationScalarFieldEnum]


export const OrganizationRoleScalarFieldEnum = {
  id: 'id',
  organizationId: 'organizationId',
  role: 'role',
  permission: 'permission',
  createdAt: 'createdAt',
  updatedAt: 'updatedAt'
} as const

export type OrganizationRoleScalarFieldEnum = (typeof OrganizationRoleScalarFieldEnum)[keyof typeof OrganizationRoleScalarFieldEnum]


export const MemberScalarFieldEnum = {
  id: 'id',
  organizationId: 'organizationId',
  userId: 'userId',
  role: 'role',
  createdAt: 'createdAt'
} as const

export type MemberScalarFieldEnum = (typeof MemberScalarFieldEnum)[keyof typeof MemberScalarFieldEnum]


export const InvitationScalarFieldEnum = {
  id: 'id',
  organizationId: 'organizationId',
  email: 'email',
  role: 'role',
  status: 'status',
  expiresAt: 'expiresAt',
  createdAt: 'createdAt',
  inviterId: 'inviterId'
} as const

export type InvitationScalarFieldEnum = (typeof InvitationScalarFieldEnum)[keyof typeof InvitationScalarFieldEnum]


export const SubscriptionScalarFieldEnum = {
  id: 'id',
  plan: 'plan',
  referenceId: 'referenceId',
  stripeCustomerId: 'stripeCustomerId',
  stripeSubscriptionId: 'stripeSubscriptionId',
  status: 'status',
  periodStart: 'periodStart',
  periodEnd: 'periodEnd',
  trialStart: 'trialStart',
  trialEnd: 'trialEnd',
  cancelAtPeriodEnd: 'cancelAtPeriodEnd',
  cancelAt: 'cancelAt',
  canceledAt: 'canceledAt',
  endedAt: 'endedAt',
  seats: 'seats',
  billingInterval: 'billingInterval',
  stripeScheduleId: 'stripeScheduleId'
} as const

export type SubscriptionScalarFieldEnum = (typeof SubscriptionScalarFieldEnum)[keyof typeof SubscriptionScalarFieldEnum]


export const PhoneNumberScalarFieldEnum = {
  phId: 'phId',
  number: 'number',
  organizationId: 'organizationId',
  userId: 'userId',
  agentId: 'agentId',
  sid: 'sid',
  friendlyName: 'friendlyName',
  provider: 'provider',
  createdAt: 'createdAt',
  updatedAt: 'updatedAt'
} as const

export type PhoneNumberScalarFieldEnum = (typeof PhoneNumberScalarFieldEnum)[keyof typeof PhoneNumberScalarFieldEnum]


export const AgentScalarFieldEnum = {
  agentId: 'agentId',
  agentSlug: 'agentSlug',
  organizationId: 'organizationId',
  userId: 'userId',
  name: 'name',
  templateId: 'templateId',
  isActive: 'isActive',
  isConfigured: 'isConfigured',
  createdAt: 'createdAt',
  updatedAt: 'updatedAt',
  callLogsCount: 'callLogsCount',
  knowledgeSourcesCount: 'knowledgeSourcesCount',
  phoneNumbersCount: 'phoneNumbersCount',
  toolsCount: 'toolsCount'
} as const

export type AgentScalarFieldEnum = (typeof AgentScalarFieldEnum)[keyof typeof AgentScalarFieldEnum]


export const AgentConfigurationScalarFieldEnum = {
  agentConfigId: 'agentConfigId',
  agentId: 'agentId',
  systemPrompt: 'systemPrompt',
  firstMessage: 'firstMessage',
  temperature: 'temperature',
  data_needed: 'data_needed',
  data_evaluation: 'data_evaluation',
  voiceId: 'voiceId',
  concurrent_calls_limit: 'concurrent_calls_limit',
  conversation_retention_days: 'conversation_retention_days',
  daily_calls_limit: 'daily_calls_limit',
  enable_auth_for_agent_api: 'enable_auth_for_agent_api',
  max_conversation_duration_seconds: 'max_conversation_duration_seconds',
  optimize_streaming_latency: 'optimize_streaming_latency',
  silence_end_call_timeout_seconds: 'silence_end_call_timeout_seconds',
  store_call_audio: 'store_call_audio',
  tokenLimit: 'tokenLimit',
  tts_output_format: 'tts_output_format',
  turn_timeout_seconds: 'turn_timeout_seconds',
  update_at: 'update_at',
  use_flash_call: 'use_flash_call',
  use_rag: 'use_rag',
  user_input_audio_format: 'user_input_audio_format',
  voice_similarity_boost: 'voice_similarity_boost',
  voice_speed: 'voice_speed',
  voice_stability: 'voice_stability',
  zero_pii_retention: 'zero_pii_retention',
  llmModel: 'llmModel',
  sttModel: 'sttModel',
  ttsModel: 'ttsModel',
  agent_language: 'agent_language',
  initiation_webhook: 'initiation_webhook',
  post_call_webhook: 'post_call_webhook',
  variables: 'variables',
  preemptive_generation: 'preemptive_generation',
  timezone: 'timezone'
} as const

export type AgentConfigurationScalarFieldEnum = (typeof AgentConfigurationScalarFieldEnum)[keyof typeof AgentConfigurationScalarFieldEnum]


export const KnowledgeSourceScalarFieldEnum = {
  kbId: 'kbId',
  organizationId: 'organizationId',
  agentId: 'agentId',
  userId: 'userId',
  name: 'name',
  originalFileName: 'originalFileName',
  storagePath: 'storagePath',
  sourceType: 'sourceType',
  status: 'status',
  metadata: 'metadata',
  lastIndexedAt: 'lastIndexedAt',
  uploadedAt: 'uploadedAt'
} as const

export type KnowledgeSourceScalarFieldEnum = (typeof KnowledgeSourceScalarFieldEnum)[keyof typeof KnowledgeSourceScalarFieldEnum]


export const CallLogScalarFieldEnum = {
  callId: 'callId',
  organizationId: 'organizationId',
  agentId: 'agentId',
  userId: 'userId',
  startTime: 'startTime',
  endTime: 'endTime',
  durationSeconds: 'durationSeconds',
  status: 'status',
  audioRecordingPath: 'audioRecordingPath',
  callerId: 'callerId',
  metadata: 'metadata',
  sessionId: 'sessionId',
  direction: 'direction',
  dataExtracted: 'dataExtracted',
  dataEvaluation: 'dataEvaluation',
  callCostCents: 'callCostCents',
  deleted: 'deleted'
} as const

export type CallLogScalarFieldEnum = (typeof CallLogScalarFieldEnum)[keyof typeof CallLogScalarFieldEnum]


export const CallTranscriptScalarFieldEnum = {
  callTransId: 'callTransId',
  callLogId: 'callLogId',
  speaker: 'speaker',
  messageText: 'messageText',
  timestamp: 'timestamp',
  confidenceScore: 'confidenceScore',
  isPiiRedacted: 'isPiiRedacted',
  sentimentScore: 'sentimentScore'
} as const

export type CallTranscriptScalarFieldEnum = (typeof CallTranscriptScalarFieldEnum)[keyof typeof CallTranscriptScalarFieldEnum]


export const OutboundCallScalarFieldEnum = {
  outboundId: 'outboundId',
  organizationId: 'organizationId',
  agentId: 'agentId',
  userId: 'userId',
  campaignId: 'campaignId',
  scheduledAt: 'scheduledAt',
  callLogId: 'callLogId',
  phoneNumber: 'phoneNumber',
  fromNumber: 'fromNumber',
  firstMessage: 'firstMessage',
  systemPrompt: 'systemPrompt',
  optionalData: 'optionalData',
  mode: 'mode',
  status: 'status',
  createdAt: 'createdAt',
  updatedAt: 'updatedAt'
} as const

export type OutboundCallScalarFieldEnum = (typeof OutboundCallScalarFieldEnum)[keyof typeof OutboundCallScalarFieldEnum]


export const CampaignScalarFieldEnum = {
  campaignId: 'campaignId',
  organizationId: 'organizationId',
  name: 'name',
  createdAt: 'createdAt',
  updatedAt: 'updatedAt',
  agentId: 'agentId',
  fromNumber: 'fromNumber',
  scheduledAt: 'scheduledAt',
  sourceFileKey: 'sourceFileKey',
  sourceFileName: 'sourceFileName',
  totalRecipients: 'totalRecipients',
  validRecipients: 'validRecipients',
  invalidRecipients: 'invalidRecipients',
  ringingTimeoutSeconds: 'ringingTimeoutSeconds',
  timezone: 'timezone',
  status: 'status',
  startedAt: 'startedAt',
  completedAt: 'completedAt',
  userId: 'userId'
} as const

export type CampaignScalarFieldEnum = (typeof CampaignScalarFieldEnum)[keyof typeof CampaignScalarFieldEnum]


export const ToolScalarFieldEnum = {
  toolId: 'toolId',
  organizationId: 'organizationId',
  name: 'name',
  description: 'description',
  disable_interruptions: 'disable_interruptions',
  force_pre_tool_speech: 'force_pre_tool_speech',
  api_url: 'api_url',
  api_method: 'api_method',
  api_headers: 'api_headers',
  api_body: 'api_body',
  api_query_params: 'api_query_params',
  api_path_params: 'api_path_params',
  response_timeout_secs: 'response_timeout_secs',
  dynamic_variables: 'dynamic_variables',
  createdAt: 'createdAt',
  updatedAt: 'updatedAt',
  userId: 'userId'
} as const

export type ToolScalarFieldEnum = (typeof ToolScalarFieldEnum)[keyof typeof ToolScalarFieldEnum]


export const McpServerCatalogItemScalarFieldEnum = {
  mcpServerId: 'mcpServerId',
  organizationId: 'organizationId',
  slug: 'slug',
  name: 'name',
  description: 'description',
  source: 'source',
  provider: 'provider',
  mcpUrl: 'mcpUrl',
  smitheryServerKey: 'smitheryServerKey',
  authType: 'authType',
  categories: 'categories',
  verified: 'verified',
  toolCount: 'toolCount',
  metadata: 'metadata',
  createdAt: 'createdAt',
  updatedAt: 'updatedAt'
} as const

export type McpServerCatalogItemScalarFieldEnum = (typeof McpServerCatalogItemScalarFieldEnum)[keyof typeof McpServerCatalogItemScalarFieldEnum]


export const McpConnectionScalarFieldEnum = {
  mcpConnectionId: 'mcpConnectionId',
  organizationId: 'organizationId',
  userId: 'userId',
  catalogItemId: 'catalogItemId',
  displayName: 'displayName',
  provider: 'provider',
  mcpUrl: 'mcpUrl',
  smitheryNamespace: 'smitheryNamespace',
  smitheryConnectionId: 'smitheryConnectionId',
  status: 'status',
  setupUrl: 'setupUrl',
  tools: 'tools',
  metadata: 'metadata',
  lastSyncedAt: 'lastSyncedAt',
  createdAt: 'createdAt',
  updatedAt: 'updatedAt'
} as const

export type McpConnectionScalarFieldEnum = (typeof McpConnectionScalarFieldEnum)[keyof typeof McpConnectionScalarFieldEnum]


export const AgentMcpConnectionScalarFieldEnum = {
  agentMcpConnectionId: 'agentMcpConnectionId',
  organizationId: 'organizationId',
  agentId: 'agentId',
  mcpConnectionId: 'mcpConnectionId',
  enabled: 'enabled',
  createdAt: 'createdAt',
  updatedAt: 'updatedAt'
} as const

export type AgentMcpConnectionScalarFieldEnum = (typeof AgentMcpConnectionScalarFieldEnum)[keyof typeof AgentMcpConnectionScalarFieldEnum]


export const McpToolExecutionLogScalarFieldEnum = {
  mcpToolExecutionLogId: 'mcpToolExecutionLogId',
  organizationId: 'organizationId',
  agentId: 'agentId',
  mcpConnectionId: 'mcpConnectionId',
  toolName: 'toolName',
  callId: 'callId',
  status: 'status',
  latencyMs: 'latencyMs',
  argumentsPreview: 'argumentsPreview',
  resultPreview: 'resultPreview',
  error: 'error',
  createdAt: 'createdAt'
} as const

export type McpToolExecutionLogScalarFieldEnum = (typeof McpToolExecutionLogScalarFieldEnum)[keyof typeof McpToolExecutionLogScalarFieldEnum]


export const SecretScalarFieldEnum = {
  secretId: 'secretId',
  organizationId: 'organizationId',
  name: 'name',
  value: 'value',
  createdAt: 'createdAt',
  updatedAt: 'updatedAt',
  userId: 'userId'
} as const

export type SecretScalarFieldEnum = (typeof SecretScalarFieldEnum)[keyof typeof SecretScalarFieldEnum]


export const AuditLogScalarFieldEnum = {
  auditLogId: 'auditLogId',
  organizationId: 'organizationId',
  userId: 'userId',
  action: 'action',
  resourceType: 'resourceType',
  resourceId: 'resourceId',
  metadata: 'metadata',
  createdAt: 'createdAt'
} as const

export type AuditLogScalarFieldEnum = (typeof AuditLogScalarFieldEnum)[keyof typeof AuditLogScalarFieldEnum]


export const SortOrder = {
  asc: 'asc',
  desc: 'desc'
} as const

export type SortOrder = (typeof SortOrder)[keyof typeof SortOrder]


export const NullableJsonNullValueInput = {
  DbNull: DbNull,
  JsonNull: JsonNull
} as const

export type NullableJsonNullValueInput = (typeof NullableJsonNullValueInput)[keyof typeof NullableJsonNullValueInput]


export const QueryMode = {
  default: 'default',
  insensitive: 'insensitive'
} as const

export type QueryMode = (typeof QueryMode)[keyof typeof QueryMode]


export const NullsOrder = {
  first: 'first',
  last: 'last'
} as const

export type NullsOrder = (typeof NullsOrder)[keyof typeof NullsOrder]


export const JsonNullValueFilter = {
  DbNull: DbNull,
  JsonNull: JsonNull,
  AnyNull: AnyNull
} as const

export type JsonNullValueFilter = (typeof JsonNullValueFilter)[keyof typeof JsonNullValueFilter]



/**
 * Field references
 */


/**
 * Reference to a field of type 'String'
 */
export type StringFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'String'>



/**
 * Reference to a field of type 'String[]'
 */
export type ListStringFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'String[]'>



/**
 * Reference to a field of type 'Boolean'
 */
export type BooleanFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'Boolean'>



/**
 * Reference to a field of type 'DateTime'
 */
export type DateTimeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'DateTime'>



/**
 * Reference to a field of type 'DateTime[]'
 */
export type ListDateTimeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'DateTime[]'>



/**
 * Reference to a field of type 'Int'
 */
export type IntFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'Int'>



/**
 * Reference to a field of type 'Int[]'
 */
export type ListIntFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'Int[]'>



/**
 * Reference to a field of type 'PlanId'
 */
export type EnumPlanIdFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'PlanId'>



/**
 * Reference to a field of type 'PlanId[]'
 */
export type ListEnumPlanIdFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'PlanId[]'>



/**
 * Reference to a field of type 'TelephonyProvider'
 */
export type EnumTelephonyProviderFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'TelephonyProvider'>



/**
 * Reference to a field of type 'TelephonyProvider[]'
 */
export type ListEnumTelephonyProviderFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'TelephonyProvider[]'>



/**
 * Reference to a field of type 'Float'
 */
export type FloatFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'Float'>



/**
 * Reference to a field of type 'Float[]'
 */
export type ListFloatFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'Float[]'>



/**
 * Reference to a field of type 'Json'
 */
export type JsonFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'Json'>



/**
 * Reference to a field of type 'QueryMode'
 */
export type EnumQueryModeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'QueryMode'>



/**
 * Reference to a field of type 'sourceType'
 */
export type EnumsourceTypeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'sourceType'>



/**
 * Reference to a field of type 'sourceType[]'
 */
export type ListEnumsourceTypeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'sourceType[]'>



/**
 * Reference to a field of type 'kbStatus'
 */
export type EnumkbStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'kbStatus'>



/**
 * Reference to a field of type 'kbStatus[]'
 */
export type ListEnumkbStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'kbStatus[]'>



/**
 * Reference to a field of type 'CallStatus'
 */
export type EnumCallStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'CallStatus'>



/**
 * Reference to a field of type 'CallStatus[]'
 */
export type ListEnumCallStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'CallStatus[]'>



/**
 * Reference to a field of type 'OutboundCallMode'
 */
export type EnumOutboundCallModeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'OutboundCallMode'>



/**
 * Reference to a field of type 'OutboundCallMode[]'
 */
export type ListEnumOutboundCallModeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'OutboundCallMode[]'>



/**
 * Reference to a field of type 'CampaignStatus'
 */
export type EnumCampaignStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'CampaignStatus'>



/**
 * Reference to a field of type 'CampaignStatus[]'
 */
export type ListEnumCampaignStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'CampaignStatus[]'>



/**
 * Reference to a field of type 'McpCatalogSource'
 */
export type EnumMcpCatalogSourceFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'McpCatalogSource'>



/**
 * Reference to a field of type 'McpCatalogSource[]'
 */
export type ListEnumMcpCatalogSourceFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'McpCatalogSource[]'>



/**
 * Reference to a field of type 'McpConnectionStatus'
 */
export type EnumMcpConnectionStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'McpConnectionStatus'>



/**
 * Reference to a field of type 'McpConnectionStatus[]'
 */
export type ListEnumMcpConnectionStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'McpConnectionStatus[]'>


/**
 * Batch Payload for updateMany & deleteMany & createMany
 */
export type BatchPayload = {
  count: number
}

export const defineExtension = runtime.Extensions.defineExtension as unknown as runtime.Types.Extensions.ExtendsHook<"define", TypeMapCb, runtime.Types.Extensions.DefaultArgs>
export type DefaultPrismaClient = PrismaClient
export type ErrorFormat = 'pretty' | 'colorless' | 'minimal'
export type PrismaClientOptions = ({
  /**
   * Instance of a Driver Adapter, e.g., like one provided by `@prisma/adapter-pg`.
   */
  adapter: runtime.SqlDriverAdapterFactory
  accelerateUrl?: never
} | {
  /**
   * Prisma Accelerate URL allowing the client to connect through Accelerate instead of a direct database.
   */
  accelerateUrl: string
  adapter?: never
}) & {
  /**
   * @default "colorless"
   */
  errorFormat?: ErrorFormat
  /**
   * @example
   * ```
   * // Shorthand for `emit: 'stdout'`
   * log: ['query', 'info', 'warn', 'error']
   *
   * // Emit as events only
   * log: [
   *   { emit: 'event', level: 'query' },
   *   { emit: 'event', level: 'info' },
   *   { emit: 'event', level: 'warn' }
   *   { emit: 'event', level: 'error' }
   * ]
   *
   * / Emit as events and log to stdout
   * og: [
   *  { emit: 'stdout', level: 'query' },
   *  { emit: 'stdout', level: 'info' },
   *  { emit: 'stdout', level: 'warn' }
   *  { emit: 'stdout', level: 'error' }
   *
   * ```
   * Read more in our [docs](https://pris.ly/d/logging).
   */
  log?: (LogLevel | LogDefinition)[]
  /**
   * The default values for transactionOptions
   * maxWait ?= 2000
   * timeout ?= 5000
   */
  transactionOptions?: {
    maxWait?: number
    timeout?: number
    isolationLevel?: TransactionIsolationLevel
  }
  /**
   * Global configuration for omitting model fields by default.
   *
   * @example
   * ```
   * const prisma = new PrismaClient({
   *   omit: {
   *     user: {
   *       password: true
   *     }
   *   }
   * })
   * ```
   */
  omit?: GlobalOmitConfig
  /**
   * SQL commenter plugins that add metadata to SQL queries as comments.
   * Comments follow the sqlcommenter format: https://google.github.io/sqlcommenter/
   *
   * @example
   * ```
   * const prisma = new PrismaClient({
   *   adapter,
   *   comments: [
   *     traceContext(),
   *     queryInsights(),
   *   ],
   * })
   * ```
   */
  comments?: runtime.SqlCommenterPlugin[]
}
export type GlobalOmitConfig = {
  user?: Prisma.UserOmit
  session?: Prisma.SessionOmit
  account?: Prisma.AccountOmit
  verification?: Prisma.VerificationOmit
  apikey?: Prisma.ApikeyOmit
  organization?: Prisma.OrganizationOmit
  organizationRole?: Prisma.OrganizationRoleOmit
  member?: Prisma.MemberOmit
  invitation?: Prisma.InvitationOmit
  subscription?: Prisma.SubscriptionOmit
  phoneNumber?: Prisma.PhoneNumberOmit
  agent?: Prisma.AgentOmit
  agentConfiguration?: Prisma.AgentConfigurationOmit
  knowledgeSource?: Prisma.KnowledgeSourceOmit
  callLog?: Prisma.CallLogOmit
  callTranscript?: Prisma.CallTranscriptOmit
  outboundCall?: Prisma.OutboundCallOmit
  campaign?: Prisma.CampaignOmit
  tool?: Prisma.ToolOmit
  mcpServerCatalogItem?: Prisma.McpServerCatalogItemOmit
  mcpConnection?: Prisma.McpConnectionOmit
  agentMcpConnection?: Prisma.AgentMcpConnectionOmit
  mcpToolExecutionLog?: Prisma.McpToolExecutionLogOmit
  secret?: Prisma.SecretOmit
  auditLog?: Prisma.AuditLogOmit
}

/* Types for Logging */
export type LogLevel = 'info' | 'query' | 'warn' | 'error'
export type LogDefinition = {
  level: LogLevel
  emit: 'stdout' | 'event'
}

export type CheckIsLogLevel<T> = T extends LogLevel ? T : never;

export type GetLogType<T> = CheckIsLogLevel<
  T extends LogDefinition ? T['level'] : T
>;

export type GetEvents<T extends any[]> = T extends Array<LogLevel | LogDefinition>
  ? GetLogType<T[number]>
  : never;

export type QueryEvent = {
  timestamp: Date
  query: string
  params: string
  duration: number
  target: string
}

export type LogEvent = {
  timestamp: Date
  message: string
  target: string
}
/* End Types for Logging */


export type PrismaAction =
  | 'findUnique'
  | 'findUniqueOrThrow'
  | 'findMany'
  | 'findFirst'
  | 'findFirstOrThrow'
  | 'create'
  | 'createMany'
  | 'createManyAndReturn'
  | 'update'
  | 'updateMany'
  | 'updateManyAndReturn'
  | 'upsert'
  | 'delete'
  | 'deleteMany'
  | 'executeRaw'
  | 'queryRaw'
  | 'aggregate'
  | 'count'
  | 'runCommandRaw'
  | 'findRaw'
  | 'groupBy'

/**
 * `PrismaClient` proxy available in interactive transactions.
 */
export type TransactionClient = Omit<DefaultPrismaClient, runtime.ITXClientDenyList>

