
/* !!! 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.4.2
 * Query Engine version: 94a226be1cf2967af2541cca5529f0f7ba866919
 */
export const prismaVersion: PrismaVersion = {
  client: "7.4.2",
  engine: "94a226be1cf2967af2541cca5529f0f7ba866919"
}

/**
 * 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 = {
  thread_sessions: 'thread_sessions',
  session_events: 'session_events',
  part_messages: 'part_messages',
  bot_tokens: 'bot_tokens',
  channel_directories: 'channel_directories',
  bot_api_keys: 'bot_api_keys',
  thread_worktrees: 'thread_worktrees',
  channel_models: 'channel_models',
  session_models: 'session_models',
  channel_agents: 'channel_agents',
  session_agents: 'session_agents',
  channel_worktrees: 'channel_worktrees',
  channel_verbosity: 'channel_verbosity',
  channel_mention_mode: 'channel_mention_mode',
  global_models: 'global_models',
  scheduled_tasks: 'scheduled_tasks',
  session_start_sources: 'session_start_sources',
  forum_sync_configs: 'forum_sync_configs',
  ipc_requests: 'ipc_requests'
} 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: "thread_sessions" | "session_events" | "part_messages" | "bot_tokens" | "channel_directories" | "bot_api_keys" | "thread_worktrees" | "channel_models" | "session_models" | "channel_agents" | "session_agents" | "channel_worktrees" | "channel_verbosity" | "channel_mention_mode" | "global_models" | "scheduled_tasks" | "session_start_sources" | "forum_sync_configs" | "ipc_requests"
    txIsolationLevel: TransactionIsolationLevel
  }
  model: {
    thread_sessions: {
      payload: Prisma.$thread_sessionsPayload<ExtArgs>
      fields: Prisma.thread_sessionsFieldRefs
      operations: {
        findUnique: {
          args: Prisma.thread_sessionsFindUniqueArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$thread_sessionsPayload> | null
        }
        findUniqueOrThrow: {
          args: Prisma.thread_sessionsFindUniqueOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$thread_sessionsPayload>
        }
        findFirst: {
          args: Prisma.thread_sessionsFindFirstArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$thread_sessionsPayload> | null
        }
        findFirstOrThrow: {
          args: Prisma.thread_sessionsFindFirstOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$thread_sessionsPayload>
        }
        findMany: {
          args: Prisma.thread_sessionsFindManyArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$thread_sessionsPayload>[]
        }
        create: {
          args: Prisma.thread_sessionsCreateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$thread_sessionsPayload>
        }
        createMany: {
          args: Prisma.thread_sessionsCreateManyArgs<ExtArgs>
          result: BatchPayload
        }
        createManyAndReturn: {
          args: Prisma.thread_sessionsCreateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$thread_sessionsPayload>[]
        }
        delete: {
          args: Prisma.thread_sessionsDeleteArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$thread_sessionsPayload>
        }
        update: {
          args: Prisma.thread_sessionsUpdateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$thread_sessionsPayload>
        }
        deleteMany: {
          args: Prisma.thread_sessionsDeleteManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateMany: {
          args: Prisma.thread_sessionsUpdateManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateManyAndReturn: {
          args: Prisma.thread_sessionsUpdateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$thread_sessionsPayload>[]
        }
        upsert: {
          args: Prisma.thread_sessionsUpsertArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$thread_sessionsPayload>
        }
        aggregate: {
          args: Prisma.Thread_sessionsAggregateArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.AggregateThread_sessions>
        }
        groupBy: {
          args: Prisma.thread_sessionsGroupByArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.Thread_sessionsGroupByOutputType>[]
        }
        count: {
          args: Prisma.thread_sessionsCountArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.Thread_sessionsCountAggregateOutputType> | number
        }
      }
    }
    session_events: {
      payload: Prisma.$session_eventsPayload<ExtArgs>
      fields: Prisma.session_eventsFieldRefs
      operations: {
        findUnique: {
          args: Prisma.session_eventsFindUniqueArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$session_eventsPayload> | null
        }
        findUniqueOrThrow: {
          args: Prisma.session_eventsFindUniqueOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$session_eventsPayload>
        }
        findFirst: {
          args: Prisma.session_eventsFindFirstArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$session_eventsPayload> | null
        }
        findFirstOrThrow: {
          args: Prisma.session_eventsFindFirstOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$session_eventsPayload>
        }
        findMany: {
          args: Prisma.session_eventsFindManyArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$session_eventsPayload>[]
        }
        create: {
          args: Prisma.session_eventsCreateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$session_eventsPayload>
        }
        createMany: {
          args: Prisma.session_eventsCreateManyArgs<ExtArgs>
          result: BatchPayload
        }
        createManyAndReturn: {
          args: Prisma.session_eventsCreateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$session_eventsPayload>[]
        }
        delete: {
          args: Prisma.session_eventsDeleteArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$session_eventsPayload>
        }
        update: {
          args: Prisma.session_eventsUpdateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$session_eventsPayload>
        }
        deleteMany: {
          args: Prisma.session_eventsDeleteManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateMany: {
          args: Prisma.session_eventsUpdateManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateManyAndReturn: {
          args: Prisma.session_eventsUpdateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$session_eventsPayload>[]
        }
        upsert: {
          args: Prisma.session_eventsUpsertArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$session_eventsPayload>
        }
        aggregate: {
          args: Prisma.Session_eventsAggregateArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.AggregateSession_events>
        }
        groupBy: {
          args: Prisma.session_eventsGroupByArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.Session_eventsGroupByOutputType>[]
        }
        count: {
          args: Prisma.session_eventsCountArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.Session_eventsCountAggregateOutputType> | number
        }
      }
    }
    part_messages: {
      payload: Prisma.$part_messagesPayload<ExtArgs>
      fields: Prisma.part_messagesFieldRefs
      operations: {
        findUnique: {
          args: Prisma.part_messagesFindUniqueArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$part_messagesPayload> | null
        }
        findUniqueOrThrow: {
          args: Prisma.part_messagesFindUniqueOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$part_messagesPayload>
        }
        findFirst: {
          args: Prisma.part_messagesFindFirstArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$part_messagesPayload> | null
        }
        findFirstOrThrow: {
          args: Prisma.part_messagesFindFirstOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$part_messagesPayload>
        }
        findMany: {
          args: Prisma.part_messagesFindManyArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$part_messagesPayload>[]
        }
        create: {
          args: Prisma.part_messagesCreateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$part_messagesPayload>
        }
        createMany: {
          args: Prisma.part_messagesCreateManyArgs<ExtArgs>
          result: BatchPayload
        }
        createManyAndReturn: {
          args: Prisma.part_messagesCreateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$part_messagesPayload>[]
        }
        delete: {
          args: Prisma.part_messagesDeleteArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$part_messagesPayload>
        }
        update: {
          args: Prisma.part_messagesUpdateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$part_messagesPayload>
        }
        deleteMany: {
          args: Prisma.part_messagesDeleteManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateMany: {
          args: Prisma.part_messagesUpdateManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateManyAndReturn: {
          args: Prisma.part_messagesUpdateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$part_messagesPayload>[]
        }
        upsert: {
          args: Prisma.part_messagesUpsertArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$part_messagesPayload>
        }
        aggregate: {
          args: Prisma.Part_messagesAggregateArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.AggregatePart_messages>
        }
        groupBy: {
          args: Prisma.part_messagesGroupByArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.Part_messagesGroupByOutputType>[]
        }
        count: {
          args: Prisma.part_messagesCountArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.Part_messagesCountAggregateOutputType> | number
        }
      }
    }
    bot_tokens: {
      payload: Prisma.$bot_tokensPayload<ExtArgs>
      fields: Prisma.bot_tokensFieldRefs
      operations: {
        findUnique: {
          args: Prisma.bot_tokensFindUniqueArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$bot_tokensPayload> | null
        }
        findUniqueOrThrow: {
          args: Prisma.bot_tokensFindUniqueOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$bot_tokensPayload>
        }
        findFirst: {
          args: Prisma.bot_tokensFindFirstArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$bot_tokensPayload> | null
        }
        findFirstOrThrow: {
          args: Prisma.bot_tokensFindFirstOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$bot_tokensPayload>
        }
        findMany: {
          args: Prisma.bot_tokensFindManyArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$bot_tokensPayload>[]
        }
        create: {
          args: Prisma.bot_tokensCreateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$bot_tokensPayload>
        }
        createMany: {
          args: Prisma.bot_tokensCreateManyArgs<ExtArgs>
          result: BatchPayload
        }
        createManyAndReturn: {
          args: Prisma.bot_tokensCreateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$bot_tokensPayload>[]
        }
        delete: {
          args: Prisma.bot_tokensDeleteArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$bot_tokensPayload>
        }
        update: {
          args: Prisma.bot_tokensUpdateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$bot_tokensPayload>
        }
        deleteMany: {
          args: Prisma.bot_tokensDeleteManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateMany: {
          args: Prisma.bot_tokensUpdateManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateManyAndReturn: {
          args: Prisma.bot_tokensUpdateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$bot_tokensPayload>[]
        }
        upsert: {
          args: Prisma.bot_tokensUpsertArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$bot_tokensPayload>
        }
        aggregate: {
          args: Prisma.Bot_tokensAggregateArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.AggregateBot_tokens>
        }
        groupBy: {
          args: Prisma.bot_tokensGroupByArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.Bot_tokensGroupByOutputType>[]
        }
        count: {
          args: Prisma.bot_tokensCountArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.Bot_tokensCountAggregateOutputType> | number
        }
      }
    }
    channel_directories: {
      payload: Prisma.$channel_directoriesPayload<ExtArgs>
      fields: Prisma.channel_directoriesFieldRefs
      operations: {
        findUnique: {
          args: Prisma.channel_directoriesFindUniqueArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$channel_directoriesPayload> | null
        }
        findUniqueOrThrow: {
          args: Prisma.channel_directoriesFindUniqueOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$channel_directoriesPayload>
        }
        findFirst: {
          args: Prisma.channel_directoriesFindFirstArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$channel_directoriesPayload> | null
        }
        findFirstOrThrow: {
          args: Prisma.channel_directoriesFindFirstOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$channel_directoriesPayload>
        }
        findMany: {
          args: Prisma.channel_directoriesFindManyArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$channel_directoriesPayload>[]
        }
        create: {
          args: Prisma.channel_directoriesCreateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$channel_directoriesPayload>
        }
        createMany: {
          args: Prisma.channel_directoriesCreateManyArgs<ExtArgs>
          result: BatchPayload
        }
        createManyAndReturn: {
          args: Prisma.channel_directoriesCreateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$channel_directoriesPayload>[]
        }
        delete: {
          args: Prisma.channel_directoriesDeleteArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$channel_directoriesPayload>
        }
        update: {
          args: Prisma.channel_directoriesUpdateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$channel_directoriesPayload>
        }
        deleteMany: {
          args: Prisma.channel_directoriesDeleteManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateMany: {
          args: Prisma.channel_directoriesUpdateManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateManyAndReturn: {
          args: Prisma.channel_directoriesUpdateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$channel_directoriesPayload>[]
        }
        upsert: {
          args: Prisma.channel_directoriesUpsertArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$channel_directoriesPayload>
        }
        aggregate: {
          args: Prisma.Channel_directoriesAggregateArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.AggregateChannel_directories>
        }
        groupBy: {
          args: Prisma.channel_directoriesGroupByArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.Channel_directoriesGroupByOutputType>[]
        }
        count: {
          args: Prisma.channel_directoriesCountArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.Channel_directoriesCountAggregateOutputType> | number
        }
      }
    }
    bot_api_keys: {
      payload: Prisma.$bot_api_keysPayload<ExtArgs>
      fields: Prisma.bot_api_keysFieldRefs
      operations: {
        findUnique: {
          args: Prisma.bot_api_keysFindUniqueArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$bot_api_keysPayload> | null
        }
        findUniqueOrThrow: {
          args: Prisma.bot_api_keysFindUniqueOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$bot_api_keysPayload>
        }
        findFirst: {
          args: Prisma.bot_api_keysFindFirstArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$bot_api_keysPayload> | null
        }
        findFirstOrThrow: {
          args: Prisma.bot_api_keysFindFirstOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$bot_api_keysPayload>
        }
        findMany: {
          args: Prisma.bot_api_keysFindManyArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$bot_api_keysPayload>[]
        }
        create: {
          args: Prisma.bot_api_keysCreateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$bot_api_keysPayload>
        }
        createMany: {
          args: Prisma.bot_api_keysCreateManyArgs<ExtArgs>
          result: BatchPayload
        }
        createManyAndReturn: {
          args: Prisma.bot_api_keysCreateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$bot_api_keysPayload>[]
        }
        delete: {
          args: Prisma.bot_api_keysDeleteArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$bot_api_keysPayload>
        }
        update: {
          args: Prisma.bot_api_keysUpdateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$bot_api_keysPayload>
        }
        deleteMany: {
          args: Prisma.bot_api_keysDeleteManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateMany: {
          args: Prisma.bot_api_keysUpdateManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateManyAndReturn: {
          args: Prisma.bot_api_keysUpdateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$bot_api_keysPayload>[]
        }
        upsert: {
          args: Prisma.bot_api_keysUpsertArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$bot_api_keysPayload>
        }
        aggregate: {
          args: Prisma.Bot_api_keysAggregateArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.AggregateBot_api_keys>
        }
        groupBy: {
          args: Prisma.bot_api_keysGroupByArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.Bot_api_keysGroupByOutputType>[]
        }
        count: {
          args: Prisma.bot_api_keysCountArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.Bot_api_keysCountAggregateOutputType> | number
        }
      }
    }
    thread_worktrees: {
      payload: Prisma.$thread_worktreesPayload<ExtArgs>
      fields: Prisma.thread_worktreesFieldRefs
      operations: {
        findUnique: {
          args: Prisma.thread_worktreesFindUniqueArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$thread_worktreesPayload> | null
        }
        findUniqueOrThrow: {
          args: Prisma.thread_worktreesFindUniqueOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$thread_worktreesPayload>
        }
        findFirst: {
          args: Prisma.thread_worktreesFindFirstArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$thread_worktreesPayload> | null
        }
        findFirstOrThrow: {
          args: Prisma.thread_worktreesFindFirstOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$thread_worktreesPayload>
        }
        findMany: {
          args: Prisma.thread_worktreesFindManyArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$thread_worktreesPayload>[]
        }
        create: {
          args: Prisma.thread_worktreesCreateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$thread_worktreesPayload>
        }
        createMany: {
          args: Prisma.thread_worktreesCreateManyArgs<ExtArgs>
          result: BatchPayload
        }
        createManyAndReturn: {
          args: Prisma.thread_worktreesCreateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$thread_worktreesPayload>[]
        }
        delete: {
          args: Prisma.thread_worktreesDeleteArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$thread_worktreesPayload>
        }
        update: {
          args: Prisma.thread_worktreesUpdateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$thread_worktreesPayload>
        }
        deleteMany: {
          args: Prisma.thread_worktreesDeleteManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateMany: {
          args: Prisma.thread_worktreesUpdateManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateManyAndReturn: {
          args: Prisma.thread_worktreesUpdateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$thread_worktreesPayload>[]
        }
        upsert: {
          args: Prisma.thread_worktreesUpsertArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$thread_worktreesPayload>
        }
        aggregate: {
          args: Prisma.Thread_worktreesAggregateArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.AggregateThread_worktrees>
        }
        groupBy: {
          args: Prisma.thread_worktreesGroupByArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.Thread_worktreesGroupByOutputType>[]
        }
        count: {
          args: Prisma.thread_worktreesCountArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.Thread_worktreesCountAggregateOutputType> | number
        }
      }
    }
    channel_models: {
      payload: Prisma.$channel_modelsPayload<ExtArgs>
      fields: Prisma.channel_modelsFieldRefs
      operations: {
        findUnique: {
          args: Prisma.channel_modelsFindUniqueArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$channel_modelsPayload> | null
        }
        findUniqueOrThrow: {
          args: Prisma.channel_modelsFindUniqueOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$channel_modelsPayload>
        }
        findFirst: {
          args: Prisma.channel_modelsFindFirstArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$channel_modelsPayload> | null
        }
        findFirstOrThrow: {
          args: Prisma.channel_modelsFindFirstOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$channel_modelsPayload>
        }
        findMany: {
          args: Prisma.channel_modelsFindManyArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$channel_modelsPayload>[]
        }
        create: {
          args: Prisma.channel_modelsCreateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$channel_modelsPayload>
        }
        createMany: {
          args: Prisma.channel_modelsCreateManyArgs<ExtArgs>
          result: BatchPayload
        }
        createManyAndReturn: {
          args: Prisma.channel_modelsCreateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$channel_modelsPayload>[]
        }
        delete: {
          args: Prisma.channel_modelsDeleteArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$channel_modelsPayload>
        }
        update: {
          args: Prisma.channel_modelsUpdateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$channel_modelsPayload>
        }
        deleteMany: {
          args: Prisma.channel_modelsDeleteManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateMany: {
          args: Prisma.channel_modelsUpdateManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateManyAndReturn: {
          args: Prisma.channel_modelsUpdateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$channel_modelsPayload>[]
        }
        upsert: {
          args: Prisma.channel_modelsUpsertArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$channel_modelsPayload>
        }
        aggregate: {
          args: Prisma.Channel_modelsAggregateArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.AggregateChannel_models>
        }
        groupBy: {
          args: Prisma.channel_modelsGroupByArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.Channel_modelsGroupByOutputType>[]
        }
        count: {
          args: Prisma.channel_modelsCountArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.Channel_modelsCountAggregateOutputType> | number
        }
      }
    }
    session_models: {
      payload: Prisma.$session_modelsPayload<ExtArgs>
      fields: Prisma.session_modelsFieldRefs
      operations: {
        findUnique: {
          args: Prisma.session_modelsFindUniqueArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$session_modelsPayload> | null
        }
        findUniqueOrThrow: {
          args: Prisma.session_modelsFindUniqueOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$session_modelsPayload>
        }
        findFirst: {
          args: Prisma.session_modelsFindFirstArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$session_modelsPayload> | null
        }
        findFirstOrThrow: {
          args: Prisma.session_modelsFindFirstOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$session_modelsPayload>
        }
        findMany: {
          args: Prisma.session_modelsFindManyArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$session_modelsPayload>[]
        }
        create: {
          args: Prisma.session_modelsCreateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$session_modelsPayload>
        }
        createMany: {
          args: Prisma.session_modelsCreateManyArgs<ExtArgs>
          result: BatchPayload
        }
        createManyAndReturn: {
          args: Prisma.session_modelsCreateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$session_modelsPayload>[]
        }
        delete: {
          args: Prisma.session_modelsDeleteArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$session_modelsPayload>
        }
        update: {
          args: Prisma.session_modelsUpdateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$session_modelsPayload>
        }
        deleteMany: {
          args: Prisma.session_modelsDeleteManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateMany: {
          args: Prisma.session_modelsUpdateManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateManyAndReturn: {
          args: Prisma.session_modelsUpdateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$session_modelsPayload>[]
        }
        upsert: {
          args: Prisma.session_modelsUpsertArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$session_modelsPayload>
        }
        aggregate: {
          args: Prisma.Session_modelsAggregateArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.AggregateSession_models>
        }
        groupBy: {
          args: Prisma.session_modelsGroupByArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.Session_modelsGroupByOutputType>[]
        }
        count: {
          args: Prisma.session_modelsCountArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.Session_modelsCountAggregateOutputType> | number
        }
      }
    }
    channel_agents: {
      payload: Prisma.$channel_agentsPayload<ExtArgs>
      fields: Prisma.channel_agentsFieldRefs
      operations: {
        findUnique: {
          args: Prisma.channel_agentsFindUniqueArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$channel_agentsPayload> | null
        }
        findUniqueOrThrow: {
          args: Prisma.channel_agentsFindUniqueOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$channel_agentsPayload>
        }
        findFirst: {
          args: Prisma.channel_agentsFindFirstArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$channel_agentsPayload> | null
        }
        findFirstOrThrow: {
          args: Prisma.channel_agentsFindFirstOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$channel_agentsPayload>
        }
        findMany: {
          args: Prisma.channel_agentsFindManyArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$channel_agentsPayload>[]
        }
        create: {
          args: Prisma.channel_agentsCreateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$channel_agentsPayload>
        }
        createMany: {
          args: Prisma.channel_agentsCreateManyArgs<ExtArgs>
          result: BatchPayload
        }
        createManyAndReturn: {
          args: Prisma.channel_agentsCreateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$channel_agentsPayload>[]
        }
        delete: {
          args: Prisma.channel_agentsDeleteArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$channel_agentsPayload>
        }
        update: {
          args: Prisma.channel_agentsUpdateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$channel_agentsPayload>
        }
        deleteMany: {
          args: Prisma.channel_agentsDeleteManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateMany: {
          args: Prisma.channel_agentsUpdateManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateManyAndReturn: {
          args: Prisma.channel_agentsUpdateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$channel_agentsPayload>[]
        }
        upsert: {
          args: Prisma.channel_agentsUpsertArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$channel_agentsPayload>
        }
        aggregate: {
          args: Prisma.Channel_agentsAggregateArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.AggregateChannel_agents>
        }
        groupBy: {
          args: Prisma.channel_agentsGroupByArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.Channel_agentsGroupByOutputType>[]
        }
        count: {
          args: Prisma.channel_agentsCountArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.Channel_agentsCountAggregateOutputType> | number
        }
      }
    }
    session_agents: {
      payload: Prisma.$session_agentsPayload<ExtArgs>
      fields: Prisma.session_agentsFieldRefs
      operations: {
        findUnique: {
          args: Prisma.session_agentsFindUniqueArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$session_agentsPayload> | null
        }
        findUniqueOrThrow: {
          args: Prisma.session_agentsFindUniqueOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$session_agentsPayload>
        }
        findFirst: {
          args: Prisma.session_agentsFindFirstArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$session_agentsPayload> | null
        }
        findFirstOrThrow: {
          args: Prisma.session_agentsFindFirstOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$session_agentsPayload>
        }
        findMany: {
          args: Prisma.session_agentsFindManyArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$session_agentsPayload>[]
        }
        create: {
          args: Prisma.session_agentsCreateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$session_agentsPayload>
        }
        createMany: {
          args: Prisma.session_agentsCreateManyArgs<ExtArgs>
          result: BatchPayload
        }
        createManyAndReturn: {
          args: Prisma.session_agentsCreateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$session_agentsPayload>[]
        }
        delete: {
          args: Prisma.session_agentsDeleteArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$session_agentsPayload>
        }
        update: {
          args: Prisma.session_agentsUpdateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$session_agentsPayload>
        }
        deleteMany: {
          args: Prisma.session_agentsDeleteManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateMany: {
          args: Prisma.session_agentsUpdateManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateManyAndReturn: {
          args: Prisma.session_agentsUpdateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$session_agentsPayload>[]
        }
        upsert: {
          args: Prisma.session_agentsUpsertArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$session_agentsPayload>
        }
        aggregate: {
          args: Prisma.Session_agentsAggregateArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.AggregateSession_agents>
        }
        groupBy: {
          args: Prisma.session_agentsGroupByArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.Session_agentsGroupByOutputType>[]
        }
        count: {
          args: Prisma.session_agentsCountArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.Session_agentsCountAggregateOutputType> | number
        }
      }
    }
    channel_worktrees: {
      payload: Prisma.$channel_worktreesPayload<ExtArgs>
      fields: Prisma.channel_worktreesFieldRefs
      operations: {
        findUnique: {
          args: Prisma.channel_worktreesFindUniqueArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$channel_worktreesPayload> | null
        }
        findUniqueOrThrow: {
          args: Prisma.channel_worktreesFindUniqueOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$channel_worktreesPayload>
        }
        findFirst: {
          args: Prisma.channel_worktreesFindFirstArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$channel_worktreesPayload> | null
        }
        findFirstOrThrow: {
          args: Prisma.channel_worktreesFindFirstOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$channel_worktreesPayload>
        }
        findMany: {
          args: Prisma.channel_worktreesFindManyArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$channel_worktreesPayload>[]
        }
        create: {
          args: Prisma.channel_worktreesCreateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$channel_worktreesPayload>
        }
        createMany: {
          args: Prisma.channel_worktreesCreateManyArgs<ExtArgs>
          result: BatchPayload
        }
        createManyAndReturn: {
          args: Prisma.channel_worktreesCreateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$channel_worktreesPayload>[]
        }
        delete: {
          args: Prisma.channel_worktreesDeleteArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$channel_worktreesPayload>
        }
        update: {
          args: Prisma.channel_worktreesUpdateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$channel_worktreesPayload>
        }
        deleteMany: {
          args: Prisma.channel_worktreesDeleteManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateMany: {
          args: Prisma.channel_worktreesUpdateManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateManyAndReturn: {
          args: Prisma.channel_worktreesUpdateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$channel_worktreesPayload>[]
        }
        upsert: {
          args: Prisma.channel_worktreesUpsertArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$channel_worktreesPayload>
        }
        aggregate: {
          args: Prisma.Channel_worktreesAggregateArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.AggregateChannel_worktrees>
        }
        groupBy: {
          args: Prisma.channel_worktreesGroupByArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.Channel_worktreesGroupByOutputType>[]
        }
        count: {
          args: Prisma.channel_worktreesCountArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.Channel_worktreesCountAggregateOutputType> | number
        }
      }
    }
    channel_verbosity: {
      payload: Prisma.$channel_verbosityPayload<ExtArgs>
      fields: Prisma.channel_verbosityFieldRefs
      operations: {
        findUnique: {
          args: Prisma.channel_verbosityFindUniqueArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$channel_verbosityPayload> | null
        }
        findUniqueOrThrow: {
          args: Prisma.channel_verbosityFindUniqueOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$channel_verbosityPayload>
        }
        findFirst: {
          args: Prisma.channel_verbosityFindFirstArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$channel_verbosityPayload> | null
        }
        findFirstOrThrow: {
          args: Prisma.channel_verbosityFindFirstOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$channel_verbosityPayload>
        }
        findMany: {
          args: Prisma.channel_verbosityFindManyArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$channel_verbosityPayload>[]
        }
        create: {
          args: Prisma.channel_verbosityCreateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$channel_verbosityPayload>
        }
        createMany: {
          args: Prisma.channel_verbosityCreateManyArgs<ExtArgs>
          result: BatchPayload
        }
        createManyAndReturn: {
          args: Prisma.channel_verbosityCreateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$channel_verbosityPayload>[]
        }
        delete: {
          args: Prisma.channel_verbosityDeleteArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$channel_verbosityPayload>
        }
        update: {
          args: Prisma.channel_verbosityUpdateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$channel_verbosityPayload>
        }
        deleteMany: {
          args: Prisma.channel_verbosityDeleteManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateMany: {
          args: Prisma.channel_verbosityUpdateManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateManyAndReturn: {
          args: Prisma.channel_verbosityUpdateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$channel_verbosityPayload>[]
        }
        upsert: {
          args: Prisma.channel_verbosityUpsertArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$channel_verbosityPayload>
        }
        aggregate: {
          args: Prisma.Channel_verbosityAggregateArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.AggregateChannel_verbosity>
        }
        groupBy: {
          args: Prisma.channel_verbosityGroupByArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.Channel_verbosityGroupByOutputType>[]
        }
        count: {
          args: Prisma.channel_verbosityCountArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.Channel_verbosityCountAggregateOutputType> | number
        }
      }
    }
    channel_mention_mode: {
      payload: Prisma.$channel_mention_modePayload<ExtArgs>
      fields: Prisma.channel_mention_modeFieldRefs
      operations: {
        findUnique: {
          args: Prisma.channel_mention_modeFindUniqueArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$channel_mention_modePayload> | null
        }
        findUniqueOrThrow: {
          args: Prisma.channel_mention_modeFindUniqueOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$channel_mention_modePayload>
        }
        findFirst: {
          args: Prisma.channel_mention_modeFindFirstArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$channel_mention_modePayload> | null
        }
        findFirstOrThrow: {
          args: Prisma.channel_mention_modeFindFirstOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$channel_mention_modePayload>
        }
        findMany: {
          args: Prisma.channel_mention_modeFindManyArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$channel_mention_modePayload>[]
        }
        create: {
          args: Prisma.channel_mention_modeCreateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$channel_mention_modePayload>
        }
        createMany: {
          args: Prisma.channel_mention_modeCreateManyArgs<ExtArgs>
          result: BatchPayload
        }
        createManyAndReturn: {
          args: Prisma.channel_mention_modeCreateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$channel_mention_modePayload>[]
        }
        delete: {
          args: Prisma.channel_mention_modeDeleteArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$channel_mention_modePayload>
        }
        update: {
          args: Prisma.channel_mention_modeUpdateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$channel_mention_modePayload>
        }
        deleteMany: {
          args: Prisma.channel_mention_modeDeleteManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateMany: {
          args: Prisma.channel_mention_modeUpdateManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateManyAndReturn: {
          args: Prisma.channel_mention_modeUpdateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$channel_mention_modePayload>[]
        }
        upsert: {
          args: Prisma.channel_mention_modeUpsertArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$channel_mention_modePayload>
        }
        aggregate: {
          args: Prisma.Channel_mention_modeAggregateArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.AggregateChannel_mention_mode>
        }
        groupBy: {
          args: Prisma.channel_mention_modeGroupByArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.Channel_mention_modeGroupByOutputType>[]
        }
        count: {
          args: Prisma.channel_mention_modeCountArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.Channel_mention_modeCountAggregateOutputType> | number
        }
      }
    }
    global_models: {
      payload: Prisma.$global_modelsPayload<ExtArgs>
      fields: Prisma.global_modelsFieldRefs
      operations: {
        findUnique: {
          args: Prisma.global_modelsFindUniqueArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$global_modelsPayload> | null
        }
        findUniqueOrThrow: {
          args: Prisma.global_modelsFindUniqueOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$global_modelsPayload>
        }
        findFirst: {
          args: Prisma.global_modelsFindFirstArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$global_modelsPayload> | null
        }
        findFirstOrThrow: {
          args: Prisma.global_modelsFindFirstOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$global_modelsPayload>
        }
        findMany: {
          args: Prisma.global_modelsFindManyArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$global_modelsPayload>[]
        }
        create: {
          args: Prisma.global_modelsCreateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$global_modelsPayload>
        }
        createMany: {
          args: Prisma.global_modelsCreateManyArgs<ExtArgs>
          result: BatchPayload
        }
        createManyAndReturn: {
          args: Prisma.global_modelsCreateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$global_modelsPayload>[]
        }
        delete: {
          args: Prisma.global_modelsDeleteArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$global_modelsPayload>
        }
        update: {
          args: Prisma.global_modelsUpdateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$global_modelsPayload>
        }
        deleteMany: {
          args: Prisma.global_modelsDeleteManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateMany: {
          args: Prisma.global_modelsUpdateManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateManyAndReturn: {
          args: Prisma.global_modelsUpdateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$global_modelsPayload>[]
        }
        upsert: {
          args: Prisma.global_modelsUpsertArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$global_modelsPayload>
        }
        aggregate: {
          args: Prisma.Global_modelsAggregateArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.AggregateGlobal_models>
        }
        groupBy: {
          args: Prisma.global_modelsGroupByArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.Global_modelsGroupByOutputType>[]
        }
        count: {
          args: Prisma.global_modelsCountArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.Global_modelsCountAggregateOutputType> | number
        }
      }
    }
    scheduled_tasks: {
      payload: Prisma.$scheduled_tasksPayload<ExtArgs>
      fields: Prisma.scheduled_tasksFieldRefs
      operations: {
        findUnique: {
          args: Prisma.scheduled_tasksFindUniqueArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$scheduled_tasksPayload> | null
        }
        findUniqueOrThrow: {
          args: Prisma.scheduled_tasksFindUniqueOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$scheduled_tasksPayload>
        }
        findFirst: {
          args: Prisma.scheduled_tasksFindFirstArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$scheduled_tasksPayload> | null
        }
        findFirstOrThrow: {
          args: Prisma.scheduled_tasksFindFirstOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$scheduled_tasksPayload>
        }
        findMany: {
          args: Prisma.scheduled_tasksFindManyArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$scheduled_tasksPayload>[]
        }
        create: {
          args: Prisma.scheduled_tasksCreateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$scheduled_tasksPayload>
        }
        createMany: {
          args: Prisma.scheduled_tasksCreateManyArgs<ExtArgs>
          result: BatchPayload
        }
        createManyAndReturn: {
          args: Prisma.scheduled_tasksCreateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$scheduled_tasksPayload>[]
        }
        delete: {
          args: Prisma.scheduled_tasksDeleteArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$scheduled_tasksPayload>
        }
        update: {
          args: Prisma.scheduled_tasksUpdateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$scheduled_tasksPayload>
        }
        deleteMany: {
          args: Prisma.scheduled_tasksDeleteManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateMany: {
          args: Prisma.scheduled_tasksUpdateManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateManyAndReturn: {
          args: Prisma.scheduled_tasksUpdateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$scheduled_tasksPayload>[]
        }
        upsert: {
          args: Prisma.scheduled_tasksUpsertArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$scheduled_tasksPayload>
        }
        aggregate: {
          args: Prisma.Scheduled_tasksAggregateArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.AggregateScheduled_tasks>
        }
        groupBy: {
          args: Prisma.scheduled_tasksGroupByArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.Scheduled_tasksGroupByOutputType>[]
        }
        count: {
          args: Prisma.scheduled_tasksCountArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.Scheduled_tasksCountAggregateOutputType> | number
        }
      }
    }
    session_start_sources: {
      payload: Prisma.$session_start_sourcesPayload<ExtArgs>
      fields: Prisma.session_start_sourcesFieldRefs
      operations: {
        findUnique: {
          args: Prisma.session_start_sourcesFindUniqueArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$session_start_sourcesPayload> | null
        }
        findUniqueOrThrow: {
          args: Prisma.session_start_sourcesFindUniqueOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$session_start_sourcesPayload>
        }
        findFirst: {
          args: Prisma.session_start_sourcesFindFirstArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$session_start_sourcesPayload> | null
        }
        findFirstOrThrow: {
          args: Prisma.session_start_sourcesFindFirstOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$session_start_sourcesPayload>
        }
        findMany: {
          args: Prisma.session_start_sourcesFindManyArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$session_start_sourcesPayload>[]
        }
        create: {
          args: Prisma.session_start_sourcesCreateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$session_start_sourcesPayload>
        }
        createMany: {
          args: Prisma.session_start_sourcesCreateManyArgs<ExtArgs>
          result: BatchPayload
        }
        createManyAndReturn: {
          args: Prisma.session_start_sourcesCreateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$session_start_sourcesPayload>[]
        }
        delete: {
          args: Prisma.session_start_sourcesDeleteArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$session_start_sourcesPayload>
        }
        update: {
          args: Prisma.session_start_sourcesUpdateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$session_start_sourcesPayload>
        }
        deleteMany: {
          args: Prisma.session_start_sourcesDeleteManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateMany: {
          args: Prisma.session_start_sourcesUpdateManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateManyAndReturn: {
          args: Prisma.session_start_sourcesUpdateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$session_start_sourcesPayload>[]
        }
        upsert: {
          args: Prisma.session_start_sourcesUpsertArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$session_start_sourcesPayload>
        }
        aggregate: {
          args: Prisma.Session_start_sourcesAggregateArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.AggregateSession_start_sources>
        }
        groupBy: {
          args: Prisma.session_start_sourcesGroupByArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.Session_start_sourcesGroupByOutputType>[]
        }
        count: {
          args: Prisma.session_start_sourcesCountArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.Session_start_sourcesCountAggregateOutputType> | number
        }
      }
    }
    forum_sync_configs: {
      payload: Prisma.$forum_sync_configsPayload<ExtArgs>
      fields: Prisma.forum_sync_configsFieldRefs
      operations: {
        findUnique: {
          args: Prisma.forum_sync_configsFindUniqueArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$forum_sync_configsPayload> | null
        }
        findUniqueOrThrow: {
          args: Prisma.forum_sync_configsFindUniqueOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$forum_sync_configsPayload>
        }
        findFirst: {
          args: Prisma.forum_sync_configsFindFirstArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$forum_sync_configsPayload> | null
        }
        findFirstOrThrow: {
          args: Prisma.forum_sync_configsFindFirstOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$forum_sync_configsPayload>
        }
        findMany: {
          args: Prisma.forum_sync_configsFindManyArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$forum_sync_configsPayload>[]
        }
        create: {
          args: Prisma.forum_sync_configsCreateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$forum_sync_configsPayload>
        }
        createMany: {
          args: Prisma.forum_sync_configsCreateManyArgs<ExtArgs>
          result: BatchPayload
        }
        createManyAndReturn: {
          args: Prisma.forum_sync_configsCreateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$forum_sync_configsPayload>[]
        }
        delete: {
          args: Prisma.forum_sync_configsDeleteArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$forum_sync_configsPayload>
        }
        update: {
          args: Prisma.forum_sync_configsUpdateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$forum_sync_configsPayload>
        }
        deleteMany: {
          args: Prisma.forum_sync_configsDeleteManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateMany: {
          args: Prisma.forum_sync_configsUpdateManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateManyAndReturn: {
          args: Prisma.forum_sync_configsUpdateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$forum_sync_configsPayload>[]
        }
        upsert: {
          args: Prisma.forum_sync_configsUpsertArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$forum_sync_configsPayload>
        }
        aggregate: {
          args: Prisma.Forum_sync_configsAggregateArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.AggregateForum_sync_configs>
        }
        groupBy: {
          args: Prisma.forum_sync_configsGroupByArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.Forum_sync_configsGroupByOutputType>[]
        }
        count: {
          args: Prisma.forum_sync_configsCountArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.Forum_sync_configsCountAggregateOutputType> | number
        }
      }
    }
    ipc_requests: {
      payload: Prisma.$ipc_requestsPayload<ExtArgs>
      fields: Prisma.ipc_requestsFieldRefs
      operations: {
        findUnique: {
          args: Prisma.ipc_requestsFindUniqueArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$ipc_requestsPayload> | null
        }
        findUniqueOrThrow: {
          args: Prisma.ipc_requestsFindUniqueOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$ipc_requestsPayload>
        }
        findFirst: {
          args: Prisma.ipc_requestsFindFirstArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$ipc_requestsPayload> | null
        }
        findFirstOrThrow: {
          args: Prisma.ipc_requestsFindFirstOrThrowArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$ipc_requestsPayload>
        }
        findMany: {
          args: Prisma.ipc_requestsFindManyArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$ipc_requestsPayload>[]
        }
        create: {
          args: Prisma.ipc_requestsCreateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$ipc_requestsPayload>
        }
        createMany: {
          args: Prisma.ipc_requestsCreateManyArgs<ExtArgs>
          result: BatchPayload
        }
        createManyAndReturn: {
          args: Prisma.ipc_requestsCreateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$ipc_requestsPayload>[]
        }
        delete: {
          args: Prisma.ipc_requestsDeleteArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$ipc_requestsPayload>
        }
        update: {
          args: Prisma.ipc_requestsUpdateArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$ipc_requestsPayload>
        }
        deleteMany: {
          args: Prisma.ipc_requestsDeleteManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateMany: {
          args: Prisma.ipc_requestsUpdateManyArgs<ExtArgs>
          result: BatchPayload
        }
        updateManyAndReturn: {
          args: Prisma.ipc_requestsUpdateManyAndReturnArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$ipc_requestsPayload>[]
        }
        upsert: {
          args: Prisma.ipc_requestsUpsertArgs<ExtArgs>
          result: runtime.Types.Utils.PayloadToResult<Prisma.$ipc_requestsPayload>
        }
        aggregate: {
          args: Prisma.Ipc_requestsAggregateArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.AggregateIpc_requests>
        }
        groupBy: {
          args: Prisma.ipc_requestsGroupByArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.Ipc_requestsGroupByOutputType>[]
        }
        count: {
          args: Prisma.ipc_requestsCountArgs<ExtArgs>
          result: runtime.Types.Utils.Optional<Prisma.Ipc_requestsCountAggregateOutputType> | 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({
  Serializable: 'Serializable'
} as const)

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


export const Thread_sessionsScalarFieldEnum = {
  thread_id: 'thread_id',
  session_id: 'session_id',
  created_at: 'created_at'
} as const

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


export const Session_eventsScalarFieldEnum = {
  id: 'id',
  session_id: 'session_id',
  thread_id: 'thread_id',
  timestamp: 'timestamp',
  event_index: 'event_index',
  event_json: 'event_json'
} as const

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


export const Part_messagesScalarFieldEnum = {
  part_id: 'part_id',
  message_id: 'message_id',
  thread_id: 'thread_id',
  created_at: 'created_at'
} as const

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


export const Bot_tokensScalarFieldEnum = {
  app_id: 'app_id',
  token: 'token',
  bot_mode: 'bot_mode',
  client_id: 'client_id',
  client_secret: 'client_secret',
  proxy_url: 'proxy_url',
  created_at: 'created_at',
  last_used_at: 'last_used_at'
} as const

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


export const Channel_directoriesScalarFieldEnum = {
  channel_id: 'channel_id',
  directory: 'directory',
  channel_type: 'channel_type',
  created_at: 'created_at'
} as const

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


export const Bot_api_keysScalarFieldEnum = {
  app_id: 'app_id',
  gemini_api_key: 'gemini_api_key',
  openai_api_key: 'openai_api_key',
  xai_api_key: 'xai_api_key',
  created_at: 'created_at'
} as const

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


export const Thread_worktreesScalarFieldEnum = {
  thread_id: 'thread_id',
  worktree_name: 'worktree_name',
  worktree_directory: 'worktree_directory',
  project_directory: 'project_directory',
  status: 'status',
  error_message: 'error_message',
  created_at: 'created_at'
} as const

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


export const Channel_modelsScalarFieldEnum = {
  channel_id: 'channel_id',
  model_id: 'model_id',
  variant: 'variant',
  created_at: 'created_at',
  updated_at: 'updated_at'
} as const

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


export const Session_modelsScalarFieldEnum = {
  session_id: 'session_id',
  model_id: 'model_id',
  variant: 'variant',
  created_at: 'created_at'
} as const

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


export const Channel_agentsScalarFieldEnum = {
  channel_id: 'channel_id',
  agent_name: 'agent_name',
  created_at: 'created_at',
  updated_at: 'updated_at'
} as const

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


export const Session_agentsScalarFieldEnum = {
  session_id: 'session_id',
  agent_name: 'agent_name',
  created_at: 'created_at'
} as const

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


export const Channel_worktreesScalarFieldEnum = {
  channel_id: 'channel_id',
  enabled: 'enabled',
  created_at: 'created_at',
  updated_at: 'updated_at'
} as const

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


export const Channel_verbosityScalarFieldEnum = {
  channel_id: 'channel_id',
  verbosity: 'verbosity',
  updated_at: 'updated_at'
} as const

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


export const Channel_mention_modeScalarFieldEnum = {
  channel_id: 'channel_id',
  enabled: 'enabled',
  created_at: 'created_at',
  updated_at: 'updated_at'
} as const

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


export const Global_modelsScalarFieldEnum = {
  app_id: 'app_id',
  model_id: 'model_id',
  variant: 'variant',
  created_at: 'created_at',
  updated_at: 'updated_at'
} as const

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


export const Scheduled_tasksScalarFieldEnum = {
  id: 'id',
  status: 'status',
  schedule_kind: 'schedule_kind',
  run_at: 'run_at',
  cron_expr: 'cron_expr',
  timezone: 'timezone',
  next_run_at: 'next_run_at',
  running_started_at: 'running_started_at',
  last_run_at: 'last_run_at',
  last_error: 'last_error',
  attempts: 'attempts',
  payload_json: 'payload_json',
  prompt_preview: 'prompt_preview',
  channel_id: 'channel_id',
  thread_id: 'thread_id',
  session_id: 'session_id',
  project_directory: 'project_directory',
  created_at: 'created_at',
  updated_at: 'updated_at'
} as const

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


export const Session_start_sourcesScalarFieldEnum = {
  session_id: 'session_id',
  schedule_kind: 'schedule_kind',
  scheduled_task_id: 'scheduled_task_id',
  created_at: 'created_at',
  updated_at: 'updated_at'
} as const

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


export const Forum_sync_configsScalarFieldEnum = {
  id: 'id',
  app_id: 'app_id',
  forum_channel_id: 'forum_channel_id',
  output_dir: 'output_dir',
  direction: 'direction',
  created_at: 'created_at',
  updated_at: 'updated_at'
} as const

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


export const Ipc_requestsScalarFieldEnum = {
  id: 'id',
  type: 'type',
  session_id: 'session_id',
  thread_id: 'thread_id',
  payload: 'payload',
  response: 'response',
  status: 'status',
  created_at: 'created_at',
  updated_at: 'updated_at'
} as const

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


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

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


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

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



/**
 * Field references
 */


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


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


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


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


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


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


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


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


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


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


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


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


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

/**
 * 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 = {
  thread_sessions?: Prisma.thread_sessionsOmit
  session_events?: Prisma.session_eventsOmit
  part_messages?: Prisma.part_messagesOmit
  bot_tokens?: Prisma.bot_tokensOmit
  channel_directories?: Prisma.channel_directoriesOmit
  bot_api_keys?: Prisma.bot_api_keysOmit
  thread_worktrees?: Prisma.thread_worktreesOmit
  channel_models?: Prisma.channel_modelsOmit
  session_models?: Prisma.session_modelsOmit
  channel_agents?: Prisma.channel_agentsOmit
  session_agents?: Prisma.session_agentsOmit
  channel_worktrees?: Prisma.channel_worktreesOmit
  channel_verbosity?: Prisma.channel_verbosityOmit
  channel_mention_mode?: Prisma.channel_mention_modeOmit
  global_models?: Prisma.global_modelsOmit
  scheduled_tasks?: Prisma.scheduled_tasksOmit
  session_start_sources?: Prisma.session_start_sourcesOmit
  forum_sync_configs?: Prisma.forum_sync_configsOmit
  ipc_requests?: Prisma.ipc_requestsOmit
}

/* 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>

