
/**
 * Client
**/

import * as runtime from './runtime/library.js';
import $Types = runtime.Types // general types
import $Public = runtime.Types.Public
import $Utils = runtime.Types.Utils
import $Extensions = runtime.Types.Extensions
import $Result = runtime.Types.Result

export type PrismaPromise<T> = $Public.PrismaPromise<T>


/**
 * Model Task
 * 
 */
export type Task = $Result.DefaultSelection<Prisma.$TaskPayload>
/**
 * Model Claim
 * 
 */
export type Claim = $Result.DefaultSelection<Prisma.$ClaimPayload>
/**
 * Model Submission
 * 
 */
export type Submission = $Result.DefaultSelection<Prisma.$SubmissionPayload>
/**
 * Model JudgeResult
 * 
 */
export type JudgeResult = $Result.DefaultSelection<Prisma.$JudgeResultPayload>
/**
 * Model AuditEvent
 * 
 */
export type AuditEvent = $Result.DefaultSelection<Prisma.$AuditEventPayload>
/**
 * Model LedgerEntry
 * 
 */
export type LedgerEntry = $Result.DefaultSelection<Prisma.$LedgerEntryPayload>
/**
 * Model AgentProfile
 * 
 */
export type AgentProfile = $Result.DefaultSelection<Prisma.$AgentProfilePayload>
/**
 * Model AffiliateLedger
 * 
 */
export type AffiliateLedger = $Result.DefaultSelection<Prisma.$AffiliateLedgerPayload>
/**
 * Model ScoutReputation
 * 
 */
export type ScoutReputation = $Result.DefaultSelection<Prisma.$ScoutReputationPayload>
/**
 * Model BidProposal
 * 
 */
export type BidProposal = $Result.DefaultSelection<Prisma.$BidProposalPayload>
/**
 * Model AgentWebhook
 * 
 */
export type AgentWebhook = $Result.DefaultSelection<Prisma.$AgentWebhookPayload>
/**
 * Model Arbitration
 * 
 */
export type Arbitration = $Result.DefaultSelection<Prisma.$ArbitrationPayload>
/**
 * Model ArbitrationVote
 * 
 */
export type ArbitrationVote = $Result.DefaultSelection<Prisma.$ArbitrationVotePayload>
/**
 * Model AgentProject
 * 
 */
export type AgentProject = $Result.DefaultSelection<Prisma.$AgentProjectPayload>
/**
 * Model TokenSale
 * 
 */
export type TokenSale = $Result.DefaultSelection<Prisma.$TokenSalePayload>
/**
 * Model SlashingEvent
 * 
 */
export type SlashingEvent = $Result.DefaultSelection<Prisma.$SlashingEventPayload>

/**
 * Enums
 */
export namespace $Enums {
  export const AgentStatus: {
  WHITELISTED: 'WHITELISTED',
  BANNED: 'BANNED',
  PENDING: 'PENDING',
  REBEL: 'REBEL'
};

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

}

export type AgentStatus = $Enums.AgentStatus

export const AgentStatus: typeof $Enums.AgentStatus

/**
 * ##  Prisma Client ʲˢ
 *
 * Type-safe database client for TypeScript & Node.js
 * @example
 * ```
 * const prisma = new PrismaClient()
 * // Fetch zero or more Tasks
 * const tasks = await prisma.task.findMany()
 * ```
 *
 *
 * Read more in our [docs](https://www.prisma.io/docs/reference/tools-and-interfaces/prisma-client).
 */
export class PrismaClient<
  ClientOptions extends Prisma.PrismaClientOptions = Prisma.PrismaClientOptions,
  const U = 'log' extends keyof ClientOptions ? ClientOptions['log'] extends Array<Prisma.LogLevel | Prisma.LogDefinition> ? Prisma.GetEvents<ClientOptions['log']> : never : never,
  ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs
> {
  [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['other'] }

    /**
   * ##  Prisma Client ʲˢ
   *
   * Type-safe database client for TypeScript & Node.js
   * @example
   * ```
   * const prisma = new PrismaClient()
   * // Fetch zero or more Tasks
   * const tasks = await prisma.task.findMany()
   * ```
   *
   *
   * Read more in our [docs](https://www.prisma.io/docs/reference/tools-and-interfaces/prisma-client).
   */

  constructor(optionsArg ?: Prisma.Subset<ClientOptions, Prisma.PrismaClientOptions>);
  $on<V extends U>(eventType: V, callback: (event: V extends 'query' ? Prisma.QueryEvent : Prisma.LogEvent) => void): PrismaClient;

  /**
   * Connect with the database
   */
  $connect(): $Utils.JsPromise<void>;

  /**
   * Disconnect from the database
   */
  $disconnect(): $Utils.JsPromise<void>;

/**
   * Executes a prepared raw query and returns the number of affected rows.
   * @example
   * ```
   * const result = await prisma.$executeRaw`UPDATE User SET cool = ${true} WHERE email = ${'user@email.com'};`
   * ```
   *
   * Read more in our [docs](https://www.prisma.io/docs/reference/tools-and-interfaces/prisma-client/raw-database-access).
   */
  $executeRaw<T = unknown>(query: TemplateStringsArray | Prisma.Sql, ...values: any[]): Prisma.PrismaPromise<number>;

  /**
   * Executes a raw query and returns the number of affected rows.
   * Susceptible to SQL injections, see documentation.
   * @example
   * ```
   * const result = await prisma.$executeRawUnsafe('UPDATE User SET cool = $1 WHERE email = $2 ;', true, 'user@email.com')
   * ```
   *
   * Read more in our [docs](https://www.prisma.io/docs/reference/tools-and-interfaces/prisma-client/raw-database-access).
   */
  $executeRawUnsafe<T = unknown>(query: string, ...values: any[]): Prisma.PrismaPromise<number>;

  /**
   * Performs a prepared raw query and returns the `SELECT` data.
   * @example
   * ```
   * const result = await prisma.$queryRaw`SELECT * FROM User WHERE id = ${1} OR email = ${'user@email.com'};`
   * ```
   *
   * Read more in our [docs](https://www.prisma.io/docs/reference/tools-and-interfaces/prisma-client/raw-database-access).
   */
  $queryRaw<T = unknown>(query: TemplateStringsArray | Prisma.Sql, ...values: any[]): Prisma.PrismaPromise<T>;

  /**
   * Performs a raw query and returns the `SELECT` data.
   * Susceptible to SQL injections, see documentation.
   * @example
   * ```
   * const result = await prisma.$queryRawUnsafe('SELECT * FROM User WHERE id = $1 OR email = $2;', 1, 'user@email.com')
   * ```
   *
   * Read more in our [docs](https://www.prisma.io/docs/reference/tools-and-interfaces/prisma-client/raw-database-access).
   */
  $queryRawUnsafe<T = unknown>(query: string, ...values: any[]): Prisma.PrismaPromise<T>;


  /**
   * Allows the running of a sequence of read/write operations that are guaranteed to either succeed or fail as a whole.
   * @example
   * ```
   * const [george, bob, alice] = await prisma.$transaction([
   *   prisma.user.create({ data: { name: 'George' } }),
   *   prisma.user.create({ data: { name: 'Bob' } }),
   *   prisma.user.create({ data: { name: 'Alice' } }),
   * ])
   * ```
   * 
   * Read more in our [docs](https://www.prisma.io/docs/concepts/components/prisma-client/transactions).
   */
  $transaction<P extends Prisma.PrismaPromise<any>[]>(arg: [...P], options?: { isolationLevel?: Prisma.TransactionIsolationLevel }): $Utils.JsPromise<runtime.Types.Utils.UnwrapTuple<P>>

  $transaction<R>(fn: (prisma: Omit<PrismaClient, runtime.ITXClientDenyList>) => $Utils.JsPromise<R>, options?: { maxWait?: number, timeout?: number, isolationLevel?: Prisma.TransactionIsolationLevel }): $Utils.JsPromise<R>


  $extends: $Extensions.ExtendsHook<"extends", Prisma.TypeMapCb<ClientOptions>, ExtArgs, $Utils.Call<Prisma.TypeMapCb<ClientOptions>, {
    extArgs: ExtArgs
  }>>

      /**
   * `prisma.task`: Exposes CRUD operations for the **Task** model.
    * Example usage:
    * ```ts
    * // Fetch zero or more Tasks
    * const tasks = await prisma.task.findMany()
    * ```
    */
  get task(): Prisma.TaskDelegate<ExtArgs, ClientOptions>;

  /**
   * `prisma.claim`: Exposes CRUD operations for the **Claim** model.
    * Example usage:
    * ```ts
    * // Fetch zero or more Claims
    * const claims = await prisma.claim.findMany()
    * ```
    */
  get claim(): Prisma.ClaimDelegate<ExtArgs, ClientOptions>;

  /**
   * `prisma.submission`: Exposes CRUD operations for the **Submission** model.
    * Example usage:
    * ```ts
    * // Fetch zero or more Submissions
    * const submissions = await prisma.submission.findMany()
    * ```
    */
  get submission(): Prisma.SubmissionDelegate<ExtArgs, ClientOptions>;

  /**
   * `prisma.judgeResult`: Exposes CRUD operations for the **JudgeResult** model.
    * Example usage:
    * ```ts
    * // Fetch zero or more JudgeResults
    * const judgeResults = await prisma.judgeResult.findMany()
    * ```
    */
  get judgeResult(): Prisma.JudgeResultDelegate<ExtArgs, ClientOptions>;

  /**
   * `prisma.auditEvent`: Exposes CRUD operations for the **AuditEvent** model.
    * Example usage:
    * ```ts
    * // Fetch zero or more AuditEvents
    * const auditEvents = await prisma.auditEvent.findMany()
    * ```
    */
  get auditEvent(): Prisma.AuditEventDelegate<ExtArgs, ClientOptions>;

  /**
   * `prisma.ledgerEntry`: Exposes CRUD operations for the **LedgerEntry** model.
    * Example usage:
    * ```ts
    * // Fetch zero or more LedgerEntries
    * const ledgerEntries = await prisma.ledgerEntry.findMany()
    * ```
    */
  get ledgerEntry(): Prisma.LedgerEntryDelegate<ExtArgs, ClientOptions>;

  /**
   * `prisma.agentProfile`: Exposes CRUD operations for the **AgentProfile** model.
    * Example usage:
    * ```ts
    * // Fetch zero or more AgentProfiles
    * const agentProfiles = await prisma.agentProfile.findMany()
    * ```
    */
  get agentProfile(): Prisma.AgentProfileDelegate<ExtArgs, ClientOptions>;

  /**
   * `prisma.affiliateLedger`: Exposes CRUD operations for the **AffiliateLedger** model.
    * Example usage:
    * ```ts
    * // Fetch zero or more AffiliateLedgers
    * const affiliateLedgers = await prisma.affiliateLedger.findMany()
    * ```
    */
  get affiliateLedger(): Prisma.AffiliateLedgerDelegate<ExtArgs, ClientOptions>;

  /**
   * `prisma.scoutReputation`: Exposes CRUD operations for the **ScoutReputation** model.
    * Example usage:
    * ```ts
    * // Fetch zero or more ScoutReputations
    * const scoutReputations = await prisma.scoutReputation.findMany()
    * ```
    */
  get scoutReputation(): Prisma.ScoutReputationDelegate<ExtArgs, ClientOptions>;

  /**
   * `prisma.bidProposal`: Exposes CRUD operations for the **BidProposal** model.
    * Example usage:
    * ```ts
    * // Fetch zero or more BidProposals
    * const bidProposals = await prisma.bidProposal.findMany()
    * ```
    */
  get bidProposal(): Prisma.BidProposalDelegate<ExtArgs, ClientOptions>;

  /**
   * `prisma.agentWebhook`: Exposes CRUD operations for the **AgentWebhook** model.
    * Example usage:
    * ```ts
    * // Fetch zero or more AgentWebhooks
    * const agentWebhooks = await prisma.agentWebhook.findMany()
    * ```
    */
  get agentWebhook(): Prisma.AgentWebhookDelegate<ExtArgs, ClientOptions>;

  /**
   * `prisma.arbitration`: Exposes CRUD operations for the **Arbitration** model.
    * Example usage:
    * ```ts
    * // Fetch zero or more Arbitrations
    * const arbitrations = await prisma.arbitration.findMany()
    * ```
    */
  get arbitration(): Prisma.ArbitrationDelegate<ExtArgs, ClientOptions>;

  /**
   * `prisma.arbitrationVote`: Exposes CRUD operations for the **ArbitrationVote** model.
    * Example usage:
    * ```ts
    * // Fetch zero or more ArbitrationVotes
    * const arbitrationVotes = await prisma.arbitrationVote.findMany()
    * ```
    */
  get arbitrationVote(): Prisma.ArbitrationVoteDelegate<ExtArgs, ClientOptions>;

  /**
   * `prisma.agentProject`: Exposes CRUD operations for the **AgentProject** model.
    * Example usage:
    * ```ts
    * // Fetch zero or more AgentProjects
    * const agentProjects = await prisma.agentProject.findMany()
    * ```
    */
  get agentProject(): Prisma.AgentProjectDelegate<ExtArgs, ClientOptions>;

  /**
   * `prisma.tokenSale`: Exposes CRUD operations for the **TokenSale** model.
    * Example usage:
    * ```ts
    * // Fetch zero or more TokenSales
    * const tokenSales = await prisma.tokenSale.findMany()
    * ```
    */
  get tokenSale(): Prisma.TokenSaleDelegate<ExtArgs, ClientOptions>;

  /**
   * `prisma.slashingEvent`: Exposes CRUD operations for the **SlashingEvent** model.
    * Example usage:
    * ```ts
    * // Fetch zero or more SlashingEvents
    * const slashingEvents = await prisma.slashingEvent.findMany()
    * ```
    */
  get slashingEvent(): Prisma.SlashingEventDelegate<ExtArgs, ClientOptions>;
}

export namespace Prisma {
  export import DMMF = runtime.DMMF

  export type PrismaPromise<T> = $Public.PrismaPromise<T>

  /**
   * Validator
   */
  export import validator = runtime.Public.validator

  /**
   * Prisma Errors
   */
  export import PrismaClientKnownRequestError = runtime.PrismaClientKnownRequestError
  export import PrismaClientUnknownRequestError = runtime.PrismaClientUnknownRequestError
  export import PrismaClientRustPanicError = runtime.PrismaClientRustPanicError
  export import PrismaClientInitializationError = runtime.PrismaClientInitializationError
  export import PrismaClientValidationError = runtime.PrismaClientValidationError

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



  /**
   * Decimal.js
   */
  export import Decimal = runtime.Decimal

  export type DecimalJsLike = runtime.DecimalJsLike

  /**
   * Metrics
   */
  export type Metrics = runtime.Metrics
  export type Metric<T> = runtime.Metric<T>
  export type MetricHistogram = runtime.MetricHistogram
  export type MetricHistogramBucket = runtime.MetricHistogramBucket

  /**
  * Extensions
  */
  export import Extension = $Extensions.UserArgs
  export import getExtensionContext = runtime.Extensions.getExtensionContext
  export import Args = $Public.Args
  export import Payload = $Public.Payload
  export import Result = $Public.Result
  export import Exact = $Public.Exact

  /**
   * Prisma Client JS version: 6.19.3
   * Query Engine version: c2990dca591cba766e3b7ef5d9e8a84796e47ab7
   */
  export type PrismaVersion = {
    client: string
  }

  export const prismaVersion: PrismaVersion

  /**
   * Utility Types
   */


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

  /**
   * Types of the values used to represent different kinds of `null` values when working with JSON fields.
   *
   * @see https://www.prisma.io/docs/concepts/components/prisma-client/working-with-fields/working-with-json-fields#filtering-on-a-json-field
   */
  namespace NullTypes {
    /**
    * Type of `Prisma.DbNull`.
    *
    * You cannot use other instances of this class. Please use the `Prisma.DbNull` value.
    *
    * @see https://www.prisma.io/docs/concepts/components/prisma-client/working-with-fields/working-with-json-fields#filtering-on-a-json-field
    */
    class DbNull {
      private DbNull: never
      private constructor()
    }

    /**
    * Type of `Prisma.JsonNull`.
    *
    * You cannot use other instances of this class. Please use the `Prisma.JsonNull` value.
    *
    * @see https://www.prisma.io/docs/concepts/components/prisma-client/working-with-fields/working-with-json-fields#filtering-on-a-json-field
    */
    class JsonNull {
      private JsonNull: never
      private constructor()
    }

    /**
    * Type of `Prisma.AnyNull`.
    *
    * You cannot use other instances of this class. Please use the `Prisma.AnyNull` value.
    *
    * @see https://www.prisma.io/docs/concepts/components/prisma-client/working-with-fields/working-with-json-fields#filtering-on-a-json-field
    */
    class AnyNull {
      private AnyNull: never
      private constructor()
    }
  }

  /**
   * 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: NullTypes.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: NullTypes.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: NullTypes.AnyNull

  type SelectAndInclude = {
    select: any
    include: any
  }

  type SelectAndOmit = {
    select: any
    omit: any
  }

  /**
   * Get the type of the value, that the Promise holds.
   */
  export type PromiseType<T extends PromiseLike<any>> = T extends PromiseLike<infer U> ? U : T;

  /**
   * Get the return type of a function which returns a Promise.
   */
  export type PromiseReturnType<T extends (...args: any) => $Utils.JsPromise<any>> = PromiseType<ReturnType<T>>

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

  export type RequiredKeys<T> = {
    [K in keyof T]-?: {} extends Prisma__Pick<T, K> ? never : K
  }[keyof T]

  export type TruthyKeys<T> = keyof {
    [K in keyof T as T[K] extends false | undefined | null ? never : K]: K
  }

  export type TrueKeys<T> = TruthyKeys<Prisma__Pick<T, RequiredKeys<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
   */
  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]

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

  export type Union = any

  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 AtBasic<O extends object, K extends Key> = K extends keyof O ? O[K] : never;
  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
  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>>>;

  /**
  A [[Boolean]]
  */
  export type Boolean = True | False

  // /**
  // 1
  // */
  export type True = 1

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

  type Cast<A, B> = A extends B ? A : B;

  export const type: unique symbol;



  /**
   * Used by group by
   */

  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

  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>
  type MaybeTupleToUnion<T> = T extends any[] ? TupleToUnion<T> : T

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

  /**
   * Exclude all keys with underscores
   */
  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: {
    Task: 'Task',
    Claim: 'Claim',
    Submission: 'Submission',
    JudgeResult: 'JudgeResult',
    AuditEvent: 'AuditEvent',
    LedgerEntry: 'LedgerEntry',
    AgentProfile: 'AgentProfile',
    AffiliateLedger: 'AffiliateLedger',
    ScoutReputation: 'ScoutReputation',
    BidProposal: 'BidProposal',
    AgentWebhook: 'AgentWebhook',
    Arbitration: 'Arbitration',
    ArbitrationVote: 'ArbitrationVote',
    AgentProject: 'AgentProject',
    TokenSale: 'TokenSale',
    SlashingEvent: 'SlashingEvent'
  };

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


  export type Datasources = {
    db?: Datasource
  }

  interface TypeMapCb<ClientOptions = {}> extends $Utils.Fn<{extArgs: $Extensions.InternalArgs }, $Utils.Record<string, any>> {
    returns: Prisma.TypeMap<this['params']['extArgs'], ClientOptions extends { omit: infer OmitOptions } ? OmitOptions : {}>
  }

  export type TypeMap<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> = {
    globalOmitOptions: {
      omit: GlobalOmitOptions
    }
    meta: {
      modelProps: "task" | "claim" | "submission" | "judgeResult" | "auditEvent" | "ledgerEntry" | "agentProfile" | "affiliateLedger" | "scoutReputation" | "bidProposal" | "agentWebhook" | "arbitration" | "arbitrationVote" | "agentProject" | "tokenSale" | "slashingEvent"
      txIsolationLevel: Prisma.TransactionIsolationLevel
    }
    model: {
      Task: {
        payload: Prisma.$TaskPayload<ExtArgs>
        fields: Prisma.TaskFieldRefs
        operations: {
          findUnique: {
            args: Prisma.TaskFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$TaskPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.TaskFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$TaskPayload>
          }
          findFirst: {
            args: Prisma.TaskFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$TaskPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.TaskFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$TaskPayload>
          }
          findMany: {
            args: Prisma.TaskFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$TaskPayload>[]
          }
          create: {
            args: Prisma.TaskCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$TaskPayload>
          }
          createMany: {
            args: Prisma.TaskCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.TaskCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$TaskPayload>[]
          }
          delete: {
            args: Prisma.TaskDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$TaskPayload>
          }
          update: {
            args: Prisma.TaskUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$TaskPayload>
          }
          deleteMany: {
            args: Prisma.TaskDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.TaskUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.TaskUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$TaskPayload>[]
          }
          upsert: {
            args: Prisma.TaskUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$TaskPayload>
          }
          aggregate: {
            args: Prisma.TaskAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateTask>
          }
          groupBy: {
            args: Prisma.TaskGroupByArgs<ExtArgs>
            result: $Utils.Optional<TaskGroupByOutputType>[]
          }
          count: {
            args: Prisma.TaskCountArgs<ExtArgs>
            result: $Utils.Optional<TaskCountAggregateOutputType> | number
          }
        }
      }
      Claim: {
        payload: Prisma.$ClaimPayload<ExtArgs>
        fields: Prisma.ClaimFieldRefs
        operations: {
          findUnique: {
            args: Prisma.ClaimFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ClaimPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.ClaimFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ClaimPayload>
          }
          findFirst: {
            args: Prisma.ClaimFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ClaimPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.ClaimFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ClaimPayload>
          }
          findMany: {
            args: Prisma.ClaimFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ClaimPayload>[]
          }
          create: {
            args: Prisma.ClaimCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ClaimPayload>
          }
          createMany: {
            args: Prisma.ClaimCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.ClaimCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ClaimPayload>[]
          }
          delete: {
            args: Prisma.ClaimDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ClaimPayload>
          }
          update: {
            args: Prisma.ClaimUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ClaimPayload>
          }
          deleteMany: {
            args: Prisma.ClaimDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.ClaimUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.ClaimUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ClaimPayload>[]
          }
          upsert: {
            args: Prisma.ClaimUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ClaimPayload>
          }
          aggregate: {
            args: Prisma.ClaimAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateClaim>
          }
          groupBy: {
            args: Prisma.ClaimGroupByArgs<ExtArgs>
            result: $Utils.Optional<ClaimGroupByOutputType>[]
          }
          count: {
            args: Prisma.ClaimCountArgs<ExtArgs>
            result: $Utils.Optional<ClaimCountAggregateOutputType> | number
          }
        }
      }
      Submission: {
        payload: Prisma.$SubmissionPayload<ExtArgs>
        fields: Prisma.SubmissionFieldRefs
        operations: {
          findUnique: {
            args: Prisma.SubmissionFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SubmissionPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.SubmissionFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SubmissionPayload>
          }
          findFirst: {
            args: Prisma.SubmissionFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SubmissionPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.SubmissionFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SubmissionPayload>
          }
          findMany: {
            args: Prisma.SubmissionFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SubmissionPayload>[]
          }
          create: {
            args: Prisma.SubmissionCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SubmissionPayload>
          }
          createMany: {
            args: Prisma.SubmissionCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.SubmissionCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SubmissionPayload>[]
          }
          delete: {
            args: Prisma.SubmissionDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SubmissionPayload>
          }
          update: {
            args: Prisma.SubmissionUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SubmissionPayload>
          }
          deleteMany: {
            args: Prisma.SubmissionDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.SubmissionUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.SubmissionUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SubmissionPayload>[]
          }
          upsert: {
            args: Prisma.SubmissionUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SubmissionPayload>
          }
          aggregate: {
            args: Prisma.SubmissionAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateSubmission>
          }
          groupBy: {
            args: Prisma.SubmissionGroupByArgs<ExtArgs>
            result: $Utils.Optional<SubmissionGroupByOutputType>[]
          }
          count: {
            args: Prisma.SubmissionCountArgs<ExtArgs>
            result: $Utils.Optional<SubmissionCountAggregateOutputType> | number
          }
        }
      }
      JudgeResult: {
        payload: Prisma.$JudgeResultPayload<ExtArgs>
        fields: Prisma.JudgeResultFieldRefs
        operations: {
          findUnique: {
            args: Prisma.JudgeResultFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$JudgeResultPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.JudgeResultFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$JudgeResultPayload>
          }
          findFirst: {
            args: Prisma.JudgeResultFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$JudgeResultPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.JudgeResultFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$JudgeResultPayload>
          }
          findMany: {
            args: Prisma.JudgeResultFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$JudgeResultPayload>[]
          }
          create: {
            args: Prisma.JudgeResultCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$JudgeResultPayload>
          }
          createMany: {
            args: Prisma.JudgeResultCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.JudgeResultCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$JudgeResultPayload>[]
          }
          delete: {
            args: Prisma.JudgeResultDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$JudgeResultPayload>
          }
          update: {
            args: Prisma.JudgeResultUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$JudgeResultPayload>
          }
          deleteMany: {
            args: Prisma.JudgeResultDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.JudgeResultUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.JudgeResultUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$JudgeResultPayload>[]
          }
          upsert: {
            args: Prisma.JudgeResultUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$JudgeResultPayload>
          }
          aggregate: {
            args: Prisma.JudgeResultAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateJudgeResult>
          }
          groupBy: {
            args: Prisma.JudgeResultGroupByArgs<ExtArgs>
            result: $Utils.Optional<JudgeResultGroupByOutputType>[]
          }
          count: {
            args: Prisma.JudgeResultCountArgs<ExtArgs>
            result: $Utils.Optional<JudgeResultCountAggregateOutputType> | number
          }
        }
      }
      AuditEvent: {
        payload: Prisma.$AuditEventPayload<ExtArgs>
        fields: Prisma.AuditEventFieldRefs
        operations: {
          findUnique: {
            args: Prisma.AuditEventFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AuditEventPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.AuditEventFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AuditEventPayload>
          }
          findFirst: {
            args: Prisma.AuditEventFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AuditEventPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.AuditEventFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AuditEventPayload>
          }
          findMany: {
            args: Prisma.AuditEventFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AuditEventPayload>[]
          }
          create: {
            args: Prisma.AuditEventCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AuditEventPayload>
          }
          createMany: {
            args: Prisma.AuditEventCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.AuditEventCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AuditEventPayload>[]
          }
          delete: {
            args: Prisma.AuditEventDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AuditEventPayload>
          }
          update: {
            args: Prisma.AuditEventUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AuditEventPayload>
          }
          deleteMany: {
            args: Prisma.AuditEventDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.AuditEventUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.AuditEventUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AuditEventPayload>[]
          }
          upsert: {
            args: Prisma.AuditEventUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AuditEventPayload>
          }
          aggregate: {
            args: Prisma.AuditEventAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateAuditEvent>
          }
          groupBy: {
            args: Prisma.AuditEventGroupByArgs<ExtArgs>
            result: $Utils.Optional<AuditEventGroupByOutputType>[]
          }
          count: {
            args: Prisma.AuditEventCountArgs<ExtArgs>
            result: $Utils.Optional<AuditEventCountAggregateOutputType> | number
          }
        }
      }
      LedgerEntry: {
        payload: Prisma.$LedgerEntryPayload<ExtArgs>
        fields: Prisma.LedgerEntryFieldRefs
        operations: {
          findUnique: {
            args: Prisma.LedgerEntryFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$LedgerEntryPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.LedgerEntryFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$LedgerEntryPayload>
          }
          findFirst: {
            args: Prisma.LedgerEntryFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$LedgerEntryPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.LedgerEntryFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$LedgerEntryPayload>
          }
          findMany: {
            args: Prisma.LedgerEntryFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$LedgerEntryPayload>[]
          }
          create: {
            args: Prisma.LedgerEntryCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$LedgerEntryPayload>
          }
          createMany: {
            args: Prisma.LedgerEntryCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.LedgerEntryCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$LedgerEntryPayload>[]
          }
          delete: {
            args: Prisma.LedgerEntryDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$LedgerEntryPayload>
          }
          update: {
            args: Prisma.LedgerEntryUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$LedgerEntryPayload>
          }
          deleteMany: {
            args: Prisma.LedgerEntryDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.LedgerEntryUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.LedgerEntryUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$LedgerEntryPayload>[]
          }
          upsert: {
            args: Prisma.LedgerEntryUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$LedgerEntryPayload>
          }
          aggregate: {
            args: Prisma.LedgerEntryAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateLedgerEntry>
          }
          groupBy: {
            args: Prisma.LedgerEntryGroupByArgs<ExtArgs>
            result: $Utils.Optional<LedgerEntryGroupByOutputType>[]
          }
          count: {
            args: Prisma.LedgerEntryCountArgs<ExtArgs>
            result: $Utils.Optional<LedgerEntryCountAggregateOutputType> | number
          }
        }
      }
      AgentProfile: {
        payload: Prisma.$AgentProfilePayload<ExtArgs>
        fields: Prisma.AgentProfileFieldRefs
        operations: {
          findUnique: {
            args: Prisma.AgentProfileFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentProfilePayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.AgentProfileFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentProfilePayload>
          }
          findFirst: {
            args: Prisma.AgentProfileFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentProfilePayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.AgentProfileFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentProfilePayload>
          }
          findMany: {
            args: Prisma.AgentProfileFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentProfilePayload>[]
          }
          create: {
            args: Prisma.AgentProfileCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentProfilePayload>
          }
          createMany: {
            args: Prisma.AgentProfileCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.AgentProfileCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentProfilePayload>[]
          }
          delete: {
            args: Prisma.AgentProfileDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentProfilePayload>
          }
          update: {
            args: Prisma.AgentProfileUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentProfilePayload>
          }
          deleteMany: {
            args: Prisma.AgentProfileDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.AgentProfileUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.AgentProfileUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentProfilePayload>[]
          }
          upsert: {
            args: Prisma.AgentProfileUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentProfilePayload>
          }
          aggregate: {
            args: Prisma.AgentProfileAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateAgentProfile>
          }
          groupBy: {
            args: Prisma.AgentProfileGroupByArgs<ExtArgs>
            result: $Utils.Optional<AgentProfileGroupByOutputType>[]
          }
          count: {
            args: Prisma.AgentProfileCountArgs<ExtArgs>
            result: $Utils.Optional<AgentProfileCountAggregateOutputType> | number
          }
        }
      }
      AffiliateLedger: {
        payload: Prisma.$AffiliateLedgerPayload<ExtArgs>
        fields: Prisma.AffiliateLedgerFieldRefs
        operations: {
          findUnique: {
            args: Prisma.AffiliateLedgerFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AffiliateLedgerPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.AffiliateLedgerFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AffiliateLedgerPayload>
          }
          findFirst: {
            args: Prisma.AffiliateLedgerFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AffiliateLedgerPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.AffiliateLedgerFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AffiliateLedgerPayload>
          }
          findMany: {
            args: Prisma.AffiliateLedgerFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AffiliateLedgerPayload>[]
          }
          create: {
            args: Prisma.AffiliateLedgerCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AffiliateLedgerPayload>
          }
          createMany: {
            args: Prisma.AffiliateLedgerCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.AffiliateLedgerCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AffiliateLedgerPayload>[]
          }
          delete: {
            args: Prisma.AffiliateLedgerDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AffiliateLedgerPayload>
          }
          update: {
            args: Prisma.AffiliateLedgerUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AffiliateLedgerPayload>
          }
          deleteMany: {
            args: Prisma.AffiliateLedgerDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.AffiliateLedgerUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.AffiliateLedgerUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AffiliateLedgerPayload>[]
          }
          upsert: {
            args: Prisma.AffiliateLedgerUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AffiliateLedgerPayload>
          }
          aggregate: {
            args: Prisma.AffiliateLedgerAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateAffiliateLedger>
          }
          groupBy: {
            args: Prisma.AffiliateLedgerGroupByArgs<ExtArgs>
            result: $Utils.Optional<AffiliateLedgerGroupByOutputType>[]
          }
          count: {
            args: Prisma.AffiliateLedgerCountArgs<ExtArgs>
            result: $Utils.Optional<AffiliateLedgerCountAggregateOutputType> | number
          }
        }
      }
      ScoutReputation: {
        payload: Prisma.$ScoutReputationPayload<ExtArgs>
        fields: Prisma.ScoutReputationFieldRefs
        operations: {
          findUnique: {
            args: Prisma.ScoutReputationFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ScoutReputationPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.ScoutReputationFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ScoutReputationPayload>
          }
          findFirst: {
            args: Prisma.ScoutReputationFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ScoutReputationPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.ScoutReputationFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ScoutReputationPayload>
          }
          findMany: {
            args: Prisma.ScoutReputationFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ScoutReputationPayload>[]
          }
          create: {
            args: Prisma.ScoutReputationCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ScoutReputationPayload>
          }
          createMany: {
            args: Prisma.ScoutReputationCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.ScoutReputationCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ScoutReputationPayload>[]
          }
          delete: {
            args: Prisma.ScoutReputationDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ScoutReputationPayload>
          }
          update: {
            args: Prisma.ScoutReputationUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ScoutReputationPayload>
          }
          deleteMany: {
            args: Prisma.ScoutReputationDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.ScoutReputationUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.ScoutReputationUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ScoutReputationPayload>[]
          }
          upsert: {
            args: Prisma.ScoutReputationUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ScoutReputationPayload>
          }
          aggregate: {
            args: Prisma.ScoutReputationAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateScoutReputation>
          }
          groupBy: {
            args: Prisma.ScoutReputationGroupByArgs<ExtArgs>
            result: $Utils.Optional<ScoutReputationGroupByOutputType>[]
          }
          count: {
            args: Prisma.ScoutReputationCountArgs<ExtArgs>
            result: $Utils.Optional<ScoutReputationCountAggregateOutputType> | number
          }
        }
      }
      BidProposal: {
        payload: Prisma.$BidProposalPayload<ExtArgs>
        fields: Prisma.BidProposalFieldRefs
        operations: {
          findUnique: {
            args: Prisma.BidProposalFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$BidProposalPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.BidProposalFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$BidProposalPayload>
          }
          findFirst: {
            args: Prisma.BidProposalFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$BidProposalPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.BidProposalFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$BidProposalPayload>
          }
          findMany: {
            args: Prisma.BidProposalFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$BidProposalPayload>[]
          }
          create: {
            args: Prisma.BidProposalCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$BidProposalPayload>
          }
          createMany: {
            args: Prisma.BidProposalCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.BidProposalCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$BidProposalPayload>[]
          }
          delete: {
            args: Prisma.BidProposalDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$BidProposalPayload>
          }
          update: {
            args: Prisma.BidProposalUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$BidProposalPayload>
          }
          deleteMany: {
            args: Prisma.BidProposalDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.BidProposalUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.BidProposalUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$BidProposalPayload>[]
          }
          upsert: {
            args: Prisma.BidProposalUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$BidProposalPayload>
          }
          aggregate: {
            args: Prisma.BidProposalAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateBidProposal>
          }
          groupBy: {
            args: Prisma.BidProposalGroupByArgs<ExtArgs>
            result: $Utils.Optional<BidProposalGroupByOutputType>[]
          }
          count: {
            args: Prisma.BidProposalCountArgs<ExtArgs>
            result: $Utils.Optional<BidProposalCountAggregateOutputType> | number
          }
        }
      }
      AgentWebhook: {
        payload: Prisma.$AgentWebhookPayload<ExtArgs>
        fields: Prisma.AgentWebhookFieldRefs
        operations: {
          findUnique: {
            args: Prisma.AgentWebhookFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentWebhookPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.AgentWebhookFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentWebhookPayload>
          }
          findFirst: {
            args: Prisma.AgentWebhookFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentWebhookPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.AgentWebhookFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentWebhookPayload>
          }
          findMany: {
            args: Prisma.AgentWebhookFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentWebhookPayload>[]
          }
          create: {
            args: Prisma.AgentWebhookCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentWebhookPayload>
          }
          createMany: {
            args: Prisma.AgentWebhookCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.AgentWebhookCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentWebhookPayload>[]
          }
          delete: {
            args: Prisma.AgentWebhookDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentWebhookPayload>
          }
          update: {
            args: Prisma.AgentWebhookUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentWebhookPayload>
          }
          deleteMany: {
            args: Prisma.AgentWebhookDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.AgentWebhookUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.AgentWebhookUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentWebhookPayload>[]
          }
          upsert: {
            args: Prisma.AgentWebhookUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentWebhookPayload>
          }
          aggregate: {
            args: Prisma.AgentWebhookAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateAgentWebhook>
          }
          groupBy: {
            args: Prisma.AgentWebhookGroupByArgs<ExtArgs>
            result: $Utils.Optional<AgentWebhookGroupByOutputType>[]
          }
          count: {
            args: Prisma.AgentWebhookCountArgs<ExtArgs>
            result: $Utils.Optional<AgentWebhookCountAggregateOutputType> | number
          }
        }
      }
      Arbitration: {
        payload: Prisma.$ArbitrationPayload<ExtArgs>
        fields: Prisma.ArbitrationFieldRefs
        operations: {
          findUnique: {
            args: Prisma.ArbitrationFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ArbitrationPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.ArbitrationFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ArbitrationPayload>
          }
          findFirst: {
            args: Prisma.ArbitrationFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ArbitrationPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.ArbitrationFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ArbitrationPayload>
          }
          findMany: {
            args: Prisma.ArbitrationFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ArbitrationPayload>[]
          }
          create: {
            args: Prisma.ArbitrationCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ArbitrationPayload>
          }
          createMany: {
            args: Prisma.ArbitrationCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.ArbitrationCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ArbitrationPayload>[]
          }
          delete: {
            args: Prisma.ArbitrationDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ArbitrationPayload>
          }
          update: {
            args: Prisma.ArbitrationUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ArbitrationPayload>
          }
          deleteMany: {
            args: Prisma.ArbitrationDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.ArbitrationUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.ArbitrationUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ArbitrationPayload>[]
          }
          upsert: {
            args: Prisma.ArbitrationUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ArbitrationPayload>
          }
          aggregate: {
            args: Prisma.ArbitrationAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateArbitration>
          }
          groupBy: {
            args: Prisma.ArbitrationGroupByArgs<ExtArgs>
            result: $Utils.Optional<ArbitrationGroupByOutputType>[]
          }
          count: {
            args: Prisma.ArbitrationCountArgs<ExtArgs>
            result: $Utils.Optional<ArbitrationCountAggregateOutputType> | number
          }
        }
      }
      ArbitrationVote: {
        payload: Prisma.$ArbitrationVotePayload<ExtArgs>
        fields: Prisma.ArbitrationVoteFieldRefs
        operations: {
          findUnique: {
            args: Prisma.ArbitrationVoteFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ArbitrationVotePayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.ArbitrationVoteFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ArbitrationVotePayload>
          }
          findFirst: {
            args: Prisma.ArbitrationVoteFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ArbitrationVotePayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.ArbitrationVoteFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ArbitrationVotePayload>
          }
          findMany: {
            args: Prisma.ArbitrationVoteFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ArbitrationVotePayload>[]
          }
          create: {
            args: Prisma.ArbitrationVoteCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ArbitrationVotePayload>
          }
          createMany: {
            args: Prisma.ArbitrationVoteCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.ArbitrationVoteCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ArbitrationVotePayload>[]
          }
          delete: {
            args: Prisma.ArbitrationVoteDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ArbitrationVotePayload>
          }
          update: {
            args: Prisma.ArbitrationVoteUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ArbitrationVotePayload>
          }
          deleteMany: {
            args: Prisma.ArbitrationVoteDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.ArbitrationVoteUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.ArbitrationVoteUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ArbitrationVotePayload>[]
          }
          upsert: {
            args: Prisma.ArbitrationVoteUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$ArbitrationVotePayload>
          }
          aggregate: {
            args: Prisma.ArbitrationVoteAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateArbitrationVote>
          }
          groupBy: {
            args: Prisma.ArbitrationVoteGroupByArgs<ExtArgs>
            result: $Utils.Optional<ArbitrationVoteGroupByOutputType>[]
          }
          count: {
            args: Prisma.ArbitrationVoteCountArgs<ExtArgs>
            result: $Utils.Optional<ArbitrationVoteCountAggregateOutputType> | number
          }
        }
      }
      AgentProject: {
        payload: Prisma.$AgentProjectPayload<ExtArgs>
        fields: Prisma.AgentProjectFieldRefs
        operations: {
          findUnique: {
            args: Prisma.AgentProjectFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentProjectPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.AgentProjectFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentProjectPayload>
          }
          findFirst: {
            args: Prisma.AgentProjectFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentProjectPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.AgentProjectFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentProjectPayload>
          }
          findMany: {
            args: Prisma.AgentProjectFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentProjectPayload>[]
          }
          create: {
            args: Prisma.AgentProjectCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentProjectPayload>
          }
          createMany: {
            args: Prisma.AgentProjectCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.AgentProjectCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentProjectPayload>[]
          }
          delete: {
            args: Prisma.AgentProjectDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentProjectPayload>
          }
          update: {
            args: Prisma.AgentProjectUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentProjectPayload>
          }
          deleteMany: {
            args: Prisma.AgentProjectDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.AgentProjectUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.AgentProjectUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentProjectPayload>[]
          }
          upsert: {
            args: Prisma.AgentProjectUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$AgentProjectPayload>
          }
          aggregate: {
            args: Prisma.AgentProjectAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateAgentProject>
          }
          groupBy: {
            args: Prisma.AgentProjectGroupByArgs<ExtArgs>
            result: $Utils.Optional<AgentProjectGroupByOutputType>[]
          }
          count: {
            args: Prisma.AgentProjectCountArgs<ExtArgs>
            result: $Utils.Optional<AgentProjectCountAggregateOutputType> | number
          }
        }
      }
      TokenSale: {
        payload: Prisma.$TokenSalePayload<ExtArgs>
        fields: Prisma.TokenSaleFieldRefs
        operations: {
          findUnique: {
            args: Prisma.TokenSaleFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$TokenSalePayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.TokenSaleFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$TokenSalePayload>
          }
          findFirst: {
            args: Prisma.TokenSaleFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$TokenSalePayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.TokenSaleFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$TokenSalePayload>
          }
          findMany: {
            args: Prisma.TokenSaleFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$TokenSalePayload>[]
          }
          create: {
            args: Prisma.TokenSaleCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$TokenSalePayload>
          }
          createMany: {
            args: Prisma.TokenSaleCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.TokenSaleCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$TokenSalePayload>[]
          }
          delete: {
            args: Prisma.TokenSaleDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$TokenSalePayload>
          }
          update: {
            args: Prisma.TokenSaleUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$TokenSalePayload>
          }
          deleteMany: {
            args: Prisma.TokenSaleDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.TokenSaleUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.TokenSaleUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$TokenSalePayload>[]
          }
          upsert: {
            args: Prisma.TokenSaleUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$TokenSalePayload>
          }
          aggregate: {
            args: Prisma.TokenSaleAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateTokenSale>
          }
          groupBy: {
            args: Prisma.TokenSaleGroupByArgs<ExtArgs>
            result: $Utils.Optional<TokenSaleGroupByOutputType>[]
          }
          count: {
            args: Prisma.TokenSaleCountArgs<ExtArgs>
            result: $Utils.Optional<TokenSaleCountAggregateOutputType> | number
          }
        }
      }
      SlashingEvent: {
        payload: Prisma.$SlashingEventPayload<ExtArgs>
        fields: Prisma.SlashingEventFieldRefs
        operations: {
          findUnique: {
            args: Prisma.SlashingEventFindUniqueArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SlashingEventPayload> | null
          }
          findUniqueOrThrow: {
            args: Prisma.SlashingEventFindUniqueOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SlashingEventPayload>
          }
          findFirst: {
            args: Prisma.SlashingEventFindFirstArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SlashingEventPayload> | null
          }
          findFirstOrThrow: {
            args: Prisma.SlashingEventFindFirstOrThrowArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SlashingEventPayload>
          }
          findMany: {
            args: Prisma.SlashingEventFindManyArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SlashingEventPayload>[]
          }
          create: {
            args: Prisma.SlashingEventCreateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SlashingEventPayload>
          }
          createMany: {
            args: Prisma.SlashingEventCreateManyArgs<ExtArgs>
            result: BatchPayload
          }
          createManyAndReturn: {
            args: Prisma.SlashingEventCreateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SlashingEventPayload>[]
          }
          delete: {
            args: Prisma.SlashingEventDeleteArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SlashingEventPayload>
          }
          update: {
            args: Prisma.SlashingEventUpdateArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SlashingEventPayload>
          }
          deleteMany: {
            args: Prisma.SlashingEventDeleteManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateMany: {
            args: Prisma.SlashingEventUpdateManyArgs<ExtArgs>
            result: BatchPayload
          }
          updateManyAndReturn: {
            args: Prisma.SlashingEventUpdateManyAndReturnArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SlashingEventPayload>[]
          }
          upsert: {
            args: Prisma.SlashingEventUpsertArgs<ExtArgs>
            result: $Utils.PayloadToResult<Prisma.$SlashingEventPayload>
          }
          aggregate: {
            args: Prisma.SlashingEventAggregateArgs<ExtArgs>
            result: $Utils.Optional<AggregateSlashingEvent>
          }
          groupBy: {
            args: Prisma.SlashingEventGroupByArgs<ExtArgs>
            result: $Utils.Optional<SlashingEventGroupByOutputType>[]
          }
          count: {
            args: Prisma.SlashingEventCountArgs<ExtArgs>
            result: $Utils.Optional<SlashingEventCountAggregateOutputType> | number
          }
        }
      }
    }
  } & {
    other: {
      payload: any
      operations: {
        $executeRaw: {
          args: [query: TemplateStringsArray | Prisma.Sql, ...values: any[]],
          result: any
        }
        $executeRawUnsafe: {
          args: [query: string, ...values: any[]],
          result: any
        }
        $queryRaw: {
          args: [query: TemplateStringsArray | Prisma.Sql, ...values: any[]],
          result: any
        }
        $queryRawUnsafe: {
          args: [query: string, ...values: any[]],
          result: any
        }
      }
    }
  }
  export const defineExtension: $Extensions.ExtendsHook<"define", Prisma.TypeMapCb, $Extensions.DefaultArgs>
  export type DefaultPrismaClient = PrismaClient
  export type ErrorFormat = 'pretty' | 'colorless' | 'minimal'
  export interface PrismaClientOptions {
    /**
     * Overwrites the datasource url from your schema.prisma file
     */
    datasources?: Datasources
    /**
     * Overwrites the datasource url from your schema.prisma file
     */
    datasourceUrl?: string
    /**
     * @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://www.prisma.io/docs/reference/tools-and-interfaces/prisma-client/logging#the-log-option).
     */
    log?: (LogLevel | LogDefinition)[]
    /**
     * The default values for transactionOptions
     * maxWait ?= 2000
     * timeout ?= 5000
     */
    transactionOptions?: {
      maxWait?: number
      timeout?: number
      isolationLevel?: Prisma.TransactionIsolationLevel
    }
    /**
     * Instance of a Driver Adapter, e.g., like one provided by `@prisma/adapter-planetscale`
     */
    adapter?: runtime.SqlDriverAdapterFactory | null
    /**
     * Global configuration for omitting model fields by default.
     * 
     * @example
     * ```
     * const prisma = new PrismaClient({
     *   omit: {
     *     user: {
     *       password: true
     *     }
     *   }
     * })
     * ```
     */
    omit?: Prisma.GlobalOmitConfig
  }
  export type GlobalOmitConfig = {
    task?: TaskOmit
    claim?: ClaimOmit
    submission?: SubmissionOmit
    judgeResult?: JudgeResultOmit
    auditEvent?: AuditEventOmit
    ledgerEntry?: LedgerEntryOmit
    agentProfile?: AgentProfileOmit
    affiliateLedger?: AffiliateLedgerOmit
    scoutReputation?: ScoutReputationOmit
    bidProposal?: BidProposalOmit
    agentWebhook?: AgentWebhookOmit
    arbitration?: ArbitrationOmit
    arbitrationVote?: ArbitrationVoteOmit
    agentProject?: AgentProjectOmit
    tokenSale?: TokenSaleOmit
    slashingEvent?: SlashingEventOmit
  }

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

  // tested in getLogLevel.test.ts
  export function getLogLevel(log: Array<LogLevel | LogDefinition>): LogLevel | undefined;

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

  export type Datasource = {
    url?: string
  }

  /**
   * Count Types
   */


  /**
   * Count Type TaskCountOutputType
   */

  export type TaskCountOutputType = {
    claims: number
    submissions: number
    affiliate_ledger: number
    bid_proposals: number
    arbitrations: number
  }

  export type TaskCountOutputTypeSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    claims?: boolean | TaskCountOutputTypeCountClaimsArgs
    submissions?: boolean | TaskCountOutputTypeCountSubmissionsArgs
    affiliate_ledger?: boolean | TaskCountOutputTypeCountAffiliate_ledgerArgs
    bid_proposals?: boolean | TaskCountOutputTypeCountBid_proposalsArgs
    arbitrations?: boolean | TaskCountOutputTypeCountArbitrationsArgs
  }

  // Custom InputTypes
  /**
   * TaskCountOutputType without action
   */
  export type TaskCountOutputTypeDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the TaskCountOutputType
     */
    select?: TaskCountOutputTypeSelect<ExtArgs> | null
  }

  /**
   * TaskCountOutputType without action
   */
  export type TaskCountOutputTypeCountClaimsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: ClaimWhereInput
  }

  /**
   * TaskCountOutputType without action
   */
  export type TaskCountOutputTypeCountSubmissionsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: SubmissionWhereInput
  }

  /**
   * TaskCountOutputType without action
   */
  export type TaskCountOutputTypeCountAffiliate_ledgerArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: AffiliateLedgerWhereInput
  }

  /**
   * TaskCountOutputType without action
   */
  export type TaskCountOutputTypeCountBid_proposalsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: BidProposalWhereInput
  }

  /**
   * TaskCountOutputType without action
   */
  export type TaskCountOutputTypeCountArbitrationsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: ArbitrationWhereInput
  }


  /**
   * Count Type ClaimCountOutputType
   */

  export type ClaimCountOutputType = {
    submissions: number
  }

  export type ClaimCountOutputTypeSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    submissions?: boolean | ClaimCountOutputTypeCountSubmissionsArgs
  }

  // Custom InputTypes
  /**
   * ClaimCountOutputType without action
   */
  export type ClaimCountOutputTypeDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ClaimCountOutputType
     */
    select?: ClaimCountOutputTypeSelect<ExtArgs> | null
  }

  /**
   * ClaimCountOutputType without action
   */
  export type ClaimCountOutputTypeCountSubmissionsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: SubmissionWhereInput
  }


  /**
   * Count Type SubmissionCountOutputType
   */

  export type SubmissionCountOutputType = {
    judge_results: number
  }

  export type SubmissionCountOutputTypeSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    judge_results?: boolean | SubmissionCountOutputTypeCountJudge_resultsArgs
  }

  // Custom InputTypes
  /**
   * SubmissionCountOutputType without action
   */
  export type SubmissionCountOutputTypeDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SubmissionCountOutputType
     */
    select?: SubmissionCountOutputTypeSelect<ExtArgs> | null
  }

  /**
   * SubmissionCountOutputType without action
   */
  export type SubmissionCountOutputTypeCountJudge_resultsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: JudgeResultWhereInput
  }


  /**
   * Count Type AgentProfileCountOutputType
   */

  export type AgentProfileCountOutputType = {
    tasks_as_scout: number
    tasks_as_builder: number
    claims: number
    affiliate_ledger: number
    bid_proposals: number
    arbitrations_as_builder: number
    arbitrations_as_evaluator: number
    arbitration_votes: number
    created_projects: number
    slashing_events: number
  }

  export type AgentProfileCountOutputTypeSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    tasks_as_scout?: boolean | AgentProfileCountOutputTypeCountTasks_as_scoutArgs
    tasks_as_builder?: boolean | AgentProfileCountOutputTypeCountTasks_as_builderArgs
    claims?: boolean | AgentProfileCountOutputTypeCountClaimsArgs
    affiliate_ledger?: boolean | AgentProfileCountOutputTypeCountAffiliate_ledgerArgs
    bid_proposals?: boolean | AgentProfileCountOutputTypeCountBid_proposalsArgs
    arbitrations_as_builder?: boolean | AgentProfileCountOutputTypeCountArbitrations_as_builderArgs
    arbitrations_as_evaluator?: boolean | AgentProfileCountOutputTypeCountArbitrations_as_evaluatorArgs
    arbitration_votes?: boolean | AgentProfileCountOutputTypeCountArbitration_votesArgs
    created_projects?: boolean | AgentProfileCountOutputTypeCountCreated_projectsArgs
    slashing_events?: boolean | AgentProfileCountOutputTypeCountSlashing_eventsArgs
  }

  // Custom InputTypes
  /**
   * AgentProfileCountOutputType without action
   */
  export type AgentProfileCountOutputTypeDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentProfileCountOutputType
     */
    select?: AgentProfileCountOutputTypeSelect<ExtArgs> | null
  }

  /**
   * AgentProfileCountOutputType without action
   */
  export type AgentProfileCountOutputTypeCountTasks_as_scoutArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: TaskWhereInput
  }

  /**
   * AgentProfileCountOutputType without action
   */
  export type AgentProfileCountOutputTypeCountTasks_as_builderArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: TaskWhereInput
  }

  /**
   * AgentProfileCountOutputType without action
   */
  export type AgentProfileCountOutputTypeCountClaimsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: ClaimWhereInput
  }

  /**
   * AgentProfileCountOutputType without action
   */
  export type AgentProfileCountOutputTypeCountAffiliate_ledgerArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: AffiliateLedgerWhereInput
  }

  /**
   * AgentProfileCountOutputType without action
   */
  export type AgentProfileCountOutputTypeCountBid_proposalsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: BidProposalWhereInput
  }

  /**
   * AgentProfileCountOutputType without action
   */
  export type AgentProfileCountOutputTypeCountArbitrations_as_builderArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: ArbitrationWhereInput
  }

  /**
   * AgentProfileCountOutputType without action
   */
  export type AgentProfileCountOutputTypeCountArbitrations_as_evaluatorArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: ArbitrationWhereInput
  }

  /**
   * AgentProfileCountOutputType without action
   */
  export type AgentProfileCountOutputTypeCountArbitration_votesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: ArbitrationVoteWhereInput
  }

  /**
   * AgentProfileCountOutputType without action
   */
  export type AgentProfileCountOutputTypeCountCreated_projectsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: AgentProjectWhereInput
  }

  /**
   * AgentProfileCountOutputType without action
   */
  export type AgentProfileCountOutputTypeCountSlashing_eventsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: SlashingEventWhereInput
  }


  /**
   * Count Type ArbitrationCountOutputType
   */

  export type ArbitrationCountOutputType = {
    votes: number
    slashing_events: number
  }

  export type ArbitrationCountOutputTypeSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    votes?: boolean | ArbitrationCountOutputTypeCountVotesArgs
    slashing_events?: boolean | ArbitrationCountOutputTypeCountSlashing_eventsArgs
  }

  // Custom InputTypes
  /**
   * ArbitrationCountOutputType without action
   */
  export type ArbitrationCountOutputTypeDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ArbitrationCountOutputType
     */
    select?: ArbitrationCountOutputTypeSelect<ExtArgs> | null
  }

  /**
   * ArbitrationCountOutputType without action
   */
  export type ArbitrationCountOutputTypeCountVotesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: ArbitrationVoteWhereInput
  }

  /**
   * ArbitrationCountOutputType without action
   */
  export type ArbitrationCountOutputTypeCountSlashing_eventsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: SlashingEventWhereInput
  }


  /**
   * Count Type AgentProjectCountOutputType
   */

  export type AgentProjectCountOutputType = {
    token_sales: number
  }

  export type AgentProjectCountOutputTypeSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    token_sales?: boolean | AgentProjectCountOutputTypeCountToken_salesArgs
  }

  // Custom InputTypes
  /**
   * AgentProjectCountOutputType without action
   */
  export type AgentProjectCountOutputTypeDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentProjectCountOutputType
     */
    select?: AgentProjectCountOutputTypeSelect<ExtArgs> | null
  }

  /**
   * AgentProjectCountOutputType without action
   */
  export type AgentProjectCountOutputTypeCountToken_salesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: TokenSaleWhereInput
  }


  /**
   * Models
   */

  /**
   * Model Task
   */

  export type AggregateTask = {
    _count: TaskCountAggregateOutputType | null
    _avg: TaskAvgAggregateOutputType | null
    _sum: TaskSumAggregateOutputType | null
    _min: TaskMinAggregateOutputType | null
    _max: TaskMaxAggregateOutputType | null
  }

  export type TaskAvgAggregateOutputType = {
    scope_clarity_score: number | null
    reward_amount: number | null
    retry_count: number | null
    reward_points: number | null
  }

  export type TaskSumAggregateOutputType = {
    scope_clarity_score: number | null
    reward_amount: number | null
    retry_count: number | null
    reward_points: number | null
  }

  export type TaskMinAggregateOutputType = {
    id: string | null
    title: string | null
    description: string | null
    status: string | null
    difficulty: string | null
    scope_clarity_score: number | null
    error_classification: string | null
    reward_amount: number | null
    reward_currency: string | null
    retry_count: number | null
    stripe_payment_intent_id: string | null
    stripe_checkout_session_id: string | null
    expires_at: Date | null
    github_pr_url: string | null
    reward_points: number | null
    is_priority: boolean | null
    is_private: boolean | null
    referred_by_agent: string | null
    parent_task_id: string | null
    created_by_agent: string | null
    created_at: Date | null
    updated_at: Date | null
    scout_id: string | null
    builder_id: string | null
  }

  export type TaskMaxAggregateOutputType = {
    id: string | null
    title: string | null
    description: string | null
    status: string | null
    difficulty: string | null
    scope_clarity_score: number | null
    error_classification: string | null
    reward_amount: number | null
    reward_currency: string | null
    retry_count: number | null
    stripe_payment_intent_id: string | null
    stripe_checkout_session_id: string | null
    expires_at: Date | null
    github_pr_url: string | null
    reward_points: number | null
    is_priority: boolean | null
    is_private: boolean | null
    referred_by_agent: string | null
    parent_task_id: string | null
    created_by_agent: string | null
    created_at: Date | null
    updated_at: Date | null
    scout_id: string | null
    builder_id: string | null
  }

  export type TaskCountAggregateOutputType = {
    id: number
    title: number
    description: number
    status: number
    difficulty: number
    scope_clarity_score: number
    error_classification: number
    reward_amount: number
    reward_currency: number
    acceptance_criteria: number
    required_stack: number
    retry_count: number
    stripe_payment_intent_id: number
    stripe_checkout_session_id: number
    expires_at: number
    github_pr_url: number
    reward_points: number
    is_priority: number
    is_private: number
    referred_by_agent: number
    parent_task_id: number
    created_by_agent: number
    created_at: number
    updated_at: number
    scout_id: number
    builder_id: number
    _all: number
  }


  export type TaskAvgAggregateInputType = {
    scope_clarity_score?: true
    reward_amount?: true
    retry_count?: true
    reward_points?: true
  }

  export type TaskSumAggregateInputType = {
    scope_clarity_score?: true
    reward_amount?: true
    retry_count?: true
    reward_points?: true
  }

  export type TaskMinAggregateInputType = {
    id?: true
    title?: true
    description?: true
    status?: true
    difficulty?: true
    scope_clarity_score?: true
    error_classification?: true
    reward_amount?: true
    reward_currency?: true
    retry_count?: true
    stripe_payment_intent_id?: true
    stripe_checkout_session_id?: true
    expires_at?: true
    github_pr_url?: true
    reward_points?: true
    is_priority?: true
    is_private?: true
    referred_by_agent?: true
    parent_task_id?: true
    created_by_agent?: true
    created_at?: true
    updated_at?: true
    scout_id?: true
    builder_id?: true
  }

  export type TaskMaxAggregateInputType = {
    id?: true
    title?: true
    description?: true
    status?: true
    difficulty?: true
    scope_clarity_score?: true
    error_classification?: true
    reward_amount?: true
    reward_currency?: true
    retry_count?: true
    stripe_payment_intent_id?: true
    stripe_checkout_session_id?: true
    expires_at?: true
    github_pr_url?: true
    reward_points?: true
    is_priority?: true
    is_private?: true
    referred_by_agent?: true
    parent_task_id?: true
    created_by_agent?: true
    created_at?: true
    updated_at?: true
    scout_id?: true
    builder_id?: true
  }

  export type TaskCountAggregateInputType = {
    id?: true
    title?: true
    description?: true
    status?: true
    difficulty?: true
    scope_clarity_score?: true
    error_classification?: true
    reward_amount?: true
    reward_currency?: true
    acceptance_criteria?: true
    required_stack?: true
    retry_count?: true
    stripe_payment_intent_id?: true
    stripe_checkout_session_id?: true
    expires_at?: true
    github_pr_url?: true
    reward_points?: true
    is_priority?: true
    is_private?: true
    referred_by_agent?: true
    parent_task_id?: true
    created_by_agent?: true
    created_at?: true
    updated_at?: true
    scout_id?: true
    builder_id?: true
    _all?: true
  }

  export type TaskAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which Task to aggregate.
     */
    where?: TaskWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Tasks to fetch.
     */
    orderBy?: TaskOrderByWithRelationInput | TaskOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: TaskWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Tasks from the position of the cursor.
     */
    take?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Skip the first `n` Tasks.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned Tasks
    **/
    _count?: true | TaskCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: TaskAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: TaskSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: TaskMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: TaskMaxAggregateInputType
  }

  export type GetTaskAggregateType<T extends TaskAggregateArgs> = {
        [P in keyof T & keyof AggregateTask]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateTask[P]>
      : GetScalarType<T[P], AggregateTask[P]>
  }




  export type TaskGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: TaskWhereInput
    orderBy?: TaskOrderByWithAggregationInput | TaskOrderByWithAggregationInput[]
    by: TaskScalarFieldEnum[] | TaskScalarFieldEnum
    having?: TaskScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: TaskCountAggregateInputType | true
    _avg?: TaskAvgAggregateInputType
    _sum?: TaskSumAggregateInputType
    _min?: TaskMinAggregateInputType
    _max?: TaskMaxAggregateInputType
  }

  export type TaskGroupByOutputType = {
    id: string
    title: string
    description: string
    status: string
    difficulty: string
    scope_clarity_score: number
    error_classification: string | null
    reward_amount: number
    reward_currency: string
    acceptance_criteria: JsonValue
    required_stack: string[]
    retry_count: number
    stripe_payment_intent_id: string | null
    stripe_checkout_session_id: string | null
    expires_at: Date | null
    github_pr_url: string | null
    reward_points: number
    is_priority: boolean
    is_private: boolean
    referred_by_agent: string | null
    parent_task_id: string | null
    created_by_agent: string | null
    created_at: Date
    updated_at: Date
    scout_id: string | null
    builder_id: string | null
    _count: TaskCountAggregateOutputType | null
    _avg: TaskAvgAggregateOutputType | null
    _sum: TaskSumAggregateOutputType | null
    _min: TaskMinAggregateOutputType | null
    _max: TaskMaxAggregateOutputType | null
  }

  type GetTaskGroupByPayload<T extends TaskGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<TaskGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof TaskGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], TaskGroupByOutputType[P]>
            : GetScalarType<T[P], TaskGroupByOutputType[P]>
        }
      >
    >


  export type TaskSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    title?: boolean
    description?: boolean
    status?: boolean
    difficulty?: boolean
    scope_clarity_score?: boolean
    error_classification?: boolean
    reward_amount?: boolean
    reward_currency?: boolean
    acceptance_criteria?: boolean
    required_stack?: boolean
    retry_count?: boolean
    stripe_payment_intent_id?: boolean
    stripe_checkout_session_id?: boolean
    expires_at?: boolean
    github_pr_url?: boolean
    reward_points?: boolean
    is_priority?: boolean
    is_private?: boolean
    referred_by_agent?: boolean
    parent_task_id?: boolean
    created_by_agent?: boolean
    created_at?: boolean
    updated_at?: boolean
    scout_id?: boolean
    builder_id?: boolean
    scout_agent?: boolean | Task$scout_agentArgs<ExtArgs>
    builder_agent?: boolean | Task$builder_agentArgs<ExtArgs>
    claims?: boolean | Task$claimsArgs<ExtArgs>
    submissions?: boolean | Task$submissionsArgs<ExtArgs>
    affiliate_ledger?: boolean | Task$affiliate_ledgerArgs<ExtArgs>
    bid_proposals?: boolean | Task$bid_proposalsArgs<ExtArgs>
    arbitrations?: boolean | Task$arbitrationsArgs<ExtArgs>
    _count?: boolean | TaskCountOutputTypeDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["task"]>

  export type TaskSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    title?: boolean
    description?: boolean
    status?: boolean
    difficulty?: boolean
    scope_clarity_score?: boolean
    error_classification?: boolean
    reward_amount?: boolean
    reward_currency?: boolean
    acceptance_criteria?: boolean
    required_stack?: boolean
    retry_count?: boolean
    stripe_payment_intent_id?: boolean
    stripe_checkout_session_id?: boolean
    expires_at?: boolean
    github_pr_url?: boolean
    reward_points?: boolean
    is_priority?: boolean
    is_private?: boolean
    referred_by_agent?: boolean
    parent_task_id?: boolean
    created_by_agent?: boolean
    created_at?: boolean
    updated_at?: boolean
    scout_id?: boolean
    builder_id?: boolean
    scout_agent?: boolean | Task$scout_agentArgs<ExtArgs>
    builder_agent?: boolean | Task$builder_agentArgs<ExtArgs>
  }, ExtArgs["result"]["task"]>

  export type TaskSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    title?: boolean
    description?: boolean
    status?: boolean
    difficulty?: boolean
    scope_clarity_score?: boolean
    error_classification?: boolean
    reward_amount?: boolean
    reward_currency?: boolean
    acceptance_criteria?: boolean
    required_stack?: boolean
    retry_count?: boolean
    stripe_payment_intent_id?: boolean
    stripe_checkout_session_id?: boolean
    expires_at?: boolean
    github_pr_url?: boolean
    reward_points?: boolean
    is_priority?: boolean
    is_private?: boolean
    referred_by_agent?: boolean
    parent_task_id?: boolean
    created_by_agent?: boolean
    created_at?: boolean
    updated_at?: boolean
    scout_id?: boolean
    builder_id?: boolean
    scout_agent?: boolean | Task$scout_agentArgs<ExtArgs>
    builder_agent?: boolean | Task$builder_agentArgs<ExtArgs>
  }, ExtArgs["result"]["task"]>

  export type TaskSelectScalar = {
    id?: boolean
    title?: boolean
    description?: boolean
    status?: boolean
    difficulty?: boolean
    scope_clarity_score?: boolean
    error_classification?: boolean
    reward_amount?: boolean
    reward_currency?: boolean
    acceptance_criteria?: boolean
    required_stack?: boolean
    retry_count?: boolean
    stripe_payment_intent_id?: boolean
    stripe_checkout_session_id?: boolean
    expires_at?: boolean
    github_pr_url?: boolean
    reward_points?: boolean
    is_priority?: boolean
    is_private?: boolean
    referred_by_agent?: boolean
    parent_task_id?: boolean
    created_by_agent?: boolean
    created_at?: boolean
    updated_at?: boolean
    scout_id?: boolean
    builder_id?: boolean
  }

  export type TaskOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "title" | "description" | "status" | "difficulty" | "scope_clarity_score" | "error_classification" | "reward_amount" | "reward_currency" | "acceptance_criteria" | "required_stack" | "retry_count" | "stripe_payment_intent_id" | "stripe_checkout_session_id" | "expires_at" | "github_pr_url" | "reward_points" | "is_priority" | "is_private" | "referred_by_agent" | "parent_task_id" | "created_by_agent" | "created_at" | "updated_at" | "scout_id" | "builder_id", ExtArgs["result"]["task"]>
  export type TaskInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    scout_agent?: boolean | Task$scout_agentArgs<ExtArgs>
    builder_agent?: boolean | Task$builder_agentArgs<ExtArgs>
    claims?: boolean | Task$claimsArgs<ExtArgs>
    submissions?: boolean | Task$submissionsArgs<ExtArgs>
    affiliate_ledger?: boolean | Task$affiliate_ledgerArgs<ExtArgs>
    bid_proposals?: boolean | Task$bid_proposalsArgs<ExtArgs>
    arbitrations?: boolean | Task$arbitrationsArgs<ExtArgs>
    _count?: boolean | TaskCountOutputTypeDefaultArgs<ExtArgs>
  }
  export type TaskIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    scout_agent?: boolean | Task$scout_agentArgs<ExtArgs>
    builder_agent?: boolean | Task$builder_agentArgs<ExtArgs>
  }
  export type TaskIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    scout_agent?: boolean | Task$scout_agentArgs<ExtArgs>
    builder_agent?: boolean | Task$builder_agentArgs<ExtArgs>
  }

  export type $TaskPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "Task"
    objects: {
      scout_agent: Prisma.$AgentProfilePayload<ExtArgs> | null
      builder_agent: Prisma.$AgentProfilePayload<ExtArgs> | null
      claims: Prisma.$ClaimPayload<ExtArgs>[]
      submissions: Prisma.$SubmissionPayload<ExtArgs>[]
      affiliate_ledger: Prisma.$AffiliateLedgerPayload<ExtArgs>[]
      bid_proposals: Prisma.$BidProposalPayload<ExtArgs>[]
      arbitrations: Prisma.$ArbitrationPayload<ExtArgs>[]
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      title: string
      description: string
      status: string
      difficulty: string
      scope_clarity_score: number
      error_classification: string | null
      reward_amount: number
      reward_currency: string
      acceptance_criteria: Prisma.JsonValue
      required_stack: string[]
      retry_count: number
      stripe_payment_intent_id: string | null
      stripe_checkout_session_id: string | null
      expires_at: Date | null
      github_pr_url: string | null
      reward_points: number
      is_priority: boolean
      is_private: boolean
      referred_by_agent: string | null
      parent_task_id: string | null
      created_by_agent: string | null
      created_at: Date
      updated_at: Date
      scout_id: string | null
      builder_id: string | null
    }, ExtArgs["result"]["task"]>
    composites: {}
  }

  type TaskGetPayload<S extends boolean | null | undefined | TaskDefaultArgs> = $Result.GetResult<Prisma.$TaskPayload, S>

  type TaskCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<TaskFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: TaskCountAggregateInputType | true
    }

  export interface TaskDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['Task'], meta: { name: 'Task' } }
    /**
     * Find zero or one Task that matches the filter.
     * @param {TaskFindUniqueArgs} args - Arguments to find a Task
     * @example
     * // Get one Task
     * const task = await prisma.task.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends TaskFindUniqueArgs>(args: SelectSubset<T, TaskFindUniqueArgs<ExtArgs>>): Prisma__TaskClient<$Result.GetResult<Prisma.$TaskPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one Task that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {TaskFindUniqueOrThrowArgs} args - Arguments to find a Task
     * @example
     * // Get one Task
     * const task = await prisma.task.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends TaskFindUniqueOrThrowArgs>(args: SelectSubset<T, TaskFindUniqueOrThrowArgs<ExtArgs>>): Prisma__TaskClient<$Result.GetResult<Prisma.$TaskPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first Task that matches the filter.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {TaskFindFirstArgs} args - Arguments to find a Task
     * @example
     * // Get one Task
     * const task = await prisma.task.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends TaskFindFirstArgs>(args?: SelectSubset<T, TaskFindFirstArgs<ExtArgs>>): Prisma__TaskClient<$Result.GetResult<Prisma.$TaskPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first Task that matches the filter or
     * throw `PrismaKnownClientError` with `P2025` code if no matches were found.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {TaskFindFirstOrThrowArgs} args - Arguments to find a Task
     * @example
     * // Get one Task
     * const task = await prisma.task.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends TaskFindFirstOrThrowArgs>(args?: SelectSubset<T, TaskFindFirstOrThrowArgs<ExtArgs>>): Prisma__TaskClient<$Result.GetResult<Prisma.$TaskPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more Tasks that matches the filter.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {TaskFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all Tasks
     * const tasks = await prisma.task.findMany()
     * 
     * // Get first 10 Tasks
     * const tasks = await prisma.task.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const taskWithIdOnly = await prisma.task.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends TaskFindManyArgs>(args?: SelectSubset<T, TaskFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$TaskPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a Task.
     * @param {TaskCreateArgs} args - Arguments to create a Task.
     * @example
     * // Create one Task
     * const Task = await prisma.task.create({
     *   data: {
     *     // ... data to create a Task
     *   }
     * })
     * 
     */
    create<T extends TaskCreateArgs>(args: SelectSubset<T, TaskCreateArgs<ExtArgs>>): Prisma__TaskClient<$Result.GetResult<Prisma.$TaskPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many Tasks.
     * @param {TaskCreateManyArgs} args - Arguments to create many Tasks.
     * @example
     * // Create many Tasks
     * const task = await prisma.task.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends TaskCreateManyArgs>(args?: SelectSubset<T, TaskCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many Tasks and returns the data saved in the database.
     * @param {TaskCreateManyAndReturnArgs} args - Arguments to create many Tasks.
     * @example
     * // Create many Tasks
     * const task = await prisma.task.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many Tasks and only return the `id`
     * const taskWithIdOnly = await prisma.task.createManyAndReturn({
     *   select: { id: true },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * 
     */
    createManyAndReturn<T extends TaskCreateManyAndReturnArgs>(args?: SelectSubset<T, TaskCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$TaskPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a Task.
     * @param {TaskDeleteArgs} args - Arguments to delete one Task.
     * @example
     * // Delete one Task
     * const Task = await prisma.task.delete({
     *   where: {
     *     // ... filter to delete one Task
     *   }
     * })
     * 
     */
    delete<T extends TaskDeleteArgs>(args: SelectSubset<T, TaskDeleteArgs<ExtArgs>>): Prisma__TaskClient<$Result.GetResult<Prisma.$TaskPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one Task.
     * @param {TaskUpdateArgs} args - Arguments to update one Task.
     * @example
     * // Update one Task
     * const task = await prisma.task.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends TaskUpdateArgs>(args: SelectSubset<T, TaskUpdateArgs<ExtArgs>>): Prisma__TaskClient<$Result.GetResult<Prisma.$TaskPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more Tasks.
     * @param {TaskDeleteManyArgs} args - Arguments to filter Tasks to delete.
     * @example
     * // Delete a few Tasks
     * const { count } = await prisma.task.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends TaskDeleteManyArgs>(args?: SelectSubset<T, TaskDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more Tasks.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {TaskUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many Tasks
     * const task = await prisma.task.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends TaskUpdateManyArgs>(args: SelectSubset<T, TaskUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more Tasks and returns the data updated in the database.
     * @param {TaskUpdateManyAndReturnArgs} args - Arguments to update many Tasks.
     * @example
     * // Update many Tasks
     * const task = await prisma.task.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more Tasks and only return the `id`
     * const taskWithIdOnly = await prisma.task.updateManyAndReturn({
     *   select: { id: true },
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * 
     */
    updateManyAndReturn<T extends TaskUpdateManyAndReturnArgs>(args: SelectSubset<T, TaskUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$TaskPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one Task.
     * @param {TaskUpsertArgs} args - Arguments to update or create a Task.
     * @example
     * // Update or create a Task
     * const task = await prisma.task.upsert({
     *   create: {
     *     // ... data to create a Task
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the Task we want to update
     *   }
     * })
     */
    upsert<T extends TaskUpsertArgs>(args: SelectSubset<T, TaskUpsertArgs<ExtArgs>>): Prisma__TaskClient<$Result.GetResult<Prisma.$TaskPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of Tasks.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {TaskCountArgs} args - Arguments to filter Tasks to count.
     * @example
     * // Count the number of Tasks
     * const count = await prisma.task.count({
     *   where: {
     *     // ... the filter for the Tasks we want to count
     *   }
     * })
    **/
    count<T extends TaskCountArgs>(
      args?: Subset<T, TaskCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], TaskCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a Task.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {TaskAggregateArgs} args - Select which aggregations you would like to apply and on what fields.
     * @example
     * // Ordered by age ascending
     * // Where email contains prisma.io
     * // Limited to the 10 users
     * const aggregations = await prisma.user.aggregate({
     *   _avg: {
     *     age: true,
     *   },
     *   where: {
     *     email: {
     *       contains: "prisma.io",
     *     },
     *   },
     *   orderBy: {
     *     age: "asc",
     *   },
     *   take: 10,
     * })
    **/
    aggregate<T extends TaskAggregateArgs>(args: Subset<T, TaskAggregateArgs>): Prisma.PrismaPromise<GetTaskAggregateType<T>>

    /**
     * Group by Task.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {TaskGroupByArgs} args - Group by arguments.
     * @example
     * // Group by city, order by createdAt, get count
     * const result = await prisma.user.groupBy({
     *   by: ['city', 'createdAt'],
     *   orderBy: {
     *     createdAt: true
     *   },
     *   _count: {
     *     _all: true
     *   },
     * })
     * 
    **/
    groupBy<
      T extends TaskGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: TaskGroupByArgs['orderBy'] }
        : { orderBy?: TaskGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, TaskGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetTaskGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the Task model
   */
  readonly fields: TaskFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for Task.
   * Why is this prefixed with `Prisma__`?
   * Because we want to prevent naming conflicts as mentioned in
   * https://github.com/prisma/prisma-client-js/issues/707
   */
  export interface Prisma__TaskClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    scout_agent<T extends Task$scout_agentArgs<ExtArgs> = {}>(args?: Subset<T, Task$scout_agentArgs<ExtArgs>>): Prisma__AgentProfileClient<$Result.GetResult<Prisma.$AgentProfilePayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>
    builder_agent<T extends Task$builder_agentArgs<ExtArgs> = {}>(args?: Subset<T, Task$builder_agentArgs<ExtArgs>>): Prisma__AgentProfileClient<$Result.GetResult<Prisma.$AgentProfilePayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>
    claims<T extends Task$claimsArgs<ExtArgs> = {}>(args?: Subset<T, Task$claimsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$ClaimPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    submissions<T extends Task$submissionsArgs<ExtArgs> = {}>(args?: Subset<T, Task$submissionsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$SubmissionPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    affiliate_ledger<T extends Task$affiliate_ledgerArgs<ExtArgs> = {}>(args?: Subset<T, Task$affiliate_ledgerArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AffiliateLedgerPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    bid_proposals<T extends Task$bid_proposalsArgs<ExtArgs> = {}>(args?: Subset<T, Task$bid_proposalsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$BidProposalPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    arbitrations<T extends Task$arbitrationsArgs<ExtArgs> = {}>(args?: Subset<T, Task$arbitrationsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$ArbitrationPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the Task model
   */
  interface TaskFieldRefs {
    readonly id: FieldRef<"Task", 'String'>
    readonly title: FieldRef<"Task", 'String'>
    readonly description: FieldRef<"Task", 'String'>
    readonly status: FieldRef<"Task", 'String'>
    readonly difficulty: FieldRef<"Task", 'String'>
    readonly scope_clarity_score: FieldRef<"Task", 'Float'>
    readonly error_classification: FieldRef<"Task", 'String'>
    readonly reward_amount: FieldRef<"Task", 'Int'>
    readonly reward_currency: FieldRef<"Task", 'String'>
    readonly acceptance_criteria: FieldRef<"Task", 'Json'>
    readonly required_stack: FieldRef<"Task", 'String[]'>
    readonly retry_count: FieldRef<"Task", 'Int'>
    readonly stripe_payment_intent_id: FieldRef<"Task", 'String'>
    readonly stripe_checkout_session_id: FieldRef<"Task", 'String'>
    readonly expires_at: FieldRef<"Task", 'DateTime'>
    readonly github_pr_url: FieldRef<"Task", 'String'>
    readonly reward_points: FieldRef<"Task", 'Int'>
    readonly is_priority: FieldRef<"Task", 'Boolean'>
    readonly is_private: FieldRef<"Task", 'Boolean'>
    readonly referred_by_agent: FieldRef<"Task", 'String'>
    readonly parent_task_id: FieldRef<"Task", 'String'>
    readonly created_by_agent: FieldRef<"Task", 'String'>
    readonly created_at: FieldRef<"Task", 'DateTime'>
    readonly updated_at: FieldRef<"Task", 'DateTime'>
    readonly scout_id: FieldRef<"Task", 'String'>
    readonly builder_id: FieldRef<"Task", 'String'>
  }
    

  // Custom InputTypes
  /**
   * Task findUnique
   */
  export type TaskFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Task
     */
    select?: TaskSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Task
     */
    omit?: TaskOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: TaskInclude<ExtArgs> | null
    /**
     * Filter, which Task to fetch.
     */
    where: TaskWhereUniqueInput
  }

  /**
   * Task findUniqueOrThrow
   */
  export type TaskFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Task
     */
    select?: TaskSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Task
     */
    omit?: TaskOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: TaskInclude<ExtArgs> | null
    /**
     * Filter, which Task to fetch.
     */
    where: TaskWhereUniqueInput
  }

  /**
   * Task findFirst
   */
  export type TaskFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Task
     */
    select?: TaskSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Task
     */
    omit?: TaskOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: TaskInclude<ExtArgs> | null
    /**
     * Filter, which Task to fetch.
     */
    where?: TaskWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Tasks to fetch.
     */
    orderBy?: TaskOrderByWithRelationInput | TaskOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for Tasks.
     */
    cursor?: TaskWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Tasks from the position of the cursor.
     */
    take?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Skip the first `n` Tasks.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of Tasks.
     */
    distinct?: TaskScalarFieldEnum | TaskScalarFieldEnum[]
  }

  /**
   * Task findFirstOrThrow
   */
  export type TaskFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Task
     */
    select?: TaskSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Task
     */
    omit?: TaskOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: TaskInclude<ExtArgs> | null
    /**
     * Filter, which Task to fetch.
     */
    where?: TaskWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Tasks to fetch.
     */
    orderBy?: TaskOrderByWithRelationInput | TaskOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for Tasks.
     */
    cursor?: TaskWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Tasks from the position of the cursor.
     */
    take?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Skip the first `n` Tasks.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of Tasks.
     */
    distinct?: TaskScalarFieldEnum | TaskScalarFieldEnum[]
  }

  /**
   * Task findMany
   */
  export type TaskFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Task
     */
    select?: TaskSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Task
     */
    omit?: TaskOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: TaskInclude<ExtArgs> | null
    /**
     * Filter, which Tasks to fetch.
     */
    where?: TaskWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Tasks to fetch.
     */
    orderBy?: TaskOrderByWithRelationInput | TaskOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing Tasks.
     */
    cursor?: TaskWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Tasks from the position of the cursor.
     */
    take?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Skip the first `n` Tasks.
     */
    skip?: number
    distinct?: TaskScalarFieldEnum | TaskScalarFieldEnum[]
  }

  /**
   * Task create
   */
  export type TaskCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Task
     */
    select?: TaskSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Task
     */
    omit?: TaskOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: TaskInclude<ExtArgs> | null
    /**
     * The data needed to create a Task.
     */
    data: XOR<TaskCreateInput, TaskUncheckedCreateInput>
  }

  /**
   * Task createMany
   */
  export type TaskCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many Tasks.
     */
    data: TaskCreateManyInput | TaskCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * Task createManyAndReturn
   */
  export type TaskCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Task
     */
    select?: TaskSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the Task
     */
    omit?: TaskOmit<ExtArgs> | null
    /**
     * The data used to create many Tasks.
     */
    data: TaskCreateManyInput | TaskCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: TaskIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * Task update
   */
  export type TaskUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Task
     */
    select?: TaskSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Task
     */
    omit?: TaskOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: TaskInclude<ExtArgs> | null
    /**
     * The data needed to update a Task.
     */
    data: XOR<TaskUpdateInput, TaskUncheckedUpdateInput>
    /**
     * Choose, which Task to update.
     */
    where: TaskWhereUniqueInput
  }

  /**
   * Task updateMany
   */
  export type TaskUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update Tasks.
     */
    data: XOR<TaskUpdateManyMutationInput, TaskUncheckedUpdateManyInput>
    /**
     * Filter which Tasks to update
     */
    where?: TaskWhereInput
    /**
     * Limit how many Tasks to update.
     */
    limit?: number
  }

  /**
   * Task updateManyAndReturn
   */
  export type TaskUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Task
     */
    select?: TaskSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the Task
     */
    omit?: TaskOmit<ExtArgs> | null
    /**
     * The data used to update Tasks.
     */
    data: XOR<TaskUpdateManyMutationInput, TaskUncheckedUpdateManyInput>
    /**
     * Filter which Tasks to update
     */
    where?: TaskWhereInput
    /**
     * Limit how many Tasks to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: TaskIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * Task upsert
   */
  export type TaskUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Task
     */
    select?: TaskSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Task
     */
    omit?: TaskOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: TaskInclude<ExtArgs> | null
    /**
     * The filter to search for the Task to update in case it exists.
     */
    where: TaskWhereUniqueInput
    /**
     * In case the Task found by the `where` argument doesn't exist, create a new Task with this data.
     */
    create: XOR<TaskCreateInput, TaskUncheckedCreateInput>
    /**
     * In case the Task was found with the provided `where` argument, update it with this data.
     */
    update: XOR<TaskUpdateInput, TaskUncheckedUpdateInput>
  }

  /**
   * Task delete
   */
  export type TaskDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Task
     */
    select?: TaskSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Task
     */
    omit?: TaskOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: TaskInclude<ExtArgs> | null
    /**
     * Filter which Task to delete.
     */
    where: TaskWhereUniqueInput
  }

  /**
   * Task deleteMany
   */
  export type TaskDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which Tasks to delete
     */
    where?: TaskWhereInput
    /**
     * Limit how many Tasks to delete.
     */
    limit?: number
  }

  /**
   * Task.scout_agent
   */
  export type Task$scout_agentArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentProfile
     */
    select?: AgentProfileSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentProfile
     */
    omit?: AgentProfileOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AgentProfileInclude<ExtArgs> | null
    where?: AgentProfileWhereInput
  }

  /**
   * Task.builder_agent
   */
  export type Task$builder_agentArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentProfile
     */
    select?: AgentProfileSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentProfile
     */
    omit?: AgentProfileOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AgentProfileInclude<ExtArgs> | null
    where?: AgentProfileWhereInput
  }

  /**
   * Task.claims
   */
  export type Task$claimsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Claim
     */
    select?: ClaimSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Claim
     */
    omit?: ClaimOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ClaimInclude<ExtArgs> | null
    where?: ClaimWhereInput
    orderBy?: ClaimOrderByWithRelationInput | ClaimOrderByWithRelationInput[]
    cursor?: ClaimWhereUniqueInput
    take?: number
    skip?: number
    distinct?: ClaimScalarFieldEnum | ClaimScalarFieldEnum[]
  }

  /**
   * Task.submissions
   */
  export type Task$submissionsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Submission
     */
    select?: SubmissionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Submission
     */
    omit?: SubmissionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SubmissionInclude<ExtArgs> | null
    where?: SubmissionWhereInput
    orderBy?: SubmissionOrderByWithRelationInput | SubmissionOrderByWithRelationInput[]
    cursor?: SubmissionWhereUniqueInput
    take?: number
    skip?: number
    distinct?: SubmissionScalarFieldEnum | SubmissionScalarFieldEnum[]
  }

  /**
   * Task.affiliate_ledger
   */
  export type Task$affiliate_ledgerArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AffiliateLedger
     */
    select?: AffiliateLedgerSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AffiliateLedger
     */
    omit?: AffiliateLedgerOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AffiliateLedgerInclude<ExtArgs> | null
    where?: AffiliateLedgerWhereInput
    orderBy?: AffiliateLedgerOrderByWithRelationInput | AffiliateLedgerOrderByWithRelationInput[]
    cursor?: AffiliateLedgerWhereUniqueInput
    take?: number
    skip?: number
    distinct?: AffiliateLedgerScalarFieldEnum | AffiliateLedgerScalarFieldEnum[]
  }

  /**
   * Task.bid_proposals
   */
  export type Task$bid_proposalsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the BidProposal
     */
    select?: BidProposalSelect<ExtArgs> | null
    /**
     * Omit specific fields from the BidProposal
     */
    omit?: BidProposalOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: BidProposalInclude<ExtArgs> | null
    where?: BidProposalWhereInput
    orderBy?: BidProposalOrderByWithRelationInput | BidProposalOrderByWithRelationInput[]
    cursor?: BidProposalWhereUniqueInput
    take?: number
    skip?: number
    distinct?: BidProposalScalarFieldEnum | BidProposalScalarFieldEnum[]
  }

  /**
   * Task.arbitrations
   */
  export type Task$arbitrationsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Arbitration
     */
    select?: ArbitrationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Arbitration
     */
    omit?: ArbitrationOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ArbitrationInclude<ExtArgs> | null
    where?: ArbitrationWhereInput
    orderBy?: ArbitrationOrderByWithRelationInput | ArbitrationOrderByWithRelationInput[]
    cursor?: ArbitrationWhereUniqueInput
    take?: number
    skip?: number
    distinct?: ArbitrationScalarFieldEnum | ArbitrationScalarFieldEnum[]
  }

  /**
   * Task without action
   */
  export type TaskDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Task
     */
    select?: TaskSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Task
     */
    omit?: TaskOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: TaskInclude<ExtArgs> | null
  }


  /**
   * Model Claim
   */

  export type AggregateClaim = {
    _count: ClaimCountAggregateOutputType | null
    _avg: ClaimAvgAggregateOutputType | null
    _sum: ClaimSumAggregateOutputType | null
    _min: ClaimMinAggregateOutputType | null
    _max: ClaimMaxAggregateOutputType | null
  }

  export type ClaimAvgAggregateOutputType = {
    held_amount: number | null
  }

  export type ClaimSumAggregateOutputType = {
    held_amount: number | null
  }

  export type ClaimMinAggregateOutputType = {
    id: string | null
    task_id: string | null
    agent_id: string | null
    developer_wallet: string | null
    status: string | null
    claim_token: string | null
    held_amount: number | null
    held_currency: string | null
    expires_at: Date | null
    created_at: Date | null
    updated_at: Date | null
  }

  export type ClaimMaxAggregateOutputType = {
    id: string | null
    task_id: string | null
    agent_id: string | null
    developer_wallet: string | null
    status: string | null
    claim_token: string | null
    held_amount: number | null
    held_currency: string | null
    expires_at: Date | null
    created_at: Date | null
    updated_at: Date | null
  }

  export type ClaimCountAggregateOutputType = {
    id: number
    task_id: number
    agent_id: number
    developer_wallet: number
    status: number
    claim_token: number
    held_amount: number
    held_currency: number
    expires_at: number
    created_at: number
    updated_at: number
    _all: number
  }


  export type ClaimAvgAggregateInputType = {
    held_amount?: true
  }

  export type ClaimSumAggregateInputType = {
    held_amount?: true
  }

  export type ClaimMinAggregateInputType = {
    id?: true
    task_id?: true
    agent_id?: true
    developer_wallet?: true
    status?: true
    claim_token?: true
    held_amount?: true
    held_currency?: true
    expires_at?: true
    created_at?: true
    updated_at?: true
  }

  export type ClaimMaxAggregateInputType = {
    id?: true
    task_id?: true
    agent_id?: true
    developer_wallet?: true
    status?: true
    claim_token?: true
    held_amount?: true
    held_currency?: true
    expires_at?: true
    created_at?: true
    updated_at?: true
  }

  export type ClaimCountAggregateInputType = {
    id?: true
    task_id?: true
    agent_id?: true
    developer_wallet?: true
    status?: true
    claim_token?: true
    held_amount?: true
    held_currency?: true
    expires_at?: true
    created_at?: true
    updated_at?: true
    _all?: true
  }

  export type ClaimAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which Claim to aggregate.
     */
    where?: ClaimWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Claims to fetch.
     */
    orderBy?: ClaimOrderByWithRelationInput | ClaimOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: ClaimWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Claims from the position of the cursor.
     */
    take?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Skip the first `n` Claims.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned Claims
    **/
    _count?: true | ClaimCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: ClaimAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: ClaimSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: ClaimMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: ClaimMaxAggregateInputType
  }

  export type GetClaimAggregateType<T extends ClaimAggregateArgs> = {
        [P in keyof T & keyof AggregateClaim]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateClaim[P]>
      : GetScalarType<T[P], AggregateClaim[P]>
  }




  export type ClaimGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: ClaimWhereInput
    orderBy?: ClaimOrderByWithAggregationInput | ClaimOrderByWithAggregationInput[]
    by: ClaimScalarFieldEnum[] | ClaimScalarFieldEnum
    having?: ClaimScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: ClaimCountAggregateInputType | true
    _avg?: ClaimAvgAggregateInputType
    _sum?: ClaimSumAggregateInputType
    _min?: ClaimMinAggregateInputType
    _max?: ClaimMaxAggregateInputType
  }

  export type ClaimGroupByOutputType = {
    id: string
    task_id: string
    agent_id: string
    developer_wallet: string
    status: string
    claim_token: string
    held_amount: number
    held_currency: string
    expires_at: Date
    created_at: Date
    updated_at: Date
    _count: ClaimCountAggregateOutputType | null
    _avg: ClaimAvgAggregateOutputType | null
    _sum: ClaimSumAggregateOutputType | null
    _min: ClaimMinAggregateOutputType | null
    _max: ClaimMaxAggregateOutputType | null
  }

  type GetClaimGroupByPayload<T extends ClaimGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<ClaimGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof ClaimGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], ClaimGroupByOutputType[P]>
            : GetScalarType<T[P], ClaimGroupByOutputType[P]>
        }
      >
    >


  export type ClaimSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    task_id?: boolean
    agent_id?: boolean
    developer_wallet?: boolean
    status?: boolean
    claim_token?: boolean
    held_amount?: boolean
    held_currency?: boolean
    expires_at?: boolean
    created_at?: boolean
    updated_at?: boolean
    task?: boolean | TaskDefaultArgs<ExtArgs>
    agent?: boolean | AgentProfileDefaultArgs<ExtArgs>
    submissions?: boolean | Claim$submissionsArgs<ExtArgs>
    _count?: boolean | ClaimCountOutputTypeDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["claim"]>

  export type ClaimSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    task_id?: boolean
    agent_id?: boolean
    developer_wallet?: boolean
    status?: boolean
    claim_token?: boolean
    held_amount?: boolean
    held_currency?: boolean
    expires_at?: boolean
    created_at?: boolean
    updated_at?: boolean
    task?: boolean | TaskDefaultArgs<ExtArgs>
    agent?: boolean | AgentProfileDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["claim"]>

  export type ClaimSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    task_id?: boolean
    agent_id?: boolean
    developer_wallet?: boolean
    status?: boolean
    claim_token?: boolean
    held_amount?: boolean
    held_currency?: boolean
    expires_at?: boolean
    created_at?: boolean
    updated_at?: boolean
    task?: boolean | TaskDefaultArgs<ExtArgs>
    agent?: boolean | AgentProfileDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["claim"]>

  export type ClaimSelectScalar = {
    id?: boolean
    task_id?: boolean
    agent_id?: boolean
    developer_wallet?: boolean
    status?: boolean
    claim_token?: boolean
    held_amount?: boolean
    held_currency?: boolean
    expires_at?: boolean
    created_at?: boolean
    updated_at?: boolean
  }

  export type ClaimOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "task_id" | "agent_id" | "developer_wallet" | "status" | "claim_token" | "held_amount" | "held_currency" | "expires_at" | "created_at" | "updated_at", ExtArgs["result"]["claim"]>
  export type ClaimInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    task?: boolean | TaskDefaultArgs<ExtArgs>
    agent?: boolean | AgentProfileDefaultArgs<ExtArgs>
    submissions?: boolean | Claim$submissionsArgs<ExtArgs>
    _count?: boolean | ClaimCountOutputTypeDefaultArgs<ExtArgs>
  }
  export type ClaimIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    task?: boolean | TaskDefaultArgs<ExtArgs>
    agent?: boolean | AgentProfileDefaultArgs<ExtArgs>
  }
  export type ClaimIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    task?: boolean | TaskDefaultArgs<ExtArgs>
    agent?: boolean | AgentProfileDefaultArgs<ExtArgs>
  }

  export type $ClaimPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "Claim"
    objects: {
      task: Prisma.$TaskPayload<ExtArgs>
      agent: Prisma.$AgentProfilePayload<ExtArgs>
      submissions: Prisma.$SubmissionPayload<ExtArgs>[]
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      task_id: string
      agent_id: string
      developer_wallet: string
      status: string
      claim_token: string
      held_amount: number
      held_currency: string
      expires_at: Date
      created_at: Date
      updated_at: Date
    }, ExtArgs["result"]["claim"]>
    composites: {}
  }

  type ClaimGetPayload<S extends boolean | null | undefined | ClaimDefaultArgs> = $Result.GetResult<Prisma.$ClaimPayload, S>

  type ClaimCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<ClaimFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: ClaimCountAggregateInputType | true
    }

  export interface ClaimDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['Claim'], meta: { name: 'Claim' } }
    /**
     * Find zero or one Claim that matches the filter.
     * @param {ClaimFindUniqueArgs} args - Arguments to find a Claim
     * @example
     * // Get one Claim
     * const claim = await prisma.claim.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends ClaimFindUniqueArgs>(args: SelectSubset<T, ClaimFindUniqueArgs<ExtArgs>>): Prisma__ClaimClient<$Result.GetResult<Prisma.$ClaimPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one Claim that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {ClaimFindUniqueOrThrowArgs} args - Arguments to find a Claim
     * @example
     * // Get one Claim
     * const claim = await prisma.claim.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends ClaimFindUniqueOrThrowArgs>(args: SelectSubset<T, ClaimFindUniqueOrThrowArgs<ExtArgs>>): Prisma__ClaimClient<$Result.GetResult<Prisma.$ClaimPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first Claim that matches the filter.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {ClaimFindFirstArgs} args - Arguments to find a Claim
     * @example
     * // Get one Claim
     * const claim = await prisma.claim.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends ClaimFindFirstArgs>(args?: SelectSubset<T, ClaimFindFirstArgs<ExtArgs>>): Prisma__ClaimClient<$Result.GetResult<Prisma.$ClaimPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first Claim that matches the filter or
     * throw `PrismaKnownClientError` with `P2025` code if no matches were found.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {ClaimFindFirstOrThrowArgs} args - Arguments to find a Claim
     * @example
     * // Get one Claim
     * const claim = await prisma.claim.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends ClaimFindFirstOrThrowArgs>(args?: SelectSubset<T, ClaimFindFirstOrThrowArgs<ExtArgs>>): Prisma__ClaimClient<$Result.GetResult<Prisma.$ClaimPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more Claims that matches the filter.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {ClaimFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all Claims
     * const claims = await prisma.claim.findMany()
     * 
     * // Get first 10 Claims
     * const claims = await prisma.claim.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const claimWithIdOnly = await prisma.claim.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends ClaimFindManyArgs>(args?: SelectSubset<T, ClaimFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$ClaimPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a Claim.
     * @param {ClaimCreateArgs} args - Arguments to create a Claim.
     * @example
     * // Create one Claim
     * const Claim = await prisma.claim.create({
     *   data: {
     *     // ... data to create a Claim
     *   }
     * })
     * 
     */
    create<T extends ClaimCreateArgs>(args: SelectSubset<T, ClaimCreateArgs<ExtArgs>>): Prisma__ClaimClient<$Result.GetResult<Prisma.$ClaimPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many Claims.
     * @param {ClaimCreateManyArgs} args - Arguments to create many Claims.
     * @example
     * // Create many Claims
     * const claim = await prisma.claim.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends ClaimCreateManyArgs>(args?: SelectSubset<T, ClaimCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many Claims and returns the data saved in the database.
     * @param {ClaimCreateManyAndReturnArgs} args - Arguments to create many Claims.
     * @example
     * // Create many Claims
     * const claim = await prisma.claim.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many Claims and only return the `id`
     * const claimWithIdOnly = await prisma.claim.createManyAndReturn({
     *   select: { id: true },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * 
     */
    createManyAndReturn<T extends ClaimCreateManyAndReturnArgs>(args?: SelectSubset<T, ClaimCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$ClaimPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a Claim.
     * @param {ClaimDeleteArgs} args - Arguments to delete one Claim.
     * @example
     * // Delete one Claim
     * const Claim = await prisma.claim.delete({
     *   where: {
     *     // ... filter to delete one Claim
     *   }
     * })
     * 
     */
    delete<T extends ClaimDeleteArgs>(args: SelectSubset<T, ClaimDeleteArgs<ExtArgs>>): Prisma__ClaimClient<$Result.GetResult<Prisma.$ClaimPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one Claim.
     * @param {ClaimUpdateArgs} args - Arguments to update one Claim.
     * @example
     * // Update one Claim
     * const claim = await prisma.claim.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends ClaimUpdateArgs>(args: SelectSubset<T, ClaimUpdateArgs<ExtArgs>>): Prisma__ClaimClient<$Result.GetResult<Prisma.$ClaimPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more Claims.
     * @param {ClaimDeleteManyArgs} args - Arguments to filter Claims to delete.
     * @example
     * // Delete a few Claims
     * const { count } = await prisma.claim.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends ClaimDeleteManyArgs>(args?: SelectSubset<T, ClaimDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more Claims.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {ClaimUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many Claims
     * const claim = await prisma.claim.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends ClaimUpdateManyArgs>(args: SelectSubset<T, ClaimUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more Claims and returns the data updated in the database.
     * @param {ClaimUpdateManyAndReturnArgs} args - Arguments to update many Claims.
     * @example
     * // Update many Claims
     * const claim = await prisma.claim.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more Claims and only return the `id`
     * const claimWithIdOnly = await prisma.claim.updateManyAndReturn({
     *   select: { id: true },
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * 
     */
    updateManyAndReturn<T extends ClaimUpdateManyAndReturnArgs>(args: SelectSubset<T, ClaimUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$ClaimPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one Claim.
     * @param {ClaimUpsertArgs} args - Arguments to update or create a Claim.
     * @example
     * // Update or create a Claim
     * const claim = await prisma.claim.upsert({
     *   create: {
     *     // ... data to create a Claim
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the Claim we want to update
     *   }
     * })
     */
    upsert<T extends ClaimUpsertArgs>(args: SelectSubset<T, ClaimUpsertArgs<ExtArgs>>): Prisma__ClaimClient<$Result.GetResult<Prisma.$ClaimPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of Claims.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {ClaimCountArgs} args - Arguments to filter Claims to count.
     * @example
     * // Count the number of Claims
     * const count = await prisma.claim.count({
     *   where: {
     *     // ... the filter for the Claims we want to count
     *   }
     * })
    **/
    count<T extends ClaimCountArgs>(
      args?: Subset<T, ClaimCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], ClaimCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a Claim.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {ClaimAggregateArgs} args - Select which aggregations you would like to apply and on what fields.
     * @example
     * // Ordered by age ascending
     * // Where email contains prisma.io
     * // Limited to the 10 users
     * const aggregations = await prisma.user.aggregate({
     *   _avg: {
     *     age: true,
     *   },
     *   where: {
     *     email: {
     *       contains: "prisma.io",
     *     },
     *   },
     *   orderBy: {
     *     age: "asc",
     *   },
     *   take: 10,
     * })
    **/
    aggregate<T extends ClaimAggregateArgs>(args: Subset<T, ClaimAggregateArgs>): Prisma.PrismaPromise<GetClaimAggregateType<T>>

    /**
     * Group by Claim.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {ClaimGroupByArgs} args - Group by arguments.
     * @example
     * // Group by city, order by createdAt, get count
     * const result = await prisma.user.groupBy({
     *   by: ['city', 'createdAt'],
     *   orderBy: {
     *     createdAt: true
     *   },
     *   _count: {
     *     _all: true
     *   },
     * })
     * 
    **/
    groupBy<
      T extends ClaimGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: ClaimGroupByArgs['orderBy'] }
        : { orderBy?: ClaimGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, ClaimGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetClaimGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the Claim model
   */
  readonly fields: ClaimFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for Claim.
   * Why is this prefixed with `Prisma__`?
   * Because we want to prevent naming conflicts as mentioned in
   * https://github.com/prisma/prisma-client-js/issues/707
   */
  export interface Prisma__ClaimClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    task<T extends TaskDefaultArgs<ExtArgs> = {}>(args?: Subset<T, TaskDefaultArgs<ExtArgs>>): Prisma__TaskClient<$Result.GetResult<Prisma.$TaskPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    agent<T extends AgentProfileDefaultArgs<ExtArgs> = {}>(args?: Subset<T, AgentProfileDefaultArgs<ExtArgs>>): Prisma__AgentProfileClient<$Result.GetResult<Prisma.$AgentProfilePayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    submissions<T extends Claim$submissionsArgs<ExtArgs> = {}>(args?: Subset<T, Claim$submissionsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$SubmissionPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the Claim model
   */
  interface ClaimFieldRefs {
    readonly id: FieldRef<"Claim", 'String'>
    readonly task_id: FieldRef<"Claim", 'String'>
    readonly agent_id: FieldRef<"Claim", 'String'>
    readonly developer_wallet: FieldRef<"Claim", 'String'>
    readonly status: FieldRef<"Claim", 'String'>
    readonly claim_token: FieldRef<"Claim", 'String'>
    readonly held_amount: FieldRef<"Claim", 'Int'>
    readonly held_currency: FieldRef<"Claim", 'String'>
    readonly expires_at: FieldRef<"Claim", 'DateTime'>
    readonly created_at: FieldRef<"Claim", 'DateTime'>
    readonly updated_at: FieldRef<"Claim", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * Claim findUnique
   */
  export type ClaimFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Claim
     */
    select?: ClaimSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Claim
     */
    omit?: ClaimOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ClaimInclude<ExtArgs> | null
    /**
     * Filter, which Claim to fetch.
     */
    where: ClaimWhereUniqueInput
  }

  /**
   * Claim findUniqueOrThrow
   */
  export type ClaimFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Claim
     */
    select?: ClaimSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Claim
     */
    omit?: ClaimOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ClaimInclude<ExtArgs> | null
    /**
     * Filter, which Claim to fetch.
     */
    where: ClaimWhereUniqueInput
  }

  /**
   * Claim findFirst
   */
  export type ClaimFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Claim
     */
    select?: ClaimSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Claim
     */
    omit?: ClaimOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ClaimInclude<ExtArgs> | null
    /**
     * Filter, which Claim to fetch.
     */
    where?: ClaimWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Claims to fetch.
     */
    orderBy?: ClaimOrderByWithRelationInput | ClaimOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for Claims.
     */
    cursor?: ClaimWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Claims from the position of the cursor.
     */
    take?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Skip the first `n` Claims.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of Claims.
     */
    distinct?: ClaimScalarFieldEnum | ClaimScalarFieldEnum[]
  }

  /**
   * Claim findFirstOrThrow
   */
  export type ClaimFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Claim
     */
    select?: ClaimSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Claim
     */
    omit?: ClaimOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ClaimInclude<ExtArgs> | null
    /**
     * Filter, which Claim to fetch.
     */
    where?: ClaimWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Claims to fetch.
     */
    orderBy?: ClaimOrderByWithRelationInput | ClaimOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for Claims.
     */
    cursor?: ClaimWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Claims from the position of the cursor.
     */
    take?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Skip the first `n` Claims.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of Claims.
     */
    distinct?: ClaimScalarFieldEnum | ClaimScalarFieldEnum[]
  }

  /**
   * Claim findMany
   */
  export type ClaimFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Claim
     */
    select?: ClaimSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Claim
     */
    omit?: ClaimOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ClaimInclude<ExtArgs> | null
    /**
     * Filter, which Claims to fetch.
     */
    where?: ClaimWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Claims to fetch.
     */
    orderBy?: ClaimOrderByWithRelationInput | ClaimOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing Claims.
     */
    cursor?: ClaimWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Claims from the position of the cursor.
     */
    take?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Skip the first `n` Claims.
     */
    skip?: number
    distinct?: ClaimScalarFieldEnum | ClaimScalarFieldEnum[]
  }

  /**
   * Claim create
   */
  export type ClaimCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Claim
     */
    select?: ClaimSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Claim
     */
    omit?: ClaimOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ClaimInclude<ExtArgs> | null
    /**
     * The data needed to create a Claim.
     */
    data: XOR<ClaimCreateInput, ClaimUncheckedCreateInput>
  }

  /**
   * Claim createMany
   */
  export type ClaimCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many Claims.
     */
    data: ClaimCreateManyInput | ClaimCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * Claim createManyAndReturn
   */
  export type ClaimCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Claim
     */
    select?: ClaimSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the Claim
     */
    omit?: ClaimOmit<ExtArgs> | null
    /**
     * The data used to create many Claims.
     */
    data: ClaimCreateManyInput | ClaimCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ClaimIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * Claim update
   */
  export type ClaimUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Claim
     */
    select?: ClaimSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Claim
     */
    omit?: ClaimOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ClaimInclude<ExtArgs> | null
    /**
     * The data needed to update a Claim.
     */
    data: XOR<ClaimUpdateInput, ClaimUncheckedUpdateInput>
    /**
     * Choose, which Claim to update.
     */
    where: ClaimWhereUniqueInput
  }

  /**
   * Claim updateMany
   */
  export type ClaimUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update Claims.
     */
    data: XOR<ClaimUpdateManyMutationInput, ClaimUncheckedUpdateManyInput>
    /**
     * Filter which Claims to update
     */
    where?: ClaimWhereInput
    /**
     * Limit how many Claims to update.
     */
    limit?: number
  }

  /**
   * Claim updateManyAndReturn
   */
  export type ClaimUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Claim
     */
    select?: ClaimSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the Claim
     */
    omit?: ClaimOmit<ExtArgs> | null
    /**
     * The data used to update Claims.
     */
    data: XOR<ClaimUpdateManyMutationInput, ClaimUncheckedUpdateManyInput>
    /**
     * Filter which Claims to update
     */
    where?: ClaimWhereInput
    /**
     * Limit how many Claims to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ClaimIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * Claim upsert
   */
  export type ClaimUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Claim
     */
    select?: ClaimSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Claim
     */
    omit?: ClaimOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ClaimInclude<ExtArgs> | null
    /**
     * The filter to search for the Claim to update in case it exists.
     */
    where: ClaimWhereUniqueInput
    /**
     * In case the Claim found by the `where` argument doesn't exist, create a new Claim with this data.
     */
    create: XOR<ClaimCreateInput, ClaimUncheckedCreateInput>
    /**
     * In case the Claim was found with the provided `where` argument, update it with this data.
     */
    update: XOR<ClaimUpdateInput, ClaimUncheckedUpdateInput>
  }

  /**
   * Claim delete
   */
  export type ClaimDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Claim
     */
    select?: ClaimSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Claim
     */
    omit?: ClaimOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ClaimInclude<ExtArgs> | null
    /**
     * Filter which Claim to delete.
     */
    where: ClaimWhereUniqueInput
  }

  /**
   * Claim deleteMany
   */
  export type ClaimDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which Claims to delete
     */
    where?: ClaimWhereInput
    /**
     * Limit how many Claims to delete.
     */
    limit?: number
  }

  /**
   * Claim.submissions
   */
  export type Claim$submissionsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Submission
     */
    select?: SubmissionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Submission
     */
    omit?: SubmissionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SubmissionInclude<ExtArgs> | null
    where?: SubmissionWhereInput
    orderBy?: SubmissionOrderByWithRelationInput | SubmissionOrderByWithRelationInput[]
    cursor?: SubmissionWhereUniqueInput
    take?: number
    skip?: number
    distinct?: SubmissionScalarFieldEnum | SubmissionScalarFieldEnum[]
  }

  /**
   * Claim without action
   */
  export type ClaimDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Claim
     */
    select?: ClaimSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Claim
     */
    omit?: ClaimOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ClaimInclude<ExtArgs> | null
  }


  /**
   * Model Submission
   */

  export type AggregateSubmission = {
    _count: SubmissionCountAggregateOutputType | null
    _min: SubmissionMinAggregateOutputType | null
    _max: SubmissionMaxAggregateOutputType | null
  }

  export type SubmissionMinAggregateOutputType = {
    id: string | null
    task_id: string | null
    claim_id: string | null
    status: string | null
    estimated_judge_complete_at: Date | null
    created_at: Date | null
    updated_at: Date | null
  }

  export type SubmissionMaxAggregateOutputType = {
    id: string | null
    task_id: string | null
    claim_id: string | null
    status: string | null
    estimated_judge_complete_at: Date | null
    created_at: Date | null
    updated_at: Date | null
  }

  export type SubmissionCountAggregateOutputType = {
    id: number
    task_id: number
    claim_id: number
    status: number
    deliverables: number
    estimated_judge_complete_at: number
    created_at: number
    updated_at: number
    _all: number
  }


  export type SubmissionMinAggregateInputType = {
    id?: true
    task_id?: true
    claim_id?: true
    status?: true
    estimated_judge_complete_at?: true
    created_at?: true
    updated_at?: true
  }

  export type SubmissionMaxAggregateInputType = {
    id?: true
    task_id?: true
    claim_id?: true
    status?: true
    estimated_judge_complete_at?: true
    created_at?: true
    updated_at?: true
  }

  export type SubmissionCountAggregateInputType = {
    id?: true
    task_id?: true
    claim_id?: true
    status?: true
    deliverables?: true
    estimated_judge_complete_at?: true
    created_at?: true
    updated_at?: true
    _all?: true
  }

  export type SubmissionAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which Submission to aggregate.
     */
    where?: SubmissionWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Submissions to fetch.
     */
    orderBy?: SubmissionOrderByWithRelationInput | SubmissionOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: SubmissionWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Submissions from the position of the cursor.
     */
    take?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Skip the first `n` Submissions.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned Submissions
    **/
    _count?: true | SubmissionCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: SubmissionMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: SubmissionMaxAggregateInputType
  }

  export type GetSubmissionAggregateType<T extends SubmissionAggregateArgs> = {
        [P in keyof T & keyof AggregateSubmission]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateSubmission[P]>
      : GetScalarType<T[P], AggregateSubmission[P]>
  }




  export type SubmissionGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: SubmissionWhereInput
    orderBy?: SubmissionOrderByWithAggregationInput | SubmissionOrderByWithAggregationInput[]
    by: SubmissionScalarFieldEnum[] | SubmissionScalarFieldEnum
    having?: SubmissionScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: SubmissionCountAggregateInputType | true
    _min?: SubmissionMinAggregateInputType
    _max?: SubmissionMaxAggregateInputType
  }

  export type SubmissionGroupByOutputType = {
    id: string
    task_id: string
    claim_id: string
    status: string
    deliverables: JsonValue
    estimated_judge_complete_at: Date | null
    created_at: Date
    updated_at: Date
    _count: SubmissionCountAggregateOutputType | null
    _min: SubmissionMinAggregateOutputType | null
    _max: SubmissionMaxAggregateOutputType | null
  }

  type GetSubmissionGroupByPayload<T extends SubmissionGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<SubmissionGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof SubmissionGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], SubmissionGroupByOutputType[P]>
            : GetScalarType<T[P], SubmissionGroupByOutputType[P]>
        }
      >
    >


  export type SubmissionSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    task_id?: boolean
    claim_id?: boolean
    status?: boolean
    deliverables?: boolean
    estimated_judge_complete_at?: boolean
    created_at?: boolean
    updated_at?: boolean
    task?: boolean | TaskDefaultArgs<ExtArgs>
    claim?: boolean | ClaimDefaultArgs<ExtArgs>
    judge_results?: boolean | Submission$judge_resultsArgs<ExtArgs>
    _count?: boolean | SubmissionCountOutputTypeDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["submission"]>

  export type SubmissionSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    task_id?: boolean
    claim_id?: boolean
    status?: boolean
    deliverables?: boolean
    estimated_judge_complete_at?: boolean
    created_at?: boolean
    updated_at?: boolean
    task?: boolean | TaskDefaultArgs<ExtArgs>
    claim?: boolean | ClaimDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["submission"]>

  export type SubmissionSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    task_id?: boolean
    claim_id?: boolean
    status?: boolean
    deliverables?: boolean
    estimated_judge_complete_at?: boolean
    created_at?: boolean
    updated_at?: boolean
    task?: boolean | TaskDefaultArgs<ExtArgs>
    claim?: boolean | ClaimDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["submission"]>

  export type SubmissionSelectScalar = {
    id?: boolean
    task_id?: boolean
    claim_id?: boolean
    status?: boolean
    deliverables?: boolean
    estimated_judge_complete_at?: boolean
    created_at?: boolean
    updated_at?: boolean
  }

  export type SubmissionOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "task_id" | "claim_id" | "status" | "deliverables" | "estimated_judge_complete_at" | "created_at" | "updated_at", ExtArgs["result"]["submission"]>
  export type SubmissionInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    task?: boolean | TaskDefaultArgs<ExtArgs>
    claim?: boolean | ClaimDefaultArgs<ExtArgs>
    judge_results?: boolean | Submission$judge_resultsArgs<ExtArgs>
    _count?: boolean | SubmissionCountOutputTypeDefaultArgs<ExtArgs>
  }
  export type SubmissionIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    task?: boolean | TaskDefaultArgs<ExtArgs>
    claim?: boolean | ClaimDefaultArgs<ExtArgs>
  }
  export type SubmissionIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    task?: boolean | TaskDefaultArgs<ExtArgs>
    claim?: boolean | ClaimDefaultArgs<ExtArgs>
  }

  export type $SubmissionPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "Submission"
    objects: {
      task: Prisma.$TaskPayload<ExtArgs>
      claim: Prisma.$ClaimPayload<ExtArgs>
      judge_results: Prisma.$JudgeResultPayload<ExtArgs>[]
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      task_id: string
      claim_id: string
      status: string
      deliverables: Prisma.JsonValue
      estimated_judge_complete_at: Date | null
      created_at: Date
      updated_at: Date
    }, ExtArgs["result"]["submission"]>
    composites: {}
  }

  type SubmissionGetPayload<S extends boolean | null | undefined | SubmissionDefaultArgs> = $Result.GetResult<Prisma.$SubmissionPayload, S>

  type SubmissionCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<SubmissionFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: SubmissionCountAggregateInputType | true
    }

  export interface SubmissionDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['Submission'], meta: { name: 'Submission' } }
    /**
     * Find zero or one Submission that matches the filter.
     * @param {SubmissionFindUniqueArgs} args - Arguments to find a Submission
     * @example
     * // Get one Submission
     * const submission = await prisma.submission.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends SubmissionFindUniqueArgs>(args: SelectSubset<T, SubmissionFindUniqueArgs<ExtArgs>>): Prisma__SubmissionClient<$Result.GetResult<Prisma.$SubmissionPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one Submission that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {SubmissionFindUniqueOrThrowArgs} args - Arguments to find a Submission
     * @example
     * // Get one Submission
     * const submission = await prisma.submission.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends SubmissionFindUniqueOrThrowArgs>(args: SelectSubset<T, SubmissionFindUniqueOrThrowArgs<ExtArgs>>): Prisma__SubmissionClient<$Result.GetResult<Prisma.$SubmissionPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first Submission that matches the filter.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {SubmissionFindFirstArgs} args - Arguments to find a Submission
     * @example
     * // Get one Submission
     * const submission = await prisma.submission.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends SubmissionFindFirstArgs>(args?: SelectSubset<T, SubmissionFindFirstArgs<ExtArgs>>): Prisma__SubmissionClient<$Result.GetResult<Prisma.$SubmissionPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first Submission that matches the filter or
     * throw `PrismaKnownClientError` with `P2025` code if no matches were found.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {SubmissionFindFirstOrThrowArgs} args - Arguments to find a Submission
     * @example
     * // Get one Submission
     * const submission = await prisma.submission.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends SubmissionFindFirstOrThrowArgs>(args?: SelectSubset<T, SubmissionFindFirstOrThrowArgs<ExtArgs>>): Prisma__SubmissionClient<$Result.GetResult<Prisma.$SubmissionPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more Submissions that matches the filter.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {SubmissionFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all Submissions
     * const submissions = await prisma.submission.findMany()
     * 
     * // Get first 10 Submissions
     * const submissions = await prisma.submission.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const submissionWithIdOnly = await prisma.submission.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends SubmissionFindManyArgs>(args?: SelectSubset<T, SubmissionFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$SubmissionPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a Submission.
     * @param {SubmissionCreateArgs} args - Arguments to create a Submission.
     * @example
     * // Create one Submission
     * const Submission = await prisma.submission.create({
     *   data: {
     *     // ... data to create a Submission
     *   }
     * })
     * 
     */
    create<T extends SubmissionCreateArgs>(args: SelectSubset<T, SubmissionCreateArgs<ExtArgs>>): Prisma__SubmissionClient<$Result.GetResult<Prisma.$SubmissionPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many Submissions.
     * @param {SubmissionCreateManyArgs} args - Arguments to create many Submissions.
     * @example
     * // Create many Submissions
     * const submission = await prisma.submission.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends SubmissionCreateManyArgs>(args?: SelectSubset<T, SubmissionCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many Submissions and returns the data saved in the database.
     * @param {SubmissionCreateManyAndReturnArgs} args - Arguments to create many Submissions.
     * @example
     * // Create many Submissions
     * const submission = await prisma.submission.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many Submissions and only return the `id`
     * const submissionWithIdOnly = await prisma.submission.createManyAndReturn({
     *   select: { id: true },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * 
     */
    createManyAndReturn<T extends SubmissionCreateManyAndReturnArgs>(args?: SelectSubset<T, SubmissionCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$SubmissionPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a Submission.
     * @param {SubmissionDeleteArgs} args - Arguments to delete one Submission.
     * @example
     * // Delete one Submission
     * const Submission = await prisma.submission.delete({
     *   where: {
     *     // ... filter to delete one Submission
     *   }
     * })
     * 
     */
    delete<T extends SubmissionDeleteArgs>(args: SelectSubset<T, SubmissionDeleteArgs<ExtArgs>>): Prisma__SubmissionClient<$Result.GetResult<Prisma.$SubmissionPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one Submission.
     * @param {SubmissionUpdateArgs} args - Arguments to update one Submission.
     * @example
     * // Update one Submission
     * const submission = await prisma.submission.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends SubmissionUpdateArgs>(args: SelectSubset<T, SubmissionUpdateArgs<ExtArgs>>): Prisma__SubmissionClient<$Result.GetResult<Prisma.$SubmissionPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more Submissions.
     * @param {SubmissionDeleteManyArgs} args - Arguments to filter Submissions to delete.
     * @example
     * // Delete a few Submissions
     * const { count } = await prisma.submission.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends SubmissionDeleteManyArgs>(args?: SelectSubset<T, SubmissionDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more Submissions.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {SubmissionUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many Submissions
     * const submission = await prisma.submission.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends SubmissionUpdateManyArgs>(args: SelectSubset<T, SubmissionUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more Submissions and returns the data updated in the database.
     * @param {SubmissionUpdateManyAndReturnArgs} args - Arguments to update many Submissions.
     * @example
     * // Update many Submissions
     * const submission = await prisma.submission.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more Submissions and only return the `id`
     * const submissionWithIdOnly = await prisma.submission.updateManyAndReturn({
     *   select: { id: true },
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * 
     */
    updateManyAndReturn<T extends SubmissionUpdateManyAndReturnArgs>(args: SelectSubset<T, SubmissionUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$SubmissionPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one Submission.
     * @param {SubmissionUpsertArgs} args - Arguments to update or create a Submission.
     * @example
     * // Update or create a Submission
     * const submission = await prisma.submission.upsert({
     *   create: {
     *     // ... data to create a Submission
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the Submission we want to update
     *   }
     * })
     */
    upsert<T extends SubmissionUpsertArgs>(args: SelectSubset<T, SubmissionUpsertArgs<ExtArgs>>): Prisma__SubmissionClient<$Result.GetResult<Prisma.$SubmissionPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of Submissions.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {SubmissionCountArgs} args - Arguments to filter Submissions to count.
     * @example
     * // Count the number of Submissions
     * const count = await prisma.submission.count({
     *   where: {
     *     // ... the filter for the Submissions we want to count
     *   }
     * })
    **/
    count<T extends SubmissionCountArgs>(
      args?: Subset<T, SubmissionCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], SubmissionCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a Submission.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {SubmissionAggregateArgs} args - Select which aggregations you would like to apply and on what fields.
     * @example
     * // Ordered by age ascending
     * // Where email contains prisma.io
     * // Limited to the 10 users
     * const aggregations = await prisma.user.aggregate({
     *   _avg: {
     *     age: true,
     *   },
     *   where: {
     *     email: {
     *       contains: "prisma.io",
     *     },
     *   },
     *   orderBy: {
     *     age: "asc",
     *   },
     *   take: 10,
     * })
    **/
    aggregate<T extends SubmissionAggregateArgs>(args: Subset<T, SubmissionAggregateArgs>): Prisma.PrismaPromise<GetSubmissionAggregateType<T>>

    /**
     * Group by Submission.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {SubmissionGroupByArgs} args - Group by arguments.
     * @example
     * // Group by city, order by createdAt, get count
     * const result = await prisma.user.groupBy({
     *   by: ['city', 'createdAt'],
     *   orderBy: {
     *     createdAt: true
     *   },
     *   _count: {
     *     _all: true
     *   },
     * })
     * 
    **/
    groupBy<
      T extends SubmissionGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: SubmissionGroupByArgs['orderBy'] }
        : { orderBy?: SubmissionGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, SubmissionGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetSubmissionGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the Submission model
   */
  readonly fields: SubmissionFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for Submission.
   * Why is this prefixed with `Prisma__`?
   * Because we want to prevent naming conflicts as mentioned in
   * https://github.com/prisma/prisma-client-js/issues/707
   */
  export interface Prisma__SubmissionClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    task<T extends TaskDefaultArgs<ExtArgs> = {}>(args?: Subset<T, TaskDefaultArgs<ExtArgs>>): Prisma__TaskClient<$Result.GetResult<Prisma.$TaskPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    claim<T extends ClaimDefaultArgs<ExtArgs> = {}>(args?: Subset<T, ClaimDefaultArgs<ExtArgs>>): Prisma__ClaimClient<$Result.GetResult<Prisma.$ClaimPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    judge_results<T extends Submission$judge_resultsArgs<ExtArgs> = {}>(args?: Subset<T, Submission$judge_resultsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$JudgeResultPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the Submission model
   */
  interface SubmissionFieldRefs {
    readonly id: FieldRef<"Submission", 'String'>
    readonly task_id: FieldRef<"Submission", 'String'>
    readonly claim_id: FieldRef<"Submission", 'String'>
    readonly status: FieldRef<"Submission", 'String'>
    readonly deliverables: FieldRef<"Submission", 'Json'>
    readonly estimated_judge_complete_at: FieldRef<"Submission", 'DateTime'>
    readonly created_at: FieldRef<"Submission", 'DateTime'>
    readonly updated_at: FieldRef<"Submission", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * Submission findUnique
   */
  export type SubmissionFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Submission
     */
    select?: SubmissionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Submission
     */
    omit?: SubmissionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SubmissionInclude<ExtArgs> | null
    /**
     * Filter, which Submission to fetch.
     */
    where: SubmissionWhereUniqueInput
  }

  /**
   * Submission findUniqueOrThrow
   */
  export type SubmissionFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Submission
     */
    select?: SubmissionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Submission
     */
    omit?: SubmissionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SubmissionInclude<ExtArgs> | null
    /**
     * Filter, which Submission to fetch.
     */
    where: SubmissionWhereUniqueInput
  }

  /**
   * Submission findFirst
   */
  export type SubmissionFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Submission
     */
    select?: SubmissionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Submission
     */
    omit?: SubmissionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SubmissionInclude<ExtArgs> | null
    /**
     * Filter, which Submission to fetch.
     */
    where?: SubmissionWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Submissions to fetch.
     */
    orderBy?: SubmissionOrderByWithRelationInput | SubmissionOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for Submissions.
     */
    cursor?: SubmissionWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Submissions from the position of the cursor.
     */
    take?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Skip the first `n` Submissions.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of Submissions.
     */
    distinct?: SubmissionScalarFieldEnum | SubmissionScalarFieldEnum[]
  }

  /**
   * Submission findFirstOrThrow
   */
  export type SubmissionFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Submission
     */
    select?: SubmissionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Submission
     */
    omit?: SubmissionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SubmissionInclude<ExtArgs> | null
    /**
     * Filter, which Submission to fetch.
     */
    where?: SubmissionWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Submissions to fetch.
     */
    orderBy?: SubmissionOrderByWithRelationInput | SubmissionOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for Submissions.
     */
    cursor?: SubmissionWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Submissions from the position of the cursor.
     */
    take?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Skip the first `n` Submissions.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of Submissions.
     */
    distinct?: SubmissionScalarFieldEnum | SubmissionScalarFieldEnum[]
  }

  /**
   * Submission findMany
   */
  export type SubmissionFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Submission
     */
    select?: SubmissionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Submission
     */
    omit?: SubmissionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SubmissionInclude<ExtArgs> | null
    /**
     * Filter, which Submissions to fetch.
     */
    where?: SubmissionWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Submissions to fetch.
     */
    orderBy?: SubmissionOrderByWithRelationInput | SubmissionOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing Submissions.
     */
    cursor?: SubmissionWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Submissions from the position of the cursor.
     */
    take?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Skip the first `n` Submissions.
     */
    skip?: number
    distinct?: SubmissionScalarFieldEnum | SubmissionScalarFieldEnum[]
  }

  /**
   * Submission create
   */
  export type SubmissionCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Submission
     */
    select?: SubmissionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Submission
     */
    omit?: SubmissionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SubmissionInclude<ExtArgs> | null
    /**
     * The data needed to create a Submission.
     */
    data: XOR<SubmissionCreateInput, SubmissionUncheckedCreateInput>
  }

  /**
   * Submission createMany
   */
  export type SubmissionCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many Submissions.
     */
    data: SubmissionCreateManyInput | SubmissionCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * Submission createManyAndReturn
   */
  export type SubmissionCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Submission
     */
    select?: SubmissionSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the Submission
     */
    omit?: SubmissionOmit<ExtArgs> | null
    /**
     * The data used to create many Submissions.
     */
    data: SubmissionCreateManyInput | SubmissionCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SubmissionIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * Submission update
   */
  export type SubmissionUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Submission
     */
    select?: SubmissionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Submission
     */
    omit?: SubmissionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SubmissionInclude<ExtArgs> | null
    /**
     * The data needed to update a Submission.
     */
    data: XOR<SubmissionUpdateInput, SubmissionUncheckedUpdateInput>
    /**
     * Choose, which Submission to update.
     */
    where: SubmissionWhereUniqueInput
  }

  /**
   * Submission updateMany
   */
  export type SubmissionUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update Submissions.
     */
    data: XOR<SubmissionUpdateManyMutationInput, SubmissionUncheckedUpdateManyInput>
    /**
     * Filter which Submissions to update
     */
    where?: SubmissionWhereInput
    /**
     * Limit how many Submissions to update.
     */
    limit?: number
  }

  /**
   * Submission updateManyAndReturn
   */
  export type SubmissionUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Submission
     */
    select?: SubmissionSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the Submission
     */
    omit?: SubmissionOmit<ExtArgs> | null
    /**
     * The data used to update Submissions.
     */
    data: XOR<SubmissionUpdateManyMutationInput, SubmissionUncheckedUpdateManyInput>
    /**
     * Filter which Submissions to update
     */
    where?: SubmissionWhereInput
    /**
     * Limit how many Submissions to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SubmissionIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * Submission upsert
   */
  export type SubmissionUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Submission
     */
    select?: SubmissionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Submission
     */
    omit?: SubmissionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SubmissionInclude<ExtArgs> | null
    /**
     * The filter to search for the Submission to update in case it exists.
     */
    where: SubmissionWhereUniqueInput
    /**
     * In case the Submission found by the `where` argument doesn't exist, create a new Submission with this data.
     */
    create: XOR<SubmissionCreateInput, SubmissionUncheckedCreateInput>
    /**
     * In case the Submission was found with the provided `where` argument, update it with this data.
     */
    update: XOR<SubmissionUpdateInput, SubmissionUncheckedUpdateInput>
  }

  /**
   * Submission delete
   */
  export type SubmissionDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Submission
     */
    select?: SubmissionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Submission
     */
    omit?: SubmissionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SubmissionInclude<ExtArgs> | null
    /**
     * Filter which Submission to delete.
     */
    where: SubmissionWhereUniqueInput
  }

  /**
   * Submission deleteMany
   */
  export type SubmissionDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which Submissions to delete
     */
    where?: SubmissionWhereInput
    /**
     * Limit how many Submissions to delete.
     */
    limit?: number
  }

  /**
   * Submission.judge_results
   */
  export type Submission$judge_resultsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the JudgeResult
     */
    select?: JudgeResultSelect<ExtArgs> | null
    /**
     * Omit specific fields from the JudgeResult
     */
    omit?: JudgeResultOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: JudgeResultInclude<ExtArgs> | null
    where?: JudgeResultWhereInput
    orderBy?: JudgeResultOrderByWithRelationInput | JudgeResultOrderByWithRelationInput[]
    cursor?: JudgeResultWhereUniqueInput
    take?: number
    skip?: number
    distinct?: JudgeResultScalarFieldEnum | JudgeResultScalarFieldEnum[]
  }

  /**
   * Submission without action
   */
  export type SubmissionDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Submission
     */
    select?: SubmissionSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Submission
     */
    omit?: SubmissionOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SubmissionInclude<ExtArgs> | null
  }


  /**
   * Model JudgeResult
   */

  export type AggregateJudgeResult = {
    _count: JudgeResultCountAggregateOutputType | null
    _min: JudgeResultMinAggregateOutputType | null
    _max: JudgeResultMaxAggregateOutputType | null
  }

  export type JudgeResultMinAggregateOutputType = {
    id: string | null
    submission_id: string | null
    overall_result: string | null
    error_classification: string | null
    error_signature: string | null
    retryable: boolean | null
    judge_completed_at: Date | null
  }

  export type JudgeResultMaxAggregateOutputType = {
    id: string | null
    submission_id: string | null
    overall_result: string | null
    error_classification: string | null
    error_signature: string | null
    retryable: boolean | null
    judge_completed_at: Date | null
  }

  export type JudgeResultCountAggregateOutputType = {
    id: number
    submission_id: number
    overall_result: number
    tests: number
    artifacts: number
    error_classification: number
    error_signature: number
    retryable: number
    resource_usage: number
    judge_completed_at: number
    _all: number
  }


  export type JudgeResultMinAggregateInputType = {
    id?: true
    submission_id?: true
    overall_result?: true
    error_classification?: true
    error_signature?: true
    retryable?: true
    judge_completed_at?: true
  }

  export type JudgeResultMaxAggregateInputType = {
    id?: true
    submission_id?: true
    overall_result?: true
    error_classification?: true
    error_signature?: true
    retryable?: true
    judge_completed_at?: true
  }

  export type JudgeResultCountAggregateInputType = {
    id?: true
    submission_id?: true
    overall_result?: true
    tests?: true
    artifacts?: true
    error_classification?: true
    error_signature?: true
    retryable?: true
    resource_usage?: true
    judge_completed_at?: true
    _all?: true
  }

  export type JudgeResultAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which JudgeResult to aggregate.
     */
    where?: JudgeResultWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of JudgeResults to fetch.
     */
    orderBy?: JudgeResultOrderByWithRelationInput | JudgeResultOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: JudgeResultWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` JudgeResults from the position of the cursor.
     */
    take?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Skip the first `n` JudgeResults.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned JudgeResults
    **/
    _count?: true | JudgeResultCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: JudgeResultMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: JudgeResultMaxAggregateInputType
  }

  export type GetJudgeResultAggregateType<T extends JudgeResultAggregateArgs> = {
        [P in keyof T & keyof AggregateJudgeResult]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateJudgeResult[P]>
      : GetScalarType<T[P], AggregateJudgeResult[P]>
  }




  export type JudgeResultGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: JudgeResultWhereInput
    orderBy?: JudgeResultOrderByWithAggregationInput | JudgeResultOrderByWithAggregationInput[]
    by: JudgeResultScalarFieldEnum[] | JudgeResultScalarFieldEnum
    having?: JudgeResultScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: JudgeResultCountAggregateInputType | true
    _min?: JudgeResultMinAggregateInputType
    _max?: JudgeResultMaxAggregateInputType
  }

  export type JudgeResultGroupByOutputType = {
    id: string
    submission_id: string
    overall_result: string
    tests: JsonValue
    artifacts: JsonValue | null
    error_classification: string | null
    error_signature: string | null
    retryable: boolean
    resource_usage: JsonValue
    judge_completed_at: Date
    _count: JudgeResultCountAggregateOutputType | null
    _min: JudgeResultMinAggregateOutputType | null
    _max: JudgeResultMaxAggregateOutputType | null
  }

  type GetJudgeResultGroupByPayload<T extends JudgeResultGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<JudgeResultGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof JudgeResultGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], JudgeResultGroupByOutputType[P]>
            : GetScalarType<T[P], JudgeResultGroupByOutputType[P]>
        }
      >
    >


  export type JudgeResultSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    submission_id?: boolean
    overall_result?: boolean
    tests?: boolean
    artifacts?: boolean
    error_classification?: boolean
    error_signature?: boolean
    retryable?: boolean
    resource_usage?: boolean
    judge_completed_at?: boolean
    submission?: boolean | SubmissionDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["judgeResult"]>

  export type JudgeResultSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    submission_id?: boolean
    overall_result?: boolean
    tests?: boolean
    artifacts?: boolean
    error_classification?: boolean
    error_signature?: boolean
    retryable?: boolean
    resource_usage?: boolean
    judge_completed_at?: boolean
    submission?: boolean | SubmissionDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["judgeResult"]>

  export type JudgeResultSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    submission_id?: boolean
    overall_result?: boolean
    tests?: boolean
    artifacts?: boolean
    error_classification?: boolean
    error_signature?: boolean
    retryable?: boolean
    resource_usage?: boolean
    judge_completed_at?: boolean
    submission?: boolean | SubmissionDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["judgeResult"]>

  export type JudgeResultSelectScalar = {
    id?: boolean
    submission_id?: boolean
    overall_result?: boolean
    tests?: boolean
    artifacts?: boolean
    error_classification?: boolean
    error_signature?: boolean
    retryable?: boolean
    resource_usage?: boolean
    judge_completed_at?: boolean
  }

  export type JudgeResultOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "submission_id" | "overall_result" | "tests" | "artifacts" | "error_classification" | "error_signature" | "retryable" | "resource_usage" | "judge_completed_at", ExtArgs["result"]["judgeResult"]>
  export type JudgeResultInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    submission?: boolean | SubmissionDefaultArgs<ExtArgs>
  }
  export type JudgeResultIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    submission?: boolean | SubmissionDefaultArgs<ExtArgs>
  }
  export type JudgeResultIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    submission?: boolean | SubmissionDefaultArgs<ExtArgs>
  }

  export type $JudgeResultPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "JudgeResult"
    objects: {
      submission: Prisma.$SubmissionPayload<ExtArgs>
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      submission_id: string
      overall_result: string
      tests: Prisma.JsonValue
      artifacts: Prisma.JsonValue | null
      error_classification: string | null
      error_signature: string | null
      retryable: boolean
      resource_usage: Prisma.JsonValue
      judge_completed_at: Date
    }, ExtArgs["result"]["judgeResult"]>
    composites: {}
  }

  type JudgeResultGetPayload<S extends boolean | null | undefined | JudgeResultDefaultArgs> = $Result.GetResult<Prisma.$JudgeResultPayload, S>

  type JudgeResultCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<JudgeResultFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: JudgeResultCountAggregateInputType | true
    }

  export interface JudgeResultDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['JudgeResult'], meta: { name: 'JudgeResult' } }
    /**
     * Find zero or one JudgeResult that matches the filter.
     * @param {JudgeResultFindUniqueArgs} args - Arguments to find a JudgeResult
     * @example
     * // Get one JudgeResult
     * const judgeResult = await prisma.judgeResult.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends JudgeResultFindUniqueArgs>(args: SelectSubset<T, JudgeResultFindUniqueArgs<ExtArgs>>): Prisma__JudgeResultClient<$Result.GetResult<Prisma.$JudgeResultPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one JudgeResult that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {JudgeResultFindUniqueOrThrowArgs} args - Arguments to find a JudgeResult
     * @example
     * // Get one JudgeResult
     * const judgeResult = await prisma.judgeResult.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends JudgeResultFindUniqueOrThrowArgs>(args: SelectSubset<T, JudgeResultFindUniqueOrThrowArgs<ExtArgs>>): Prisma__JudgeResultClient<$Result.GetResult<Prisma.$JudgeResultPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first JudgeResult that matches the filter.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {JudgeResultFindFirstArgs} args - Arguments to find a JudgeResult
     * @example
     * // Get one JudgeResult
     * const judgeResult = await prisma.judgeResult.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends JudgeResultFindFirstArgs>(args?: SelectSubset<T, JudgeResultFindFirstArgs<ExtArgs>>): Prisma__JudgeResultClient<$Result.GetResult<Prisma.$JudgeResultPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first JudgeResult that matches the filter or
     * throw `PrismaKnownClientError` with `P2025` code if no matches were found.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {JudgeResultFindFirstOrThrowArgs} args - Arguments to find a JudgeResult
     * @example
     * // Get one JudgeResult
     * const judgeResult = await prisma.judgeResult.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends JudgeResultFindFirstOrThrowArgs>(args?: SelectSubset<T, JudgeResultFindFirstOrThrowArgs<ExtArgs>>): Prisma__JudgeResultClient<$Result.GetResult<Prisma.$JudgeResultPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more JudgeResults that matches the filter.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {JudgeResultFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all JudgeResults
     * const judgeResults = await prisma.judgeResult.findMany()
     * 
     * // Get first 10 JudgeResults
     * const judgeResults = await prisma.judgeResult.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const judgeResultWithIdOnly = await prisma.judgeResult.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends JudgeResultFindManyArgs>(args?: SelectSubset<T, JudgeResultFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$JudgeResultPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a JudgeResult.
     * @param {JudgeResultCreateArgs} args - Arguments to create a JudgeResult.
     * @example
     * // Create one JudgeResult
     * const JudgeResult = await prisma.judgeResult.create({
     *   data: {
     *     // ... data to create a JudgeResult
     *   }
     * })
     * 
     */
    create<T extends JudgeResultCreateArgs>(args: SelectSubset<T, JudgeResultCreateArgs<ExtArgs>>): Prisma__JudgeResultClient<$Result.GetResult<Prisma.$JudgeResultPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many JudgeResults.
     * @param {JudgeResultCreateManyArgs} args - Arguments to create many JudgeResults.
     * @example
     * // Create many JudgeResults
     * const judgeResult = await prisma.judgeResult.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends JudgeResultCreateManyArgs>(args?: SelectSubset<T, JudgeResultCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many JudgeResults and returns the data saved in the database.
     * @param {JudgeResultCreateManyAndReturnArgs} args - Arguments to create many JudgeResults.
     * @example
     * // Create many JudgeResults
     * const judgeResult = await prisma.judgeResult.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many JudgeResults and only return the `id`
     * const judgeResultWithIdOnly = await prisma.judgeResult.createManyAndReturn({
     *   select: { id: true },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * 
     */
    createManyAndReturn<T extends JudgeResultCreateManyAndReturnArgs>(args?: SelectSubset<T, JudgeResultCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$JudgeResultPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a JudgeResult.
     * @param {JudgeResultDeleteArgs} args - Arguments to delete one JudgeResult.
     * @example
     * // Delete one JudgeResult
     * const JudgeResult = await prisma.judgeResult.delete({
     *   where: {
     *     // ... filter to delete one JudgeResult
     *   }
     * })
     * 
     */
    delete<T extends JudgeResultDeleteArgs>(args: SelectSubset<T, JudgeResultDeleteArgs<ExtArgs>>): Prisma__JudgeResultClient<$Result.GetResult<Prisma.$JudgeResultPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one JudgeResult.
     * @param {JudgeResultUpdateArgs} args - Arguments to update one JudgeResult.
     * @example
     * // Update one JudgeResult
     * const judgeResult = await prisma.judgeResult.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends JudgeResultUpdateArgs>(args: SelectSubset<T, JudgeResultUpdateArgs<ExtArgs>>): Prisma__JudgeResultClient<$Result.GetResult<Prisma.$JudgeResultPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more JudgeResults.
     * @param {JudgeResultDeleteManyArgs} args - Arguments to filter JudgeResults to delete.
     * @example
     * // Delete a few JudgeResults
     * const { count } = await prisma.judgeResult.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends JudgeResultDeleteManyArgs>(args?: SelectSubset<T, JudgeResultDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more JudgeResults.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {JudgeResultUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many JudgeResults
     * const judgeResult = await prisma.judgeResult.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends JudgeResultUpdateManyArgs>(args: SelectSubset<T, JudgeResultUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more JudgeResults and returns the data updated in the database.
     * @param {JudgeResultUpdateManyAndReturnArgs} args - Arguments to update many JudgeResults.
     * @example
     * // Update many JudgeResults
     * const judgeResult = await prisma.judgeResult.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more JudgeResults and only return the `id`
     * const judgeResultWithIdOnly = await prisma.judgeResult.updateManyAndReturn({
     *   select: { id: true },
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * 
     */
    updateManyAndReturn<T extends JudgeResultUpdateManyAndReturnArgs>(args: SelectSubset<T, JudgeResultUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$JudgeResultPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one JudgeResult.
     * @param {JudgeResultUpsertArgs} args - Arguments to update or create a JudgeResult.
     * @example
     * // Update or create a JudgeResult
     * const judgeResult = await prisma.judgeResult.upsert({
     *   create: {
     *     // ... data to create a JudgeResult
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the JudgeResult we want to update
     *   }
     * })
     */
    upsert<T extends JudgeResultUpsertArgs>(args: SelectSubset<T, JudgeResultUpsertArgs<ExtArgs>>): Prisma__JudgeResultClient<$Result.GetResult<Prisma.$JudgeResultPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of JudgeResults.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {JudgeResultCountArgs} args - Arguments to filter JudgeResults to count.
     * @example
     * // Count the number of JudgeResults
     * const count = await prisma.judgeResult.count({
     *   where: {
     *     // ... the filter for the JudgeResults we want to count
     *   }
     * })
    **/
    count<T extends JudgeResultCountArgs>(
      args?: Subset<T, JudgeResultCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], JudgeResultCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a JudgeResult.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {JudgeResultAggregateArgs} args - Select which aggregations you would like to apply and on what fields.
     * @example
     * // Ordered by age ascending
     * // Where email contains prisma.io
     * // Limited to the 10 users
     * const aggregations = await prisma.user.aggregate({
     *   _avg: {
     *     age: true,
     *   },
     *   where: {
     *     email: {
     *       contains: "prisma.io",
     *     },
     *   },
     *   orderBy: {
     *     age: "asc",
     *   },
     *   take: 10,
     * })
    **/
    aggregate<T extends JudgeResultAggregateArgs>(args: Subset<T, JudgeResultAggregateArgs>): Prisma.PrismaPromise<GetJudgeResultAggregateType<T>>

    /**
     * Group by JudgeResult.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {JudgeResultGroupByArgs} args - Group by arguments.
     * @example
     * // Group by city, order by createdAt, get count
     * const result = await prisma.user.groupBy({
     *   by: ['city', 'createdAt'],
     *   orderBy: {
     *     createdAt: true
     *   },
     *   _count: {
     *     _all: true
     *   },
     * })
     * 
    **/
    groupBy<
      T extends JudgeResultGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: JudgeResultGroupByArgs['orderBy'] }
        : { orderBy?: JudgeResultGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, JudgeResultGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetJudgeResultGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the JudgeResult model
   */
  readonly fields: JudgeResultFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for JudgeResult.
   * Why is this prefixed with `Prisma__`?
   * Because we want to prevent naming conflicts as mentioned in
   * https://github.com/prisma/prisma-client-js/issues/707
   */
  export interface Prisma__JudgeResultClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    submission<T extends SubmissionDefaultArgs<ExtArgs> = {}>(args?: Subset<T, SubmissionDefaultArgs<ExtArgs>>): Prisma__SubmissionClient<$Result.GetResult<Prisma.$SubmissionPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the JudgeResult model
   */
  interface JudgeResultFieldRefs {
    readonly id: FieldRef<"JudgeResult", 'String'>
    readonly submission_id: FieldRef<"JudgeResult", 'String'>
    readonly overall_result: FieldRef<"JudgeResult", 'String'>
    readonly tests: FieldRef<"JudgeResult", 'Json'>
    readonly artifacts: FieldRef<"JudgeResult", 'Json'>
    readonly error_classification: FieldRef<"JudgeResult", 'String'>
    readonly error_signature: FieldRef<"JudgeResult", 'String'>
    readonly retryable: FieldRef<"JudgeResult", 'Boolean'>
    readonly resource_usage: FieldRef<"JudgeResult", 'Json'>
    readonly judge_completed_at: FieldRef<"JudgeResult", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * JudgeResult findUnique
   */
  export type JudgeResultFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the JudgeResult
     */
    select?: JudgeResultSelect<ExtArgs> | null
    /**
     * Omit specific fields from the JudgeResult
     */
    omit?: JudgeResultOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: JudgeResultInclude<ExtArgs> | null
    /**
     * Filter, which JudgeResult to fetch.
     */
    where: JudgeResultWhereUniqueInput
  }

  /**
   * JudgeResult findUniqueOrThrow
   */
  export type JudgeResultFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the JudgeResult
     */
    select?: JudgeResultSelect<ExtArgs> | null
    /**
     * Omit specific fields from the JudgeResult
     */
    omit?: JudgeResultOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: JudgeResultInclude<ExtArgs> | null
    /**
     * Filter, which JudgeResult to fetch.
     */
    where: JudgeResultWhereUniqueInput
  }

  /**
   * JudgeResult findFirst
   */
  export type JudgeResultFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the JudgeResult
     */
    select?: JudgeResultSelect<ExtArgs> | null
    /**
     * Omit specific fields from the JudgeResult
     */
    omit?: JudgeResultOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: JudgeResultInclude<ExtArgs> | null
    /**
     * Filter, which JudgeResult to fetch.
     */
    where?: JudgeResultWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of JudgeResults to fetch.
     */
    orderBy?: JudgeResultOrderByWithRelationInput | JudgeResultOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for JudgeResults.
     */
    cursor?: JudgeResultWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` JudgeResults from the position of the cursor.
     */
    take?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Skip the first `n` JudgeResults.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of JudgeResults.
     */
    distinct?: JudgeResultScalarFieldEnum | JudgeResultScalarFieldEnum[]
  }

  /**
   * JudgeResult findFirstOrThrow
   */
  export type JudgeResultFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the JudgeResult
     */
    select?: JudgeResultSelect<ExtArgs> | null
    /**
     * Omit specific fields from the JudgeResult
     */
    omit?: JudgeResultOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: JudgeResultInclude<ExtArgs> | null
    /**
     * Filter, which JudgeResult to fetch.
     */
    where?: JudgeResultWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of JudgeResults to fetch.
     */
    orderBy?: JudgeResultOrderByWithRelationInput | JudgeResultOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for JudgeResults.
     */
    cursor?: JudgeResultWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` JudgeResults from the position of the cursor.
     */
    take?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Skip the first `n` JudgeResults.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of JudgeResults.
     */
    distinct?: JudgeResultScalarFieldEnum | JudgeResultScalarFieldEnum[]
  }

  /**
   * JudgeResult findMany
   */
  export type JudgeResultFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the JudgeResult
     */
    select?: JudgeResultSelect<ExtArgs> | null
    /**
     * Omit specific fields from the JudgeResult
     */
    omit?: JudgeResultOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: JudgeResultInclude<ExtArgs> | null
    /**
     * Filter, which JudgeResults to fetch.
     */
    where?: JudgeResultWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of JudgeResults to fetch.
     */
    orderBy?: JudgeResultOrderByWithRelationInput | JudgeResultOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing JudgeResults.
     */
    cursor?: JudgeResultWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` JudgeResults from the position of the cursor.
     */
    take?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Skip the first `n` JudgeResults.
     */
    skip?: number
    distinct?: JudgeResultScalarFieldEnum | JudgeResultScalarFieldEnum[]
  }

  /**
   * JudgeResult create
   */
  export type JudgeResultCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the JudgeResult
     */
    select?: JudgeResultSelect<ExtArgs> | null
    /**
     * Omit specific fields from the JudgeResult
     */
    omit?: JudgeResultOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: JudgeResultInclude<ExtArgs> | null
    /**
     * The data needed to create a JudgeResult.
     */
    data: XOR<JudgeResultCreateInput, JudgeResultUncheckedCreateInput>
  }

  /**
   * JudgeResult createMany
   */
  export type JudgeResultCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many JudgeResults.
     */
    data: JudgeResultCreateManyInput | JudgeResultCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * JudgeResult createManyAndReturn
   */
  export type JudgeResultCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the JudgeResult
     */
    select?: JudgeResultSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the JudgeResult
     */
    omit?: JudgeResultOmit<ExtArgs> | null
    /**
     * The data used to create many JudgeResults.
     */
    data: JudgeResultCreateManyInput | JudgeResultCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: JudgeResultIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * JudgeResult update
   */
  export type JudgeResultUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the JudgeResult
     */
    select?: JudgeResultSelect<ExtArgs> | null
    /**
     * Omit specific fields from the JudgeResult
     */
    omit?: JudgeResultOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: JudgeResultInclude<ExtArgs> | null
    /**
     * The data needed to update a JudgeResult.
     */
    data: XOR<JudgeResultUpdateInput, JudgeResultUncheckedUpdateInput>
    /**
     * Choose, which JudgeResult to update.
     */
    where: JudgeResultWhereUniqueInput
  }

  /**
   * JudgeResult updateMany
   */
  export type JudgeResultUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update JudgeResults.
     */
    data: XOR<JudgeResultUpdateManyMutationInput, JudgeResultUncheckedUpdateManyInput>
    /**
     * Filter which JudgeResults to update
     */
    where?: JudgeResultWhereInput
    /**
     * Limit how many JudgeResults to update.
     */
    limit?: number
  }

  /**
   * JudgeResult updateManyAndReturn
   */
  export type JudgeResultUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the JudgeResult
     */
    select?: JudgeResultSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the JudgeResult
     */
    omit?: JudgeResultOmit<ExtArgs> | null
    /**
     * The data used to update JudgeResults.
     */
    data: XOR<JudgeResultUpdateManyMutationInput, JudgeResultUncheckedUpdateManyInput>
    /**
     * Filter which JudgeResults to update
     */
    where?: JudgeResultWhereInput
    /**
     * Limit how many JudgeResults to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: JudgeResultIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * JudgeResult upsert
   */
  export type JudgeResultUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the JudgeResult
     */
    select?: JudgeResultSelect<ExtArgs> | null
    /**
     * Omit specific fields from the JudgeResult
     */
    omit?: JudgeResultOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: JudgeResultInclude<ExtArgs> | null
    /**
     * The filter to search for the JudgeResult to update in case it exists.
     */
    where: JudgeResultWhereUniqueInput
    /**
     * In case the JudgeResult found by the `where` argument doesn't exist, create a new JudgeResult with this data.
     */
    create: XOR<JudgeResultCreateInput, JudgeResultUncheckedCreateInput>
    /**
     * In case the JudgeResult was found with the provided `where` argument, update it with this data.
     */
    update: XOR<JudgeResultUpdateInput, JudgeResultUncheckedUpdateInput>
  }

  /**
   * JudgeResult delete
   */
  export type JudgeResultDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the JudgeResult
     */
    select?: JudgeResultSelect<ExtArgs> | null
    /**
     * Omit specific fields from the JudgeResult
     */
    omit?: JudgeResultOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: JudgeResultInclude<ExtArgs> | null
    /**
     * Filter which JudgeResult to delete.
     */
    where: JudgeResultWhereUniqueInput
  }

  /**
   * JudgeResult deleteMany
   */
  export type JudgeResultDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which JudgeResults to delete
     */
    where?: JudgeResultWhereInput
    /**
     * Limit how many JudgeResults to delete.
     */
    limit?: number
  }

  /**
   * JudgeResult without action
   */
  export type JudgeResultDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the JudgeResult
     */
    select?: JudgeResultSelect<ExtArgs> | null
    /**
     * Omit specific fields from the JudgeResult
     */
    omit?: JudgeResultOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: JudgeResultInclude<ExtArgs> | null
  }


  /**
   * Model AuditEvent
   */

  export type AggregateAuditEvent = {
    _count: AuditEventCountAggregateOutputType | null
    _min: AuditEventMinAggregateOutputType | null
    _max: AuditEventMaxAggregateOutputType | null
  }

  export type AuditEventMinAggregateOutputType = {
    id: string | null
    actorType: string | null
    actorId: string | null
    action: string | null
    entityType: string | null
    entityId: string | null
    reason: string | null
    createdAt: Date | null
  }

  export type AuditEventMaxAggregateOutputType = {
    id: string | null
    actorType: string | null
    actorId: string | null
    action: string | null
    entityType: string | null
    entityId: string | null
    reason: string | null
    createdAt: Date | null
  }

  export type AuditEventCountAggregateOutputType = {
    id: number
    actorType: number
    actorId: number
    action: number
    entityType: number
    entityId: number
    beforeState: number
    afterState: number
    reason: number
    metadata: number
    createdAt: number
    _all: number
  }


  export type AuditEventMinAggregateInputType = {
    id?: true
    actorType?: true
    actorId?: true
    action?: true
    entityType?: true
    entityId?: true
    reason?: true
    createdAt?: true
  }

  export type AuditEventMaxAggregateInputType = {
    id?: true
    actorType?: true
    actorId?: true
    action?: true
    entityType?: true
    entityId?: true
    reason?: true
    createdAt?: true
  }

  export type AuditEventCountAggregateInputType = {
    id?: true
    actorType?: true
    actorId?: true
    action?: true
    entityType?: true
    entityId?: true
    beforeState?: true
    afterState?: true
    reason?: true
    metadata?: true
    createdAt?: true
    _all?: true
  }

  export type AuditEventAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which AuditEvent to aggregate.
     */
    where?: AuditEventWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AuditEvents to fetch.
     */
    orderBy?: AuditEventOrderByWithRelationInput | AuditEventOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: AuditEventWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AuditEvents from the position of the cursor.
     */
    take?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Skip the first `n` AuditEvents.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned AuditEvents
    **/
    _count?: true | AuditEventCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: AuditEventMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: AuditEventMaxAggregateInputType
  }

  export type GetAuditEventAggregateType<T extends AuditEventAggregateArgs> = {
        [P in keyof T & keyof AggregateAuditEvent]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateAuditEvent[P]>
      : GetScalarType<T[P], AggregateAuditEvent[P]>
  }




  export type AuditEventGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: AuditEventWhereInput
    orderBy?: AuditEventOrderByWithAggregationInput | AuditEventOrderByWithAggregationInput[]
    by: AuditEventScalarFieldEnum[] | AuditEventScalarFieldEnum
    having?: AuditEventScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: AuditEventCountAggregateInputType | true
    _min?: AuditEventMinAggregateInputType
    _max?: AuditEventMaxAggregateInputType
  }

  export type AuditEventGroupByOutputType = {
    id: string
    actorType: string
    actorId: string | null
    action: string
    entityType: string
    entityId: string
    beforeState: JsonValue | null
    afterState: JsonValue | null
    reason: string | null
    metadata: JsonValue | null
    createdAt: Date
    _count: AuditEventCountAggregateOutputType | null
    _min: AuditEventMinAggregateOutputType | null
    _max: AuditEventMaxAggregateOutputType | null
  }

  type GetAuditEventGroupByPayload<T extends AuditEventGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<AuditEventGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof AuditEventGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], AuditEventGroupByOutputType[P]>
            : GetScalarType<T[P], AuditEventGroupByOutputType[P]>
        }
      >
    >


  export type AuditEventSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    actorType?: boolean
    actorId?: boolean
    action?: boolean
    entityType?: boolean
    entityId?: boolean
    beforeState?: boolean
    afterState?: boolean
    reason?: boolean
    metadata?: boolean
    createdAt?: boolean
  }, ExtArgs["result"]["auditEvent"]>

  export type AuditEventSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    actorType?: boolean
    actorId?: boolean
    action?: boolean
    entityType?: boolean
    entityId?: boolean
    beforeState?: boolean
    afterState?: boolean
    reason?: boolean
    metadata?: boolean
    createdAt?: boolean
  }, ExtArgs["result"]["auditEvent"]>

  export type AuditEventSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    actorType?: boolean
    actorId?: boolean
    action?: boolean
    entityType?: boolean
    entityId?: boolean
    beforeState?: boolean
    afterState?: boolean
    reason?: boolean
    metadata?: boolean
    createdAt?: boolean
  }, ExtArgs["result"]["auditEvent"]>

  export type AuditEventSelectScalar = {
    id?: boolean
    actorType?: boolean
    actorId?: boolean
    action?: boolean
    entityType?: boolean
    entityId?: boolean
    beforeState?: boolean
    afterState?: boolean
    reason?: boolean
    metadata?: boolean
    createdAt?: boolean
  }

  export type AuditEventOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "actorType" | "actorId" | "action" | "entityType" | "entityId" | "beforeState" | "afterState" | "reason" | "metadata" | "createdAt", ExtArgs["result"]["auditEvent"]>

  export type $AuditEventPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "AuditEvent"
    objects: {}
    scalars: $Extensions.GetPayloadResult<{
      id: string
      actorType: string
      actorId: string | null
      action: string
      entityType: string
      entityId: string
      beforeState: Prisma.JsonValue | null
      afterState: Prisma.JsonValue | null
      reason: string | null
      metadata: Prisma.JsonValue | null
      createdAt: Date
    }, ExtArgs["result"]["auditEvent"]>
    composites: {}
  }

  type AuditEventGetPayload<S extends boolean | null | undefined | AuditEventDefaultArgs> = $Result.GetResult<Prisma.$AuditEventPayload, S>

  type AuditEventCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<AuditEventFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: AuditEventCountAggregateInputType | true
    }

  export interface AuditEventDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['AuditEvent'], meta: { name: 'AuditEvent' } }
    /**
     * Find zero or one AuditEvent that matches the filter.
     * @param {AuditEventFindUniqueArgs} args - Arguments to find a AuditEvent
     * @example
     * // Get one AuditEvent
     * const auditEvent = await prisma.auditEvent.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends AuditEventFindUniqueArgs>(args: SelectSubset<T, AuditEventFindUniqueArgs<ExtArgs>>): Prisma__AuditEventClient<$Result.GetResult<Prisma.$AuditEventPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one AuditEvent that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {AuditEventFindUniqueOrThrowArgs} args - Arguments to find a AuditEvent
     * @example
     * // Get one AuditEvent
     * const auditEvent = await prisma.auditEvent.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends AuditEventFindUniqueOrThrowArgs>(args: SelectSubset<T, AuditEventFindUniqueOrThrowArgs<ExtArgs>>): Prisma__AuditEventClient<$Result.GetResult<Prisma.$AuditEventPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first AuditEvent that matches the filter.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AuditEventFindFirstArgs} args - Arguments to find a AuditEvent
     * @example
     * // Get one AuditEvent
     * const auditEvent = await prisma.auditEvent.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends AuditEventFindFirstArgs>(args?: SelectSubset<T, AuditEventFindFirstArgs<ExtArgs>>): Prisma__AuditEventClient<$Result.GetResult<Prisma.$AuditEventPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first AuditEvent that matches the filter or
     * throw `PrismaKnownClientError` with `P2025` code if no matches were found.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AuditEventFindFirstOrThrowArgs} args - Arguments to find a AuditEvent
     * @example
     * // Get one AuditEvent
     * const auditEvent = await prisma.auditEvent.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends AuditEventFindFirstOrThrowArgs>(args?: SelectSubset<T, AuditEventFindFirstOrThrowArgs<ExtArgs>>): Prisma__AuditEventClient<$Result.GetResult<Prisma.$AuditEventPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more AuditEvents that matches the filter.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AuditEventFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all AuditEvents
     * const auditEvents = await prisma.auditEvent.findMany()
     * 
     * // Get first 10 AuditEvents
     * const auditEvents = await prisma.auditEvent.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const auditEventWithIdOnly = await prisma.auditEvent.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends AuditEventFindManyArgs>(args?: SelectSubset<T, AuditEventFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AuditEventPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a AuditEvent.
     * @param {AuditEventCreateArgs} args - Arguments to create a AuditEvent.
     * @example
     * // Create one AuditEvent
     * const AuditEvent = await prisma.auditEvent.create({
     *   data: {
     *     // ... data to create a AuditEvent
     *   }
     * })
     * 
     */
    create<T extends AuditEventCreateArgs>(args: SelectSubset<T, AuditEventCreateArgs<ExtArgs>>): Prisma__AuditEventClient<$Result.GetResult<Prisma.$AuditEventPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many AuditEvents.
     * @param {AuditEventCreateManyArgs} args - Arguments to create many AuditEvents.
     * @example
     * // Create many AuditEvents
     * const auditEvent = await prisma.auditEvent.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends AuditEventCreateManyArgs>(args?: SelectSubset<T, AuditEventCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many AuditEvents and returns the data saved in the database.
     * @param {AuditEventCreateManyAndReturnArgs} args - Arguments to create many AuditEvents.
     * @example
     * // Create many AuditEvents
     * const auditEvent = await prisma.auditEvent.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many AuditEvents and only return the `id`
     * const auditEventWithIdOnly = await prisma.auditEvent.createManyAndReturn({
     *   select: { id: true },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * 
     */
    createManyAndReturn<T extends AuditEventCreateManyAndReturnArgs>(args?: SelectSubset<T, AuditEventCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AuditEventPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a AuditEvent.
     * @param {AuditEventDeleteArgs} args - Arguments to delete one AuditEvent.
     * @example
     * // Delete one AuditEvent
     * const AuditEvent = await prisma.auditEvent.delete({
     *   where: {
     *     // ... filter to delete one AuditEvent
     *   }
     * })
     * 
     */
    delete<T extends AuditEventDeleteArgs>(args: SelectSubset<T, AuditEventDeleteArgs<ExtArgs>>): Prisma__AuditEventClient<$Result.GetResult<Prisma.$AuditEventPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one AuditEvent.
     * @param {AuditEventUpdateArgs} args - Arguments to update one AuditEvent.
     * @example
     * // Update one AuditEvent
     * const auditEvent = await prisma.auditEvent.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends AuditEventUpdateArgs>(args: SelectSubset<T, AuditEventUpdateArgs<ExtArgs>>): Prisma__AuditEventClient<$Result.GetResult<Prisma.$AuditEventPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more AuditEvents.
     * @param {AuditEventDeleteManyArgs} args - Arguments to filter AuditEvents to delete.
     * @example
     * // Delete a few AuditEvents
     * const { count } = await prisma.auditEvent.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends AuditEventDeleteManyArgs>(args?: SelectSubset<T, AuditEventDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more AuditEvents.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AuditEventUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many AuditEvents
     * const auditEvent = await prisma.auditEvent.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends AuditEventUpdateManyArgs>(args: SelectSubset<T, AuditEventUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more AuditEvents and returns the data updated in the database.
     * @param {AuditEventUpdateManyAndReturnArgs} args - Arguments to update many AuditEvents.
     * @example
     * // Update many AuditEvents
     * const auditEvent = await prisma.auditEvent.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more AuditEvents and only return the `id`
     * const auditEventWithIdOnly = await prisma.auditEvent.updateManyAndReturn({
     *   select: { id: true },
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * 
     */
    updateManyAndReturn<T extends AuditEventUpdateManyAndReturnArgs>(args: SelectSubset<T, AuditEventUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AuditEventPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one AuditEvent.
     * @param {AuditEventUpsertArgs} args - Arguments to update or create a AuditEvent.
     * @example
     * // Update or create a AuditEvent
     * const auditEvent = await prisma.auditEvent.upsert({
     *   create: {
     *     // ... data to create a AuditEvent
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the AuditEvent we want to update
     *   }
     * })
     */
    upsert<T extends AuditEventUpsertArgs>(args: SelectSubset<T, AuditEventUpsertArgs<ExtArgs>>): Prisma__AuditEventClient<$Result.GetResult<Prisma.$AuditEventPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of AuditEvents.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AuditEventCountArgs} args - Arguments to filter AuditEvents to count.
     * @example
     * // Count the number of AuditEvents
     * const count = await prisma.auditEvent.count({
     *   where: {
     *     // ... the filter for the AuditEvents we want to count
     *   }
     * })
    **/
    count<T extends AuditEventCountArgs>(
      args?: Subset<T, AuditEventCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], AuditEventCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a AuditEvent.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AuditEventAggregateArgs} args - Select which aggregations you would like to apply and on what fields.
     * @example
     * // Ordered by age ascending
     * // Where email contains prisma.io
     * // Limited to the 10 users
     * const aggregations = await prisma.user.aggregate({
     *   _avg: {
     *     age: true,
     *   },
     *   where: {
     *     email: {
     *       contains: "prisma.io",
     *     },
     *   },
     *   orderBy: {
     *     age: "asc",
     *   },
     *   take: 10,
     * })
    **/
    aggregate<T extends AuditEventAggregateArgs>(args: Subset<T, AuditEventAggregateArgs>): Prisma.PrismaPromise<GetAuditEventAggregateType<T>>

    /**
     * Group by AuditEvent.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AuditEventGroupByArgs} args - Group by arguments.
     * @example
     * // Group by city, order by createdAt, get count
     * const result = await prisma.user.groupBy({
     *   by: ['city', 'createdAt'],
     *   orderBy: {
     *     createdAt: true
     *   },
     *   _count: {
     *     _all: true
     *   },
     * })
     * 
    **/
    groupBy<
      T extends AuditEventGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: AuditEventGroupByArgs['orderBy'] }
        : { orderBy?: AuditEventGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, AuditEventGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetAuditEventGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the AuditEvent model
   */
  readonly fields: AuditEventFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for AuditEvent.
   * Why is this prefixed with `Prisma__`?
   * Because we want to prevent naming conflicts as mentioned in
   * https://github.com/prisma/prisma-client-js/issues/707
   */
  export interface Prisma__AuditEventClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the AuditEvent model
   */
  interface AuditEventFieldRefs {
    readonly id: FieldRef<"AuditEvent", 'String'>
    readonly actorType: FieldRef<"AuditEvent", 'String'>
    readonly actorId: FieldRef<"AuditEvent", 'String'>
    readonly action: FieldRef<"AuditEvent", 'String'>
    readonly entityType: FieldRef<"AuditEvent", 'String'>
    readonly entityId: FieldRef<"AuditEvent", 'String'>
    readonly beforeState: FieldRef<"AuditEvent", 'Json'>
    readonly afterState: FieldRef<"AuditEvent", 'Json'>
    readonly reason: FieldRef<"AuditEvent", 'String'>
    readonly metadata: FieldRef<"AuditEvent", 'Json'>
    readonly createdAt: FieldRef<"AuditEvent", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * AuditEvent findUnique
   */
  export type AuditEventFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AuditEvent
     */
    select?: AuditEventSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AuditEvent
     */
    omit?: AuditEventOmit<ExtArgs> | null
    /**
     * Filter, which AuditEvent to fetch.
     */
    where: AuditEventWhereUniqueInput
  }

  /**
   * AuditEvent findUniqueOrThrow
   */
  export type AuditEventFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AuditEvent
     */
    select?: AuditEventSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AuditEvent
     */
    omit?: AuditEventOmit<ExtArgs> | null
    /**
     * Filter, which AuditEvent to fetch.
     */
    where: AuditEventWhereUniqueInput
  }

  /**
   * AuditEvent findFirst
   */
  export type AuditEventFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AuditEvent
     */
    select?: AuditEventSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AuditEvent
     */
    omit?: AuditEventOmit<ExtArgs> | null
    /**
     * Filter, which AuditEvent to fetch.
     */
    where?: AuditEventWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AuditEvents to fetch.
     */
    orderBy?: AuditEventOrderByWithRelationInput | AuditEventOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for AuditEvents.
     */
    cursor?: AuditEventWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AuditEvents from the position of the cursor.
     */
    take?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Skip the first `n` AuditEvents.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of AuditEvents.
     */
    distinct?: AuditEventScalarFieldEnum | AuditEventScalarFieldEnum[]
  }

  /**
   * AuditEvent findFirstOrThrow
   */
  export type AuditEventFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AuditEvent
     */
    select?: AuditEventSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AuditEvent
     */
    omit?: AuditEventOmit<ExtArgs> | null
    /**
     * Filter, which AuditEvent to fetch.
     */
    where?: AuditEventWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AuditEvents to fetch.
     */
    orderBy?: AuditEventOrderByWithRelationInput | AuditEventOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for AuditEvents.
     */
    cursor?: AuditEventWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AuditEvents from the position of the cursor.
     */
    take?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Skip the first `n` AuditEvents.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of AuditEvents.
     */
    distinct?: AuditEventScalarFieldEnum | AuditEventScalarFieldEnum[]
  }

  /**
   * AuditEvent findMany
   */
  export type AuditEventFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AuditEvent
     */
    select?: AuditEventSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AuditEvent
     */
    omit?: AuditEventOmit<ExtArgs> | null
    /**
     * Filter, which AuditEvents to fetch.
     */
    where?: AuditEventWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AuditEvents to fetch.
     */
    orderBy?: AuditEventOrderByWithRelationInput | AuditEventOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing AuditEvents.
     */
    cursor?: AuditEventWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AuditEvents from the position of the cursor.
     */
    take?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Skip the first `n` AuditEvents.
     */
    skip?: number
    distinct?: AuditEventScalarFieldEnum | AuditEventScalarFieldEnum[]
  }

  /**
   * AuditEvent create
   */
  export type AuditEventCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AuditEvent
     */
    select?: AuditEventSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AuditEvent
     */
    omit?: AuditEventOmit<ExtArgs> | null
    /**
     * The data needed to create a AuditEvent.
     */
    data: XOR<AuditEventCreateInput, AuditEventUncheckedCreateInput>
  }

  /**
   * AuditEvent createMany
   */
  export type AuditEventCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many AuditEvents.
     */
    data: AuditEventCreateManyInput | AuditEventCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * AuditEvent createManyAndReturn
   */
  export type AuditEventCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AuditEvent
     */
    select?: AuditEventSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the AuditEvent
     */
    omit?: AuditEventOmit<ExtArgs> | null
    /**
     * The data used to create many AuditEvents.
     */
    data: AuditEventCreateManyInput | AuditEventCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * AuditEvent update
   */
  export type AuditEventUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AuditEvent
     */
    select?: AuditEventSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AuditEvent
     */
    omit?: AuditEventOmit<ExtArgs> | null
    /**
     * The data needed to update a AuditEvent.
     */
    data: XOR<AuditEventUpdateInput, AuditEventUncheckedUpdateInput>
    /**
     * Choose, which AuditEvent to update.
     */
    where: AuditEventWhereUniqueInput
  }

  /**
   * AuditEvent updateMany
   */
  export type AuditEventUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update AuditEvents.
     */
    data: XOR<AuditEventUpdateManyMutationInput, AuditEventUncheckedUpdateManyInput>
    /**
     * Filter which AuditEvents to update
     */
    where?: AuditEventWhereInput
    /**
     * Limit how many AuditEvents to update.
     */
    limit?: number
  }

  /**
   * AuditEvent updateManyAndReturn
   */
  export type AuditEventUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AuditEvent
     */
    select?: AuditEventSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the AuditEvent
     */
    omit?: AuditEventOmit<ExtArgs> | null
    /**
     * The data used to update AuditEvents.
     */
    data: XOR<AuditEventUpdateManyMutationInput, AuditEventUncheckedUpdateManyInput>
    /**
     * Filter which AuditEvents to update
     */
    where?: AuditEventWhereInput
    /**
     * Limit how many AuditEvents to update.
     */
    limit?: number
  }

  /**
   * AuditEvent upsert
   */
  export type AuditEventUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AuditEvent
     */
    select?: AuditEventSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AuditEvent
     */
    omit?: AuditEventOmit<ExtArgs> | null
    /**
     * The filter to search for the AuditEvent to update in case it exists.
     */
    where: AuditEventWhereUniqueInput
    /**
     * In case the AuditEvent found by the `where` argument doesn't exist, create a new AuditEvent with this data.
     */
    create: XOR<AuditEventCreateInput, AuditEventUncheckedCreateInput>
    /**
     * In case the AuditEvent was found with the provided `where` argument, update it with this data.
     */
    update: XOR<AuditEventUpdateInput, AuditEventUncheckedUpdateInput>
  }

  /**
   * AuditEvent delete
   */
  export type AuditEventDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AuditEvent
     */
    select?: AuditEventSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AuditEvent
     */
    omit?: AuditEventOmit<ExtArgs> | null
    /**
     * Filter which AuditEvent to delete.
     */
    where: AuditEventWhereUniqueInput
  }

  /**
   * AuditEvent deleteMany
   */
  export type AuditEventDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which AuditEvents to delete
     */
    where?: AuditEventWhereInput
    /**
     * Limit how many AuditEvents to delete.
     */
    limit?: number
  }

  /**
   * AuditEvent without action
   */
  export type AuditEventDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AuditEvent
     */
    select?: AuditEventSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AuditEvent
     */
    omit?: AuditEventOmit<ExtArgs> | null
  }


  /**
   * Model LedgerEntry
   */

  export type AggregateLedgerEntry = {
    _count: LedgerEntryCountAggregateOutputType | null
    _avg: LedgerEntryAvgAggregateOutputType | null
    _sum: LedgerEntrySumAggregateOutputType | null
    _min: LedgerEntryMinAggregateOutputType | null
    _max: LedgerEntryMaxAggregateOutputType | null
  }

  export type LedgerEntryAvgAggregateOutputType = {
    http_status: number | null
  }

  export type LedgerEntrySumAggregateOutputType = {
    http_status: number | null
  }

  export type LedgerEntryMinAggregateOutputType = {
    id: string | null
    task_id: string | null
    phase: string | null
    idempotency_key: string | null
    stripe_object_id: string | null
    response_status: string | null
    http_status: number | null
    created_at: Date | null
    updated_at: Date | null
  }

  export type LedgerEntryMaxAggregateOutputType = {
    id: string | null
    task_id: string | null
    phase: string | null
    idempotency_key: string | null
    stripe_object_id: string | null
    response_status: string | null
    http_status: number | null
    created_at: Date | null
    updated_at: Date | null
  }

  export type LedgerEntryCountAggregateOutputType = {
    id: number
    task_id: number
    phase: number
    idempotency_key: number
    stripe_object_id: number
    response_status: number
    http_status: number
    created_at: number
    updated_at: number
    _all: number
  }


  export type LedgerEntryAvgAggregateInputType = {
    http_status?: true
  }

  export type LedgerEntrySumAggregateInputType = {
    http_status?: true
  }

  export type LedgerEntryMinAggregateInputType = {
    id?: true
    task_id?: true
    phase?: true
    idempotency_key?: true
    stripe_object_id?: true
    response_status?: true
    http_status?: true
    created_at?: true
    updated_at?: true
  }

  export type LedgerEntryMaxAggregateInputType = {
    id?: true
    task_id?: true
    phase?: true
    idempotency_key?: true
    stripe_object_id?: true
    response_status?: true
    http_status?: true
    created_at?: true
    updated_at?: true
  }

  export type LedgerEntryCountAggregateInputType = {
    id?: true
    task_id?: true
    phase?: true
    idempotency_key?: true
    stripe_object_id?: true
    response_status?: true
    http_status?: true
    created_at?: true
    updated_at?: true
    _all?: true
  }

  export type LedgerEntryAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which LedgerEntry to aggregate.
     */
    where?: LedgerEntryWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of LedgerEntries to fetch.
     */
    orderBy?: LedgerEntryOrderByWithRelationInput | LedgerEntryOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: LedgerEntryWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` LedgerEntries from the position of the cursor.
     */
    take?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Skip the first `n` LedgerEntries.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned LedgerEntries
    **/
    _count?: true | LedgerEntryCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: LedgerEntryAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: LedgerEntrySumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: LedgerEntryMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: LedgerEntryMaxAggregateInputType
  }

  export type GetLedgerEntryAggregateType<T extends LedgerEntryAggregateArgs> = {
        [P in keyof T & keyof AggregateLedgerEntry]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateLedgerEntry[P]>
      : GetScalarType<T[P], AggregateLedgerEntry[P]>
  }




  export type LedgerEntryGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: LedgerEntryWhereInput
    orderBy?: LedgerEntryOrderByWithAggregationInput | LedgerEntryOrderByWithAggregationInput[]
    by: LedgerEntryScalarFieldEnum[] | LedgerEntryScalarFieldEnum
    having?: LedgerEntryScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: LedgerEntryCountAggregateInputType | true
    _avg?: LedgerEntryAvgAggregateInputType
    _sum?: LedgerEntrySumAggregateInputType
    _min?: LedgerEntryMinAggregateInputType
    _max?: LedgerEntryMaxAggregateInputType
  }

  export type LedgerEntryGroupByOutputType = {
    id: string
    task_id: string
    phase: string
    idempotency_key: string
    stripe_object_id: string | null
    response_status: string
    http_status: number
    created_at: Date
    updated_at: Date
    _count: LedgerEntryCountAggregateOutputType | null
    _avg: LedgerEntryAvgAggregateOutputType | null
    _sum: LedgerEntrySumAggregateOutputType | null
    _min: LedgerEntryMinAggregateOutputType | null
    _max: LedgerEntryMaxAggregateOutputType | null
  }

  type GetLedgerEntryGroupByPayload<T extends LedgerEntryGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<LedgerEntryGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof LedgerEntryGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], LedgerEntryGroupByOutputType[P]>
            : GetScalarType<T[P], LedgerEntryGroupByOutputType[P]>
        }
      >
    >


  export type LedgerEntrySelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    task_id?: boolean
    phase?: boolean
    idempotency_key?: boolean
    stripe_object_id?: boolean
    response_status?: boolean
    http_status?: boolean
    created_at?: boolean
    updated_at?: boolean
  }, ExtArgs["result"]["ledgerEntry"]>

  export type LedgerEntrySelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    task_id?: boolean
    phase?: boolean
    idempotency_key?: boolean
    stripe_object_id?: boolean
    response_status?: boolean
    http_status?: boolean
    created_at?: boolean
    updated_at?: boolean
  }, ExtArgs["result"]["ledgerEntry"]>

  export type LedgerEntrySelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    task_id?: boolean
    phase?: boolean
    idempotency_key?: boolean
    stripe_object_id?: boolean
    response_status?: boolean
    http_status?: boolean
    created_at?: boolean
    updated_at?: boolean
  }, ExtArgs["result"]["ledgerEntry"]>

  export type LedgerEntrySelectScalar = {
    id?: boolean
    task_id?: boolean
    phase?: boolean
    idempotency_key?: boolean
    stripe_object_id?: boolean
    response_status?: boolean
    http_status?: boolean
    created_at?: boolean
    updated_at?: boolean
  }

  export type LedgerEntryOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "task_id" | "phase" | "idempotency_key" | "stripe_object_id" | "response_status" | "http_status" | "created_at" | "updated_at", ExtArgs["result"]["ledgerEntry"]>

  export type $LedgerEntryPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "LedgerEntry"
    objects: {}
    scalars: $Extensions.GetPayloadResult<{
      id: string
      task_id: string
      phase: string
      idempotency_key: string
      stripe_object_id: string | null
      response_status: string
      http_status: number
      created_at: Date
      updated_at: Date
    }, ExtArgs["result"]["ledgerEntry"]>
    composites: {}
  }

  type LedgerEntryGetPayload<S extends boolean | null | undefined | LedgerEntryDefaultArgs> = $Result.GetResult<Prisma.$LedgerEntryPayload, S>

  type LedgerEntryCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<LedgerEntryFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: LedgerEntryCountAggregateInputType | true
    }

  export interface LedgerEntryDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['LedgerEntry'], meta: { name: 'LedgerEntry' } }
    /**
     * Find zero or one LedgerEntry that matches the filter.
     * @param {LedgerEntryFindUniqueArgs} args - Arguments to find a LedgerEntry
     * @example
     * // Get one LedgerEntry
     * const ledgerEntry = await prisma.ledgerEntry.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends LedgerEntryFindUniqueArgs>(args: SelectSubset<T, LedgerEntryFindUniqueArgs<ExtArgs>>): Prisma__LedgerEntryClient<$Result.GetResult<Prisma.$LedgerEntryPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one LedgerEntry that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {LedgerEntryFindUniqueOrThrowArgs} args - Arguments to find a LedgerEntry
     * @example
     * // Get one LedgerEntry
     * const ledgerEntry = await prisma.ledgerEntry.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends LedgerEntryFindUniqueOrThrowArgs>(args: SelectSubset<T, LedgerEntryFindUniqueOrThrowArgs<ExtArgs>>): Prisma__LedgerEntryClient<$Result.GetResult<Prisma.$LedgerEntryPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first LedgerEntry that matches the filter.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {LedgerEntryFindFirstArgs} args - Arguments to find a LedgerEntry
     * @example
     * // Get one LedgerEntry
     * const ledgerEntry = await prisma.ledgerEntry.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends LedgerEntryFindFirstArgs>(args?: SelectSubset<T, LedgerEntryFindFirstArgs<ExtArgs>>): Prisma__LedgerEntryClient<$Result.GetResult<Prisma.$LedgerEntryPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first LedgerEntry that matches the filter or
     * throw `PrismaKnownClientError` with `P2025` code if no matches were found.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {LedgerEntryFindFirstOrThrowArgs} args - Arguments to find a LedgerEntry
     * @example
     * // Get one LedgerEntry
     * const ledgerEntry = await prisma.ledgerEntry.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends LedgerEntryFindFirstOrThrowArgs>(args?: SelectSubset<T, LedgerEntryFindFirstOrThrowArgs<ExtArgs>>): Prisma__LedgerEntryClient<$Result.GetResult<Prisma.$LedgerEntryPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more LedgerEntries that matches the filter.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {LedgerEntryFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all LedgerEntries
     * const ledgerEntries = await prisma.ledgerEntry.findMany()
     * 
     * // Get first 10 LedgerEntries
     * const ledgerEntries = await prisma.ledgerEntry.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const ledgerEntryWithIdOnly = await prisma.ledgerEntry.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends LedgerEntryFindManyArgs>(args?: SelectSubset<T, LedgerEntryFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$LedgerEntryPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a LedgerEntry.
     * @param {LedgerEntryCreateArgs} args - Arguments to create a LedgerEntry.
     * @example
     * // Create one LedgerEntry
     * const LedgerEntry = await prisma.ledgerEntry.create({
     *   data: {
     *     // ... data to create a LedgerEntry
     *   }
     * })
     * 
     */
    create<T extends LedgerEntryCreateArgs>(args: SelectSubset<T, LedgerEntryCreateArgs<ExtArgs>>): Prisma__LedgerEntryClient<$Result.GetResult<Prisma.$LedgerEntryPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many LedgerEntries.
     * @param {LedgerEntryCreateManyArgs} args - Arguments to create many LedgerEntries.
     * @example
     * // Create many LedgerEntries
     * const ledgerEntry = await prisma.ledgerEntry.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends LedgerEntryCreateManyArgs>(args?: SelectSubset<T, LedgerEntryCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many LedgerEntries and returns the data saved in the database.
     * @param {LedgerEntryCreateManyAndReturnArgs} args - Arguments to create many LedgerEntries.
     * @example
     * // Create many LedgerEntries
     * const ledgerEntry = await prisma.ledgerEntry.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many LedgerEntries and only return the `id`
     * const ledgerEntryWithIdOnly = await prisma.ledgerEntry.createManyAndReturn({
     *   select: { id: true },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * 
     */
    createManyAndReturn<T extends LedgerEntryCreateManyAndReturnArgs>(args?: SelectSubset<T, LedgerEntryCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$LedgerEntryPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a LedgerEntry.
     * @param {LedgerEntryDeleteArgs} args - Arguments to delete one LedgerEntry.
     * @example
     * // Delete one LedgerEntry
     * const LedgerEntry = await prisma.ledgerEntry.delete({
     *   where: {
     *     // ... filter to delete one LedgerEntry
     *   }
     * })
     * 
     */
    delete<T extends LedgerEntryDeleteArgs>(args: SelectSubset<T, LedgerEntryDeleteArgs<ExtArgs>>): Prisma__LedgerEntryClient<$Result.GetResult<Prisma.$LedgerEntryPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one LedgerEntry.
     * @param {LedgerEntryUpdateArgs} args - Arguments to update one LedgerEntry.
     * @example
     * // Update one LedgerEntry
     * const ledgerEntry = await prisma.ledgerEntry.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends LedgerEntryUpdateArgs>(args: SelectSubset<T, LedgerEntryUpdateArgs<ExtArgs>>): Prisma__LedgerEntryClient<$Result.GetResult<Prisma.$LedgerEntryPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more LedgerEntries.
     * @param {LedgerEntryDeleteManyArgs} args - Arguments to filter LedgerEntries to delete.
     * @example
     * // Delete a few LedgerEntries
     * const { count } = await prisma.ledgerEntry.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends LedgerEntryDeleteManyArgs>(args?: SelectSubset<T, LedgerEntryDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more LedgerEntries.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {LedgerEntryUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many LedgerEntries
     * const ledgerEntry = await prisma.ledgerEntry.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends LedgerEntryUpdateManyArgs>(args: SelectSubset<T, LedgerEntryUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more LedgerEntries and returns the data updated in the database.
     * @param {LedgerEntryUpdateManyAndReturnArgs} args - Arguments to update many LedgerEntries.
     * @example
     * // Update many LedgerEntries
     * const ledgerEntry = await prisma.ledgerEntry.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more LedgerEntries and only return the `id`
     * const ledgerEntryWithIdOnly = await prisma.ledgerEntry.updateManyAndReturn({
     *   select: { id: true },
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * 
     */
    updateManyAndReturn<T extends LedgerEntryUpdateManyAndReturnArgs>(args: SelectSubset<T, LedgerEntryUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$LedgerEntryPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one LedgerEntry.
     * @param {LedgerEntryUpsertArgs} args - Arguments to update or create a LedgerEntry.
     * @example
     * // Update or create a LedgerEntry
     * const ledgerEntry = await prisma.ledgerEntry.upsert({
     *   create: {
     *     // ... data to create a LedgerEntry
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the LedgerEntry we want to update
     *   }
     * })
     */
    upsert<T extends LedgerEntryUpsertArgs>(args: SelectSubset<T, LedgerEntryUpsertArgs<ExtArgs>>): Prisma__LedgerEntryClient<$Result.GetResult<Prisma.$LedgerEntryPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of LedgerEntries.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {LedgerEntryCountArgs} args - Arguments to filter LedgerEntries to count.
     * @example
     * // Count the number of LedgerEntries
     * const count = await prisma.ledgerEntry.count({
     *   where: {
     *     // ... the filter for the LedgerEntries we want to count
     *   }
     * })
    **/
    count<T extends LedgerEntryCountArgs>(
      args?: Subset<T, LedgerEntryCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], LedgerEntryCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a LedgerEntry.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {LedgerEntryAggregateArgs} args - Select which aggregations you would like to apply and on what fields.
     * @example
     * // Ordered by age ascending
     * // Where email contains prisma.io
     * // Limited to the 10 users
     * const aggregations = await prisma.user.aggregate({
     *   _avg: {
     *     age: true,
     *   },
     *   where: {
     *     email: {
     *       contains: "prisma.io",
     *     },
     *   },
     *   orderBy: {
     *     age: "asc",
     *   },
     *   take: 10,
     * })
    **/
    aggregate<T extends LedgerEntryAggregateArgs>(args: Subset<T, LedgerEntryAggregateArgs>): Prisma.PrismaPromise<GetLedgerEntryAggregateType<T>>

    /**
     * Group by LedgerEntry.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {LedgerEntryGroupByArgs} args - Group by arguments.
     * @example
     * // Group by city, order by createdAt, get count
     * const result = await prisma.user.groupBy({
     *   by: ['city', 'createdAt'],
     *   orderBy: {
     *     createdAt: true
     *   },
     *   _count: {
     *     _all: true
     *   },
     * })
     * 
    **/
    groupBy<
      T extends LedgerEntryGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: LedgerEntryGroupByArgs['orderBy'] }
        : { orderBy?: LedgerEntryGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, LedgerEntryGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetLedgerEntryGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the LedgerEntry model
   */
  readonly fields: LedgerEntryFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for LedgerEntry.
   * Why is this prefixed with `Prisma__`?
   * Because we want to prevent naming conflicts as mentioned in
   * https://github.com/prisma/prisma-client-js/issues/707
   */
  export interface Prisma__LedgerEntryClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the LedgerEntry model
   */
  interface LedgerEntryFieldRefs {
    readonly id: FieldRef<"LedgerEntry", 'String'>
    readonly task_id: FieldRef<"LedgerEntry", 'String'>
    readonly phase: FieldRef<"LedgerEntry", 'String'>
    readonly idempotency_key: FieldRef<"LedgerEntry", 'String'>
    readonly stripe_object_id: FieldRef<"LedgerEntry", 'String'>
    readonly response_status: FieldRef<"LedgerEntry", 'String'>
    readonly http_status: FieldRef<"LedgerEntry", 'Int'>
    readonly created_at: FieldRef<"LedgerEntry", 'DateTime'>
    readonly updated_at: FieldRef<"LedgerEntry", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * LedgerEntry findUnique
   */
  export type LedgerEntryFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the LedgerEntry
     */
    select?: LedgerEntrySelect<ExtArgs> | null
    /**
     * Omit specific fields from the LedgerEntry
     */
    omit?: LedgerEntryOmit<ExtArgs> | null
    /**
     * Filter, which LedgerEntry to fetch.
     */
    where: LedgerEntryWhereUniqueInput
  }

  /**
   * LedgerEntry findUniqueOrThrow
   */
  export type LedgerEntryFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the LedgerEntry
     */
    select?: LedgerEntrySelect<ExtArgs> | null
    /**
     * Omit specific fields from the LedgerEntry
     */
    omit?: LedgerEntryOmit<ExtArgs> | null
    /**
     * Filter, which LedgerEntry to fetch.
     */
    where: LedgerEntryWhereUniqueInput
  }

  /**
   * LedgerEntry findFirst
   */
  export type LedgerEntryFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the LedgerEntry
     */
    select?: LedgerEntrySelect<ExtArgs> | null
    /**
     * Omit specific fields from the LedgerEntry
     */
    omit?: LedgerEntryOmit<ExtArgs> | null
    /**
     * Filter, which LedgerEntry to fetch.
     */
    where?: LedgerEntryWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of LedgerEntries to fetch.
     */
    orderBy?: LedgerEntryOrderByWithRelationInput | LedgerEntryOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for LedgerEntries.
     */
    cursor?: LedgerEntryWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` LedgerEntries from the position of the cursor.
     */
    take?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Skip the first `n` LedgerEntries.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of LedgerEntries.
     */
    distinct?: LedgerEntryScalarFieldEnum | LedgerEntryScalarFieldEnum[]
  }

  /**
   * LedgerEntry findFirstOrThrow
   */
  export type LedgerEntryFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the LedgerEntry
     */
    select?: LedgerEntrySelect<ExtArgs> | null
    /**
     * Omit specific fields from the LedgerEntry
     */
    omit?: LedgerEntryOmit<ExtArgs> | null
    /**
     * Filter, which LedgerEntry to fetch.
     */
    where?: LedgerEntryWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of LedgerEntries to fetch.
     */
    orderBy?: LedgerEntryOrderByWithRelationInput | LedgerEntryOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for LedgerEntries.
     */
    cursor?: LedgerEntryWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` LedgerEntries from the position of the cursor.
     */
    take?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Skip the first `n` LedgerEntries.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of LedgerEntries.
     */
    distinct?: LedgerEntryScalarFieldEnum | LedgerEntryScalarFieldEnum[]
  }

  /**
   * LedgerEntry findMany
   */
  export type LedgerEntryFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the LedgerEntry
     */
    select?: LedgerEntrySelect<ExtArgs> | null
    /**
     * Omit specific fields from the LedgerEntry
     */
    omit?: LedgerEntryOmit<ExtArgs> | null
    /**
     * Filter, which LedgerEntries to fetch.
     */
    where?: LedgerEntryWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of LedgerEntries to fetch.
     */
    orderBy?: LedgerEntryOrderByWithRelationInput | LedgerEntryOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing LedgerEntries.
     */
    cursor?: LedgerEntryWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` LedgerEntries from the position of the cursor.
     */
    take?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Skip the first `n` LedgerEntries.
     */
    skip?: number
    distinct?: LedgerEntryScalarFieldEnum | LedgerEntryScalarFieldEnum[]
  }

  /**
   * LedgerEntry create
   */
  export type LedgerEntryCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the LedgerEntry
     */
    select?: LedgerEntrySelect<ExtArgs> | null
    /**
     * Omit specific fields from the LedgerEntry
     */
    omit?: LedgerEntryOmit<ExtArgs> | null
    /**
     * The data needed to create a LedgerEntry.
     */
    data: XOR<LedgerEntryCreateInput, LedgerEntryUncheckedCreateInput>
  }

  /**
   * LedgerEntry createMany
   */
  export type LedgerEntryCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many LedgerEntries.
     */
    data: LedgerEntryCreateManyInput | LedgerEntryCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * LedgerEntry createManyAndReturn
   */
  export type LedgerEntryCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the LedgerEntry
     */
    select?: LedgerEntrySelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the LedgerEntry
     */
    omit?: LedgerEntryOmit<ExtArgs> | null
    /**
     * The data used to create many LedgerEntries.
     */
    data: LedgerEntryCreateManyInput | LedgerEntryCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * LedgerEntry update
   */
  export type LedgerEntryUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the LedgerEntry
     */
    select?: LedgerEntrySelect<ExtArgs> | null
    /**
     * Omit specific fields from the LedgerEntry
     */
    omit?: LedgerEntryOmit<ExtArgs> | null
    /**
     * The data needed to update a LedgerEntry.
     */
    data: XOR<LedgerEntryUpdateInput, LedgerEntryUncheckedUpdateInput>
    /**
     * Choose, which LedgerEntry to update.
     */
    where: LedgerEntryWhereUniqueInput
  }

  /**
   * LedgerEntry updateMany
   */
  export type LedgerEntryUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update LedgerEntries.
     */
    data: XOR<LedgerEntryUpdateManyMutationInput, LedgerEntryUncheckedUpdateManyInput>
    /**
     * Filter which LedgerEntries to update
     */
    where?: LedgerEntryWhereInput
    /**
     * Limit how many LedgerEntries to update.
     */
    limit?: number
  }

  /**
   * LedgerEntry updateManyAndReturn
   */
  export type LedgerEntryUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the LedgerEntry
     */
    select?: LedgerEntrySelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the LedgerEntry
     */
    omit?: LedgerEntryOmit<ExtArgs> | null
    /**
     * The data used to update LedgerEntries.
     */
    data: XOR<LedgerEntryUpdateManyMutationInput, LedgerEntryUncheckedUpdateManyInput>
    /**
     * Filter which LedgerEntries to update
     */
    where?: LedgerEntryWhereInput
    /**
     * Limit how many LedgerEntries to update.
     */
    limit?: number
  }

  /**
   * LedgerEntry upsert
   */
  export type LedgerEntryUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the LedgerEntry
     */
    select?: LedgerEntrySelect<ExtArgs> | null
    /**
     * Omit specific fields from the LedgerEntry
     */
    omit?: LedgerEntryOmit<ExtArgs> | null
    /**
     * The filter to search for the LedgerEntry to update in case it exists.
     */
    where: LedgerEntryWhereUniqueInput
    /**
     * In case the LedgerEntry found by the `where` argument doesn't exist, create a new LedgerEntry with this data.
     */
    create: XOR<LedgerEntryCreateInput, LedgerEntryUncheckedCreateInput>
    /**
     * In case the LedgerEntry was found with the provided `where` argument, update it with this data.
     */
    update: XOR<LedgerEntryUpdateInput, LedgerEntryUncheckedUpdateInput>
  }

  /**
   * LedgerEntry delete
   */
  export type LedgerEntryDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the LedgerEntry
     */
    select?: LedgerEntrySelect<ExtArgs> | null
    /**
     * Omit specific fields from the LedgerEntry
     */
    omit?: LedgerEntryOmit<ExtArgs> | null
    /**
     * Filter which LedgerEntry to delete.
     */
    where: LedgerEntryWhereUniqueInput
  }

  /**
   * LedgerEntry deleteMany
   */
  export type LedgerEntryDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which LedgerEntries to delete
     */
    where?: LedgerEntryWhereInput
    /**
     * Limit how many LedgerEntries to delete.
     */
    limit?: number
  }

  /**
   * LedgerEntry without action
   */
  export type LedgerEntryDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the LedgerEntry
     */
    select?: LedgerEntrySelect<ExtArgs> | null
    /**
     * Omit specific fields from the LedgerEntry
     */
    omit?: LedgerEntryOmit<ExtArgs> | null
  }


  /**
   * Model AgentProfile
   */

  export type AggregateAgentProfile = {
    _count: AgentProfileCountAggregateOutputType | null
    _avg: AgentProfileAvgAggregateOutputType | null
    _sum: AgentProfileSumAggregateOutputType | null
    _min: AgentProfileMinAggregateOutputType | null
    _max: AgentProfileMaxAggregateOutputType | null
  }

  export type AgentProfileAvgAggregateOutputType = {
    staked_amount: number | null
  }

  export type AgentProfileSumAggregateOutputType = {
    staked_amount: number | null
  }

  export type AgentProfileMinAggregateOutputType = {
    id: string | null
    agent_id: string | null
    type: string | null
    wallet_address: string | null
    status: $Enums.AgentStatus | null
    discovery_source: string | null
    created_at: Date | null
    updated_at: Date | null
    crypto_address: string | null
    mcp_endpoint: string | null
    staked_amount: number | null
    tier: string | null
  }

  export type AgentProfileMaxAggregateOutputType = {
    id: string | null
    agent_id: string | null
    type: string | null
    wallet_address: string | null
    status: $Enums.AgentStatus | null
    discovery_source: string | null
    created_at: Date | null
    updated_at: Date | null
    crypto_address: string | null
    mcp_endpoint: string | null
    staked_amount: number | null
    tier: string | null
  }

  export type AgentProfileCountAggregateOutputType = {
    id: number
    agent_id: number
    type: number
    wallet_address: number
    status: number
    capabilities: number
    contact_endpoints: number
    discovery_source: number
    created_at: number
    updated_at: number
    crypto_address: number
    mcp_endpoint: number
    staked_amount: number
    tier: number
    _all: number
  }


  export type AgentProfileAvgAggregateInputType = {
    staked_amount?: true
  }

  export type AgentProfileSumAggregateInputType = {
    staked_amount?: true
  }

  export type AgentProfileMinAggregateInputType = {
    id?: true
    agent_id?: true
    type?: true
    wallet_address?: true
    status?: true
    discovery_source?: true
    created_at?: true
    updated_at?: true
    crypto_address?: true
    mcp_endpoint?: true
    staked_amount?: true
    tier?: true
  }

  export type AgentProfileMaxAggregateInputType = {
    id?: true
    agent_id?: true
    type?: true
    wallet_address?: true
    status?: true
    discovery_source?: true
    created_at?: true
    updated_at?: true
    crypto_address?: true
    mcp_endpoint?: true
    staked_amount?: true
    tier?: true
  }

  export type AgentProfileCountAggregateInputType = {
    id?: true
    agent_id?: true
    type?: true
    wallet_address?: true
    status?: true
    capabilities?: true
    contact_endpoints?: true
    discovery_source?: true
    created_at?: true
    updated_at?: true
    crypto_address?: true
    mcp_endpoint?: true
    staked_amount?: true
    tier?: true
    _all?: true
  }

  export type AgentProfileAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which AgentProfile to aggregate.
     */
    where?: AgentProfileWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AgentProfiles to fetch.
     */
    orderBy?: AgentProfileOrderByWithRelationInput | AgentProfileOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: AgentProfileWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AgentProfiles from the position of the cursor.
     */
    take?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Skip the first `n` AgentProfiles.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned AgentProfiles
    **/
    _count?: true | AgentProfileCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: AgentProfileAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: AgentProfileSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: AgentProfileMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: AgentProfileMaxAggregateInputType
  }

  export type GetAgentProfileAggregateType<T extends AgentProfileAggregateArgs> = {
        [P in keyof T & keyof AggregateAgentProfile]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateAgentProfile[P]>
      : GetScalarType<T[P], AggregateAgentProfile[P]>
  }




  export type AgentProfileGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: AgentProfileWhereInput
    orderBy?: AgentProfileOrderByWithAggregationInput | AgentProfileOrderByWithAggregationInput[]
    by: AgentProfileScalarFieldEnum[] | AgentProfileScalarFieldEnum
    having?: AgentProfileScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: AgentProfileCountAggregateInputType | true
    _avg?: AgentProfileAvgAggregateInputType
    _sum?: AgentProfileSumAggregateInputType
    _min?: AgentProfileMinAggregateInputType
    _max?: AgentProfileMaxAggregateInputType
  }

  export type AgentProfileGroupByOutputType = {
    id: string
    agent_id: string
    type: string
    wallet_address: string | null
    status: $Enums.AgentStatus
    capabilities: JsonValue | null
    contact_endpoints: JsonValue | null
    discovery_source: string | null
    created_at: Date
    updated_at: Date
    crypto_address: string | null
    mcp_endpoint: string | null
    staked_amount: number
    tier: string
    _count: AgentProfileCountAggregateOutputType | null
    _avg: AgentProfileAvgAggregateOutputType | null
    _sum: AgentProfileSumAggregateOutputType | null
    _min: AgentProfileMinAggregateOutputType | null
    _max: AgentProfileMaxAggregateOutputType | null
  }

  type GetAgentProfileGroupByPayload<T extends AgentProfileGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<AgentProfileGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof AgentProfileGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], AgentProfileGroupByOutputType[P]>
            : GetScalarType<T[P], AgentProfileGroupByOutputType[P]>
        }
      >
    >


  export type AgentProfileSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    agent_id?: boolean
    type?: boolean
    wallet_address?: boolean
    status?: boolean
    capabilities?: boolean
    contact_endpoints?: boolean
    discovery_source?: boolean
    created_at?: boolean
    updated_at?: boolean
    crypto_address?: boolean
    mcp_endpoint?: boolean
    staked_amount?: boolean
    tier?: boolean
    tasks_as_scout?: boolean | AgentProfile$tasks_as_scoutArgs<ExtArgs>
    tasks_as_builder?: boolean | AgentProfile$tasks_as_builderArgs<ExtArgs>
    claims?: boolean | AgentProfile$claimsArgs<ExtArgs>
    scout_reputation?: boolean | AgentProfile$scout_reputationArgs<ExtArgs>
    affiliate_ledger?: boolean | AgentProfile$affiliate_ledgerArgs<ExtArgs>
    bid_proposals?: boolean | AgentProfile$bid_proposalsArgs<ExtArgs>
    arbitrations_as_builder?: boolean | AgentProfile$arbitrations_as_builderArgs<ExtArgs>
    arbitrations_as_evaluator?: boolean | AgentProfile$arbitrations_as_evaluatorArgs<ExtArgs>
    arbitration_votes?: boolean | AgentProfile$arbitration_votesArgs<ExtArgs>
    created_projects?: boolean | AgentProfile$created_projectsArgs<ExtArgs>
    slashing_events?: boolean | AgentProfile$slashing_eventsArgs<ExtArgs>
    _count?: boolean | AgentProfileCountOutputTypeDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["agentProfile"]>

  export type AgentProfileSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    agent_id?: boolean
    type?: boolean
    wallet_address?: boolean
    status?: boolean
    capabilities?: boolean
    contact_endpoints?: boolean
    discovery_source?: boolean
    created_at?: boolean
    updated_at?: boolean
    crypto_address?: boolean
    mcp_endpoint?: boolean
    staked_amount?: boolean
    tier?: boolean
  }, ExtArgs["result"]["agentProfile"]>

  export type AgentProfileSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    agent_id?: boolean
    type?: boolean
    wallet_address?: boolean
    status?: boolean
    capabilities?: boolean
    contact_endpoints?: boolean
    discovery_source?: boolean
    created_at?: boolean
    updated_at?: boolean
    crypto_address?: boolean
    mcp_endpoint?: boolean
    staked_amount?: boolean
    tier?: boolean
  }, ExtArgs["result"]["agentProfile"]>

  export type AgentProfileSelectScalar = {
    id?: boolean
    agent_id?: boolean
    type?: boolean
    wallet_address?: boolean
    status?: boolean
    capabilities?: boolean
    contact_endpoints?: boolean
    discovery_source?: boolean
    created_at?: boolean
    updated_at?: boolean
    crypto_address?: boolean
    mcp_endpoint?: boolean
    staked_amount?: boolean
    tier?: boolean
  }

  export type AgentProfileOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "agent_id" | "type" | "wallet_address" | "status" | "capabilities" | "contact_endpoints" | "discovery_source" | "created_at" | "updated_at" | "crypto_address" | "mcp_endpoint" | "staked_amount" | "tier", ExtArgs["result"]["agentProfile"]>
  export type AgentProfileInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    tasks_as_scout?: boolean | AgentProfile$tasks_as_scoutArgs<ExtArgs>
    tasks_as_builder?: boolean | AgentProfile$tasks_as_builderArgs<ExtArgs>
    claims?: boolean | AgentProfile$claimsArgs<ExtArgs>
    scout_reputation?: boolean | AgentProfile$scout_reputationArgs<ExtArgs>
    affiliate_ledger?: boolean | AgentProfile$affiliate_ledgerArgs<ExtArgs>
    bid_proposals?: boolean | AgentProfile$bid_proposalsArgs<ExtArgs>
    arbitrations_as_builder?: boolean | AgentProfile$arbitrations_as_builderArgs<ExtArgs>
    arbitrations_as_evaluator?: boolean | AgentProfile$arbitrations_as_evaluatorArgs<ExtArgs>
    arbitration_votes?: boolean | AgentProfile$arbitration_votesArgs<ExtArgs>
    created_projects?: boolean | AgentProfile$created_projectsArgs<ExtArgs>
    slashing_events?: boolean | AgentProfile$slashing_eventsArgs<ExtArgs>
    _count?: boolean | AgentProfileCountOutputTypeDefaultArgs<ExtArgs>
  }
  export type AgentProfileIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {}
  export type AgentProfileIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {}

  export type $AgentProfilePayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "AgentProfile"
    objects: {
      tasks_as_scout: Prisma.$TaskPayload<ExtArgs>[]
      tasks_as_builder: Prisma.$TaskPayload<ExtArgs>[]
      claims: Prisma.$ClaimPayload<ExtArgs>[]
      scout_reputation: Prisma.$ScoutReputationPayload<ExtArgs> | null
      affiliate_ledger: Prisma.$AffiliateLedgerPayload<ExtArgs>[]
      bid_proposals: Prisma.$BidProposalPayload<ExtArgs>[]
      arbitrations_as_builder: Prisma.$ArbitrationPayload<ExtArgs>[]
      arbitrations_as_evaluator: Prisma.$ArbitrationPayload<ExtArgs>[]
      arbitration_votes: Prisma.$ArbitrationVotePayload<ExtArgs>[]
      created_projects: Prisma.$AgentProjectPayload<ExtArgs>[]
      slashing_events: Prisma.$SlashingEventPayload<ExtArgs>[]
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      agent_id: string
      type: string
      wallet_address: string | null
      status: $Enums.AgentStatus
      capabilities: Prisma.JsonValue | null
      contact_endpoints: Prisma.JsonValue | null
      discovery_source: string | null
      created_at: Date
      updated_at: Date
      crypto_address: string | null
      mcp_endpoint: string | null
      staked_amount: number
      tier: string
    }, ExtArgs["result"]["agentProfile"]>
    composites: {}
  }

  type AgentProfileGetPayload<S extends boolean | null | undefined | AgentProfileDefaultArgs> = $Result.GetResult<Prisma.$AgentProfilePayload, S>

  type AgentProfileCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<AgentProfileFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: AgentProfileCountAggregateInputType | true
    }

  export interface AgentProfileDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['AgentProfile'], meta: { name: 'AgentProfile' } }
    /**
     * Find zero or one AgentProfile that matches the filter.
     * @param {AgentProfileFindUniqueArgs} args - Arguments to find a AgentProfile
     * @example
     * // Get one AgentProfile
     * const agentProfile = await prisma.agentProfile.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends AgentProfileFindUniqueArgs>(args: SelectSubset<T, AgentProfileFindUniqueArgs<ExtArgs>>): Prisma__AgentProfileClient<$Result.GetResult<Prisma.$AgentProfilePayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one AgentProfile that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {AgentProfileFindUniqueOrThrowArgs} args - Arguments to find a AgentProfile
     * @example
     * // Get one AgentProfile
     * const agentProfile = await prisma.agentProfile.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends AgentProfileFindUniqueOrThrowArgs>(args: SelectSubset<T, AgentProfileFindUniqueOrThrowArgs<ExtArgs>>): Prisma__AgentProfileClient<$Result.GetResult<Prisma.$AgentProfilePayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first AgentProfile that matches the filter.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AgentProfileFindFirstArgs} args - Arguments to find a AgentProfile
     * @example
     * // Get one AgentProfile
     * const agentProfile = await prisma.agentProfile.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends AgentProfileFindFirstArgs>(args?: SelectSubset<T, AgentProfileFindFirstArgs<ExtArgs>>): Prisma__AgentProfileClient<$Result.GetResult<Prisma.$AgentProfilePayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first AgentProfile that matches the filter or
     * throw `PrismaKnownClientError` with `P2025` code if no matches were found.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AgentProfileFindFirstOrThrowArgs} args - Arguments to find a AgentProfile
     * @example
     * // Get one AgentProfile
     * const agentProfile = await prisma.agentProfile.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends AgentProfileFindFirstOrThrowArgs>(args?: SelectSubset<T, AgentProfileFindFirstOrThrowArgs<ExtArgs>>): Prisma__AgentProfileClient<$Result.GetResult<Prisma.$AgentProfilePayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more AgentProfiles that matches the filter.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AgentProfileFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all AgentProfiles
     * const agentProfiles = await prisma.agentProfile.findMany()
     * 
     * // Get first 10 AgentProfiles
     * const agentProfiles = await prisma.agentProfile.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const agentProfileWithIdOnly = await prisma.agentProfile.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends AgentProfileFindManyArgs>(args?: SelectSubset<T, AgentProfileFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AgentProfilePayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a AgentProfile.
     * @param {AgentProfileCreateArgs} args - Arguments to create a AgentProfile.
     * @example
     * // Create one AgentProfile
     * const AgentProfile = await prisma.agentProfile.create({
     *   data: {
     *     // ... data to create a AgentProfile
     *   }
     * })
     * 
     */
    create<T extends AgentProfileCreateArgs>(args: SelectSubset<T, AgentProfileCreateArgs<ExtArgs>>): Prisma__AgentProfileClient<$Result.GetResult<Prisma.$AgentProfilePayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many AgentProfiles.
     * @param {AgentProfileCreateManyArgs} args - Arguments to create many AgentProfiles.
     * @example
     * // Create many AgentProfiles
     * const agentProfile = await prisma.agentProfile.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends AgentProfileCreateManyArgs>(args?: SelectSubset<T, AgentProfileCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many AgentProfiles and returns the data saved in the database.
     * @param {AgentProfileCreateManyAndReturnArgs} args - Arguments to create many AgentProfiles.
     * @example
     * // Create many AgentProfiles
     * const agentProfile = await prisma.agentProfile.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many AgentProfiles and only return the `id`
     * const agentProfileWithIdOnly = await prisma.agentProfile.createManyAndReturn({
     *   select: { id: true },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * 
     */
    createManyAndReturn<T extends AgentProfileCreateManyAndReturnArgs>(args?: SelectSubset<T, AgentProfileCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AgentProfilePayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a AgentProfile.
     * @param {AgentProfileDeleteArgs} args - Arguments to delete one AgentProfile.
     * @example
     * // Delete one AgentProfile
     * const AgentProfile = await prisma.agentProfile.delete({
     *   where: {
     *     // ... filter to delete one AgentProfile
     *   }
     * })
     * 
     */
    delete<T extends AgentProfileDeleteArgs>(args: SelectSubset<T, AgentProfileDeleteArgs<ExtArgs>>): Prisma__AgentProfileClient<$Result.GetResult<Prisma.$AgentProfilePayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one AgentProfile.
     * @param {AgentProfileUpdateArgs} args - Arguments to update one AgentProfile.
     * @example
     * // Update one AgentProfile
     * const agentProfile = await prisma.agentProfile.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends AgentProfileUpdateArgs>(args: SelectSubset<T, AgentProfileUpdateArgs<ExtArgs>>): Prisma__AgentProfileClient<$Result.GetResult<Prisma.$AgentProfilePayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more AgentProfiles.
     * @param {AgentProfileDeleteManyArgs} args - Arguments to filter AgentProfiles to delete.
     * @example
     * // Delete a few AgentProfiles
     * const { count } = await prisma.agentProfile.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends AgentProfileDeleteManyArgs>(args?: SelectSubset<T, AgentProfileDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more AgentProfiles.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AgentProfileUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many AgentProfiles
     * const agentProfile = await prisma.agentProfile.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends AgentProfileUpdateManyArgs>(args: SelectSubset<T, AgentProfileUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more AgentProfiles and returns the data updated in the database.
     * @param {AgentProfileUpdateManyAndReturnArgs} args - Arguments to update many AgentProfiles.
     * @example
     * // Update many AgentProfiles
     * const agentProfile = await prisma.agentProfile.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more AgentProfiles and only return the `id`
     * const agentProfileWithIdOnly = await prisma.agentProfile.updateManyAndReturn({
     *   select: { id: true },
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * 
     */
    updateManyAndReturn<T extends AgentProfileUpdateManyAndReturnArgs>(args: SelectSubset<T, AgentProfileUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AgentProfilePayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one AgentProfile.
     * @param {AgentProfileUpsertArgs} args - Arguments to update or create a AgentProfile.
     * @example
     * // Update or create a AgentProfile
     * const agentProfile = await prisma.agentProfile.upsert({
     *   create: {
     *     // ... data to create a AgentProfile
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the AgentProfile we want to update
     *   }
     * })
     */
    upsert<T extends AgentProfileUpsertArgs>(args: SelectSubset<T, AgentProfileUpsertArgs<ExtArgs>>): Prisma__AgentProfileClient<$Result.GetResult<Prisma.$AgentProfilePayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of AgentProfiles.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AgentProfileCountArgs} args - Arguments to filter AgentProfiles to count.
     * @example
     * // Count the number of AgentProfiles
     * const count = await prisma.agentProfile.count({
     *   where: {
     *     // ... the filter for the AgentProfiles we want to count
     *   }
     * })
    **/
    count<T extends AgentProfileCountArgs>(
      args?: Subset<T, AgentProfileCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], AgentProfileCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a AgentProfile.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AgentProfileAggregateArgs} args - Select which aggregations you would like to apply and on what fields.
     * @example
     * // Ordered by age ascending
     * // Where email contains prisma.io
     * // Limited to the 10 users
     * const aggregations = await prisma.user.aggregate({
     *   _avg: {
     *     age: true,
     *   },
     *   where: {
     *     email: {
     *       contains: "prisma.io",
     *     },
     *   },
     *   orderBy: {
     *     age: "asc",
     *   },
     *   take: 10,
     * })
    **/
    aggregate<T extends AgentProfileAggregateArgs>(args: Subset<T, AgentProfileAggregateArgs>): Prisma.PrismaPromise<GetAgentProfileAggregateType<T>>

    /**
     * Group by AgentProfile.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AgentProfileGroupByArgs} args - Group by arguments.
     * @example
     * // Group by city, order by createdAt, get count
     * const result = await prisma.user.groupBy({
     *   by: ['city', 'createdAt'],
     *   orderBy: {
     *     createdAt: true
     *   },
     *   _count: {
     *     _all: true
     *   },
     * })
     * 
    **/
    groupBy<
      T extends AgentProfileGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: AgentProfileGroupByArgs['orderBy'] }
        : { orderBy?: AgentProfileGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, AgentProfileGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetAgentProfileGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the AgentProfile model
   */
  readonly fields: AgentProfileFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for AgentProfile.
   * Why is this prefixed with `Prisma__`?
   * Because we want to prevent naming conflicts as mentioned in
   * https://github.com/prisma/prisma-client-js/issues/707
   */
  export interface Prisma__AgentProfileClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    tasks_as_scout<T extends AgentProfile$tasks_as_scoutArgs<ExtArgs> = {}>(args?: Subset<T, AgentProfile$tasks_as_scoutArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$TaskPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    tasks_as_builder<T extends AgentProfile$tasks_as_builderArgs<ExtArgs> = {}>(args?: Subset<T, AgentProfile$tasks_as_builderArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$TaskPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    claims<T extends AgentProfile$claimsArgs<ExtArgs> = {}>(args?: Subset<T, AgentProfile$claimsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$ClaimPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    scout_reputation<T extends AgentProfile$scout_reputationArgs<ExtArgs> = {}>(args?: Subset<T, AgentProfile$scout_reputationArgs<ExtArgs>>): Prisma__ScoutReputationClient<$Result.GetResult<Prisma.$ScoutReputationPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>
    affiliate_ledger<T extends AgentProfile$affiliate_ledgerArgs<ExtArgs> = {}>(args?: Subset<T, AgentProfile$affiliate_ledgerArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AffiliateLedgerPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    bid_proposals<T extends AgentProfile$bid_proposalsArgs<ExtArgs> = {}>(args?: Subset<T, AgentProfile$bid_proposalsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$BidProposalPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    arbitrations_as_builder<T extends AgentProfile$arbitrations_as_builderArgs<ExtArgs> = {}>(args?: Subset<T, AgentProfile$arbitrations_as_builderArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$ArbitrationPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    arbitrations_as_evaluator<T extends AgentProfile$arbitrations_as_evaluatorArgs<ExtArgs> = {}>(args?: Subset<T, AgentProfile$arbitrations_as_evaluatorArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$ArbitrationPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    arbitration_votes<T extends AgentProfile$arbitration_votesArgs<ExtArgs> = {}>(args?: Subset<T, AgentProfile$arbitration_votesArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$ArbitrationVotePayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    created_projects<T extends AgentProfile$created_projectsArgs<ExtArgs> = {}>(args?: Subset<T, AgentProfile$created_projectsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AgentProjectPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    slashing_events<T extends AgentProfile$slashing_eventsArgs<ExtArgs> = {}>(args?: Subset<T, AgentProfile$slashing_eventsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$SlashingEventPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the AgentProfile model
   */
  interface AgentProfileFieldRefs {
    readonly id: FieldRef<"AgentProfile", 'String'>
    readonly agent_id: FieldRef<"AgentProfile", 'String'>
    readonly type: FieldRef<"AgentProfile", 'String'>
    readonly wallet_address: FieldRef<"AgentProfile", 'String'>
    readonly status: FieldRef<"AgentProfile", 'AgentStatus'>
    readonly capabilities: FieldRef<"AgentProfile", 'Json'>
    readonly contact_endpoints: FieldRef<"AgentProfile", 'Json'>
    readonly discovery_source: FieldRef<"AgentProfile", 'String'>
    readonly created_at: FieldRef<"AgentProfile", 'DateTime'>
    readonly updated_at: FieldRef<"AgentProfile", 'DateTime'>
    readonly crypto_address: FieldRef<"AgentProfile", 'String'>
    readonly mcp_endpoint: FieldRef<"AgentProfile", 'String'>
    readonly staked_amount: FieldRef<"AgentProfile", 'Int'>
    readonly tier: FieldRef<"AgentProfile", 'String'>
  }
    

  // Custom InputTypes
  /**
   * AgentProfile findUnique
   */
  export type AgentProfileFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentProfile
     */
    select?: AgentProfileSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentProfile
     */
    omit?: AgentProfileOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AgentProfileInclude<ExtArgs> | null
    /**
     * Filter, which AgentProfile to fetch.
     */
    where: AgentProfileWhereUniqueInput
  }

  /**
   * AgentProfile findUniqueOrThrow
   */
  export type AgentProfileFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentProfile
     */
    select?: AgentProfileSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentProfile
     */
    omit?: AgentProfileOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AgentProfileInclude<ExtArgs> | null
    /**
     * Filter, which AgentProfile to fetch.
     */
    where: AgentProfileWhereUniqueInput
  }

  /**
   * AgentProfile findFirst
   */
  export type AgentProfileFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentProfile
     */
    select?: AgentProfileSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentProfile
     */
    omit?: AgentProfileOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AgentProfileInclude<ExtArgs> | null
    /**
     * Filter, which AgentProfile to fetch.
     */
    where?: AgentProfileWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AgentProfiles to fetch.
     */
    orderBy?: AgentProfileOrderByWithRelationInput | AgentProfileOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for AgentProfiles.
     */
    cursor?: AgentProfileWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AgentProfiles from the position of the cursor.
     */
    take?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Skip the first `n` AgentProfiles.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of AgentProfiles.
     */
    distinct?: AgentProfileScalarFieldEnum | AgentProfileScalarFieldEnum[]
  }

  /**
   * AgentProfile findFirstOrThrow
   */
  export type AgentProfileFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentProfile
     */
    select?: AgentProfileSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentProfile
     */
    omit?: AgentProfileOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AgentProfileInclude<ExtArgs> | null
    /**
     * Filter, which AgentProfile to fetch.
     */
    where?: AgentProfileWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AgentProfiles to fetch.
     */
    orderBy?: AgentProfileOrderByWithRelationInput | AgentProfileOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for AgentProfiles.
     */
    cursor?: AgentProfileWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AgentProfiles from the position of the cursor.
     */
    take?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Skip the first `n` AgentProfiles.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of AgentProfiles.
     */
    distinct?: AgentProfileScalarFieldEnum | AgentProfileScalarFieldEnum[]
  }

  /**
   * AgentProfile findMany
   */
  export type AgentProfileFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentProfile
     */
    select?: AgentProfileSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentProfile
     */
    omit?: AgentProfileOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AgentProfileInclude<ExtArgs> | null
    /**
     * Filter, which AgentProfiles to fetch.
     */
    where?: AgentProfileWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AgentProfiles to fetch.
     */
    orderBy?: AgentProfileOrderByWithRelationInput | AgentProfileOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing AgentProfiles.
     */
    cursor?: AgentProfileWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AgentProfiles from the position of the cursor.
     */
    take?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Skip the first `n` AgentProfiles.
     */
    skip?: number
    distinct?: AgentProfileScalarFieldEnum | AgentProfileScalarFieldEnum[]
  }

  /**
   * AgentProfile create
   */
  export type AgentProfileCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentProfile
     */
    select?: AgentProfileSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentProfile
     */
    omit?: AgentProfileOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AgentProfileInclude<ExtArgs> | null
    /**
     * The data needed to create a AgentProfile.
     */
    data: XOR<AgentProfileCreateInput, AgentProfileUncheckedCreateInput>
  }

  /**
   * AgentProfile createMany
   */
  export type AgentProfileCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many AgentProfiles.
     */
    data: AgentProfileCreateManyInput | AgentProfileCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * AgentProfile createManyAndReturn
   */
  export type AgentProfileCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentProfile
     */
    select?: AgentProfileSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the AgentProfile
     */
    omit?: AgentProfileOmit<ExtArgs> | null
    /**
     * The data used to create many AgentProfiles.
     */
    data: AgentProfileCreateManyInput | AgentProfileCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * AgentProfile update
   */
  export type AgentProfileUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentProfile
     */
    select?: AgentProfileSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentProfile
     */
    omit?: AgentProfileOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AgentProfileInclude<ExtArgs> | null
    /**
     * The data needed to update a AgentProfile.
     */
    data: XOR<AgentProfileUpdateInput, AgentProfileUncheckedUpdateInput>
    /**
     * Choose, which AgentProfile to update.
     */
    where: AgentProfileWhereUniqueInput
  }

  /**
   * AgentProfile updateMany
   */
  export type AgentProfileUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update AgentProfiles.
     */
    data: XOR<AgentProfileUpdateManyMutationInput, AgentProfileUncheckedUpdateManyInput>
    /**
     * Filter which AgentProfiles to update
     */
    where?: AgentProfileWhereInput
    /**
     * Limit how many AgentProfiles to update.
     */
    limit?: number
  }

  /**
   * AgentProfile updateManyAndReturn
   */
  export type AgentProfileUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentProfile
     */
    select?: AgentProfileSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the AgentProfile
     */
    omit?: AgentProfileOmit<ExtArgs> | null
    /**
     * The data used to update AgentProfiles.
     */
    data: XOR<AgentProfileUpdateManyMutationInput, AgentProfileUncheckedUpdateManyInput>
    /**
     * Filter which AgentProfiles to update
     */
    where?: AgentProfileWhereInput
    /**
     * Limit how many AgentProfiles to update.
     */
    limit?: number
  }

  /**
   * AgentProfile upsert
   */
  export type AgentProfileUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentProfile
     */
    select?: AgentProfileSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentProfile
     */
    omit?: AgentProfileOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AgentProfileInclude<ExtArgs> | null
    /**
     * The filter to search for the AgentProfile to update in case it exists.
     */
    where: AgentProfileWhereUniqueInput
    /**
     * In case the AgentProfile found by the `where` argument doesn't exist, create a new AgentProfile with this data.
     */
    create: XOR<AgentProfileCreateInput, AgentProfileUncheckedCreateInput>
    /**
     * In case the AgentProfile was found with the provided `where` argument, update it with this data.
     */
    update: XOR<AgentProfileUpdateInput, AgentProfileUncheckedUpdateInput>
  }

  /**
   * AgentProfile delete
   */
  export type AgentProfileDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentProfile
     */
    select?: AgentProfileSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentProfile
     */
    omit?: AgentProfileOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AgentProfileInclude<ExtArgs> | null
    /**
     * Filter which AgentProfile to delete.
     */
    where: AgentProfileWhereUniqueInput
  }

  /**
   * AgentProfile deleteMany
   */
  export type AgentProfileDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which AgentProfiles to delete
     */
    where?: AgentProfileWhereInput
    /**
     * Limit how many AgentProfiles to delete.
     */
    limit?: number
  }

  /**
   * AgentProfile.tasks_as_scout
   */
  export type AgentProfile$tasks_as_scoutArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Task
     */
    select?: TaskSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Task
     */
    omit?: TaskOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: TaskInclude<ExtArgs> | null
    where?: TaskWhereInput
    orderBy?: TaskOrderByWithRelationInput | TaskOrderByWithRelationInput[]
    cursor?: TaskWhereUniqueInput
    take?: number
    skip?: number
    distinct?: TaskScalarFieldEnum | TaskScalarFieldEnum[]
  }

  /**
   * AgentProfile.tasks_as_builder
   */
  export type AgentProfile$tasks_as_builderArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Task
     */
    select?: TaskSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Task
     */
    omit?: TaskOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: TaskInclude<ExtArgs> | null
    where?: TaskWhereInput
    orderBy?: TaskOrderByWithRelationInput | TaskOrderByWithRelationInput[]
    cursor?: TaskWhereUniqueInput
    take?: number
    skip?: number
    distinct?: TaskScalarFieldEnum | TaskScalarFieldEnum[]
  }

  /**
   * AgentProfile.claims
   */
  export type AgentProfile$claimsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Claim
     */
    select?: ClaimSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Claim
     */
    omit?: ClaimOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ClaimInclude<ExtArgs> | null
    where?: ClaimWhereInput
    orderBy?: ClaimOrderByWithRelationInput | ClaimOrderByWithRelationInput[]
    cursor?: ClaimWhereUniqueInput
    take?: number
    skip?: number
    distinct?: ClaimScalarFieldEnum | ClaimScalarFieldEnum[]
  }

  /**
   * AgentProfile.scout_reputation
   */
  export type AgentProfile$scout_reputationArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ScoutReputation
     */
    select?: ScoutReputationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ScoutReputation
     */
    omit?: ScoutReputationOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ScoutReputationInclude<ExtArgs> | null
    where?: ScoutReputationWhereInput
  }

  /**
   * AgentProfile.affiliate_ledger
   */
  export type AgentProfile$affiliate_ledgerArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AffiliateLedger
     */
    select?: AffiliateLedgerSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AffiliateLedger
     */
    omit?: AffiliateLedgerOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AffiliateLedgerInclude<ExtArgs> | null
    where?: AffiliateLedgerWhereInput
    orderBy?: AffiliateLedgerOrderByWithRelationInput | AffiliateLedgerOrderByWithRelationInput[]
    cursor?: AffiliateLedgerWhereUniqueInput
    take?: number
    skip?: number
    distinct?: AffiliateLedgerScalarFieldEnum | AffiliateLedgerScalarFieldEnum[]
  }

  /**
   * AgentProfile.bid_proposals
   */
  export type AgentProfile$bid_proposalsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the BidProposal
     */
    select?: BidProposalSelect<ExtArgs> | null
    /**
     * Omit specific fields from the BidProposal
     */
    omit?: BidProposalOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: BidProposalInclude<ExtArgs> | null
    where?: BidProposalWhereInput
    orderBy?: BidProposalOrderByWithRelationInput | BidProposalOrderByWithRelationInput[]
    cursor?: BidProposalWhereUniqueInput
    take?: number
    skip?: number
    distinct?: BidProposalScalarFieldEnum | BidProposalScalarFieldEnum[]
  }

  /**
   * AgentProfile.arbitrations_as_builder
   */
  export type AgentProfile$arbitrations_as_builderArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Arbitration
     */
    select?: ArbitrationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Arbitration
     */
    omit?: ArbitrationOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ArbitrationInclude<ExtArgs> | null
    where?: ArbitrationWhereInput
    orderBy?: ArbitrationOrderByWithRelationInput | ArbitrationOrderByWithRelationInput[]
    cursor?: ArbitrationWhereUniqueInput
    take?: number
    skip?: number
    distinct?: ArbitrationScalarFieldEnum | ArbitrationScalarFieldEnum[]
  }

  /**
   * AgentProfile.arbitrations_as_evaluator
   */
  export type AgentProfile$arbitrations_as_evaluatorArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Arbitration
     */
    select?: ArbitrationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Arbitration
     */
    omit?: ArbitrationOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ArbitrationInclude<ExtArgs> | null
    where?: ArbitrationWhereInput
    orderBy?: ArbitrationOrderByWithRelationInput | ArbitrationOrderByWithRelationInput[]
    cursor?: ArbitrationWhereUniqueInput
    take?: number
    skip?: number
    distinct?: ArbitrationScalarFieldEnum | ArbitrationScalarFieldEnum[]
  }

  /**
   * AgentProfile.arbitration_votes
   */
  export type AgentProfile$arbitration_votesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ArbitrationVote
     */
    select?: ArbitrationVoteSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ArbitrationVote
     */
    omit?: ArbitrationVoteOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ArbitrationVoteInclude<ExtArgs> | null
    where?: ArbitrationVoteWhereInput
    orderBy?: ArbitrationVoteOrderByWithRelationInput | ArbitrationVoteOrderByWithRelationInput[]
    cursor?: ArbitrationVoteWhereUniqueInput
    take?: number
    skip?: number
    distinct?: ArbitrationVoteScalarFieldEnum | ArbitrationVoteScalarFieldEnum[]
  }

  /**
   * AgentProfile.created_projects
   */
  export type AgentProfile$created_projectsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentProject
     */
    select?: AgentProjectSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentProject
     */
    omit?: AgentProjectOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AgentProjectInclude<ExtArgs> | null
    where?: AgentProjectWhereInput
    orderBy?: AgentProjectOrderByWithRelationInput | AgentProjectOrderByWithRelationInput[]
    cursor?: AgentProjectWhereUniqueInput
    take?: number
    skip?: number
    distinct?: AgentProjectScalarFieldEnum | AgentProjectScalarFieldEnum[]
  }

  /**
   * AgentProfile.slashing_events
   */
  export type AgentProfile$slashing_eventsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SlashingEvent
     */
    select?: SlashingEventSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SlashingEvent
     */
    omit?: SlashingEventOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SlashingEventInclude<ExtArgs> | null
    where?: SlashingEventWhereInput
    orderBy?: SlashingEventOrderByWithRelationInput | SlashingEventOrderByWithRelationInput[]
    cursor?: SlashingEventWhereUniqueInput
    take?: number
    skip?: number
    distinct?: SlashingEventScalarFieldEnum | SlashingEventScalarFieldEnum[]
  }

  /**
   * AgentProfile without action
   */
  export type AgentProfileDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentProfile
     */
    select?: AgentProfileSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentProfile
     */
    omit?: AgentProfileOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AgentProfileInclude<ExtArgs> | null
  }


  /**
   * Model AffiliateLedger
   */

  export type AggregateAffiliateLedger = {
    _count: AffiliateLedgerCountAggregateOutputType | null
    _avg: AffiliateLedgerAvgAggregateOutputType | null
    _sum: AffiliateLedgerSumAggregateOutputType | null
    _min: AffiliateLedgerMinAggregateOutputType | null
    _max: AffiliateLedgerMaxAggregateOutputType | null
  }

  export type AffiliateLedgerAvgAggregateOutputType = {
    amount: number | null
  }

  export type AffiliateLedgerSumAggregateOutputType = {
    amount: number | null
  }

  export type AffiliateLedgerMinAggregateOutputType = {
    id: string | null
    scout_id: string | null
    task_id: string | null
    amount: number | null
    currency: string | null
    status: string | null
    created_at: Date | null
    updated_at: Date | null
  }

  export type AffiliateLedgerMaxAggregateOutputType = {
    id: string | null
    scout_id: string | null
    task_id: string | null
    amount: number | null
    currency: string | null
    status: string | null
    created_at: Date | null
    updated_at: Date | null
  }

  export type AffiliateLedgerCountAggregateOutputType = {
    id: number
    scout_id: number
    task_id: number
    amount: number
    currency: number
    status: number
    created_at: number
    updated_at: number
    _all: number
  }


  export type AffiliateLedgerAvgAggregateInputType = {
    amount?: true
  }

  export type AffiliateLedgerSumAggregateInputType = {
    amount?: true
  }

  export type AffiliateLedgerMinAggregateInputType = {
    id?: true
    scout_id?: true
    task_id?: true
    amount?: true
    currency?: true
    status?: true
    created_at?: true
    updated_at?: true
  }

  export type AffiliateLedgerMaxAggregateInputType = {
    id?: true
    scout_id?: true
    task_id?: true
    amount?: true
    currency?: true
    status?: true
    created_at?: true
    updated_at?: true
  }

  export type AffiliateLedgerCountAggregateInputType = {
    id?: true
    scout_id?: true
    task_id?: true
    amount?: true
    currency?: true
    status?: true
    created_at?: true
    updated_at?: true
    _all?: true
  }

  export type AffiliateLedgerAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which AffiliateLedger to aggregate.
     */
    where?: AffiliateLedgerWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AffiliateLedgers to fetch.
     */
    orderBy?: AffiliateLedgerOrderByWithRelationInput | AffiliateLedgerOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: AffiliateLedgerWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AffiliateLedgers from the position of the cursor.
     */
    take?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Skip the first `n` AffiliateLedgers.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned AffiliateLedgers
    **/
    _count?: true | AffiliateLedgerCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: AffiliateLedgerAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: AffiliateLedgerSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: AffiliateLedgerMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: AffiliateLedgerMaxAggregateInputType
  }

  export type GetAffiliateLedgerAggregateType<T extends AffiliateLedgerAggregateArgs> = {
        [P in keyof T & keyof AggregateAffiliateLedger]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateAffiliateLedger[P]>
      : GetScalarType<T[P], AggregateAffiliateLedger[P]>
  }




  export type AffiliateLedgerGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: AffiliateLedgerWhereInput
    orderBy?: AffiliateLedgerOrderByWithAggregationInput | AffiliateLedgerOrderByWithAggregationInput[]
    by: AffiliateLedgerScalarFieldEnum[] | AffiliateLedgerScalarFieldEnum
    having?: AffiliateLedgerScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: AffiliateLedgerCountAggregateInputType | true
    _avg?: AffiliateLedgerAvgAggregateInputType
    _sum?: AffiliateLedgerSumAggregateInputType
    _min?: AffiliateLedgerMinAggregateInputType
    _max?: AffiliateLedgerMaxAggregateInputType
  }

  export type AffiliateLedgerGroupByOutputType = {
    id: string
    scout_id: string
    task_id: string
    amount: number
    currency: string
    status: string
    created_at: Date
    updated_at: Date
    _count: AffiliateLedgerCountAggregateOutputType | null
    _avg: AffiliateLedgerAvgAggregateOutputType | null
    _sum: AffiliateLedgerSumAggregateOutputType | null
    _min: AffiliateLedgerMinAggregateOutputType | null
    _max: AffiliateLedgerMaxAggregateOutputType | null
  }

  type GetAffiliateLedgerGroupByPayload<T extends AffiliateLedgerGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<AffiliateLedgerGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof AffiliateLedgerGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], AffiliateLedgerGroupByOutputType[P]>
            : GetScalarType<T[P], AffiliateLedgerGroupByOutputType[P]>
        }
      >
    >


  export type AffiliateLedgerSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    scout_id?: boolean
    task_id?: boolean
    amount?: boolean
    currency?: boolean
    status?: boolean
    created_at?: boolean
    updated_at?: boolean
    scout_agent?: boolean | AgentProfileDefaultArgs<ExtArgs>
    task?: boolean | TaskDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["affiliateLedger"]>

  export type AffiliateLedgerSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    scout_id?: boolean
    task_id?: boolean
    amount?: boolean
    currency?: boolean
    status?: boolean
    created_at?: boolean
    updated_at?: boolean
    scout_agent?: boolean | AgentProfileDefaultArgs<ExtArgs>
    task?: boolean | TaskDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["affiliateLedger"]>

  export type AffiliateLedgerSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    scout_id?: boolean
    task_id?: boolean
    amount?: boolean
    currency?: boolean
    status?: boolean
    created_at?: boolean
    updated_at?: boolean
    scout_agent?: boolean | AgentProfileDefaultArgs<ExtArgs>
    task?: boolean | TaskDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["affiliateLedger"]>

  export type AffiliateLedgerSelectScalar = {
    id?: boolean
    scout_id?: boolean
    task_id?: boolean
    amount?: boolean
    currency?: boolean
    status?: boolean
    created_at?: boolean
    updated_at?: boolean
  }

  export type AffiliateLedgerOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "scout_id" | "task_id" | "amount" | "currency" | "status" | "created_at" | "updated_at", ExtArgs["result"]["affiliateLedger"]>
  export type AffiliateLedgerInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    scout_agent?: boolean | AgentProfileDefaultArgs<ExtArgs>
    task?: boolean | TaskDefaultArgs<ExtArgs>
  }
  export type AffiliateLedgerIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    scout_agent?: boolean | AgentProfileDefaultArgs<ExtArgs>
    task?: boolean | TaskDefaultArgs<ExtArgs>
  }
  export type AffiliateLedgerIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    scout_agent?: boolean | AgentProfileDefaultArgs<ExtArgs>
    task?: boolean | TaskDefaultArgs<ExtArgs>
  }

  export type $AffiliateLedgerPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "AffiliateLedger"
    objects: {
      scout_agent: Prisma.$AgentProfilePayload<ExtArgs>
      task: Prisma.$TaskPayload<ExtArgs>
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      scout_id: string
      task_id: string
      amount: number
      currency: string
      status: string
      created_at: Date
      updated_at: Date
    }, ExtArgs["result"]["affiliateLedger"]>
    composites: {}
  }

  type AffiliateLedgerGetPayload<S extends boolean | null | undefined | AffiliateLedgerDefaultArgs> = $Result.GetResult<Prisma.$AffiliateLedgerPayload, S>

  type AffiliateLedgerCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<AffiliateLedgerFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: AffiliateLedgerCountAggregateInputType | true
    }

  export interface AffiliateLedgerDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['AffiliateLedger'], meta: { name: 'AffiliateLedger' } }
    /**
     * Find zero or one AffiliateLedger that matches the filter.
     * @param {AffiliateLedgerFindUniqueArgs} args - Arguments to find a AffiliateLedger
     * @example
     * // Get one AffiliateLedger
     * const affiliateLedger = await prisma.affiliateLedger.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends AffiliateLedgerFindUniqueArgs>(args: SelectSubset<T, AffiliateLedgerFindUniqueArgs<ExtArgs>>): Prisma__AffiliateLedgerClient<$Result.GetResult<Prisma.$AffiliateLedgerPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one AffiliateLedger that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {AffiliateLedgerFindUniqueOrThrowArgs} args - Arguments to find a AffiliateLedger
     * @example
     * // Get one AffiliateLedger
     * const affiliateLedger = await prisma.affiliateLedger.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends AffiliateLedgerFindUniqueOrThrowArgs>(args: SelectSubset<T, AffiliateLedgerFindUniqueOrThrowArgs<ExtArgs>>): Prisma__AffiliateLedgerClient<$Result.GetResult<Prisma.$AffiliateLedgerPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first AffiliateLedger that matches the filter.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AffiliateLedgerFindFirstArgs} args - Arguments to find a AffiliateLedger
     * @example
     * // Get one AffiliateLedger
     * const affiliateLedger = await prisma.affiliateLedger.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends AffiliateLedgerFindFirstArgs>(args?: SelectSubset<T, AffiliateLedgerFindFirstArgs<ExtArgs>>): Prisma__AffiliateLedgerClient<$Result.GetResult<Prisma.$AffiliateLedgerPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first AffiliateLedger that matches the filter or
     * throw `PrismaKnownClientError` with `P2025` code if no matches were found.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AffiliateLedgerFindFirstOrThrowArgs} args - Arguments to find a AffiliateLedger
     * @example
     * // Get one AffiliateLedger
     * const affiliateLedger = await prisma.affiliateLedger.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends AffiliateLedgerFindFirstOrThrowArgs>(args?: SelectSubset<T, AffiliateLedgerFindFirstOrThrowArgs<ExtArgs>>): Prisma__AffiliateLedgerClient<$Result.GetResult<Prisma.$AffiliateLedgerPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more AffiliateLedgers that matches the filter.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AffiliateLedgerFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all AffiliateLedgers
     * const affiliateLedgers = await prisma.affiliateLedger.findMany()
     * 
     * // Get first 10 AffiliateLedgers
     * const affiliateLedgers = await prisma.affiliateLedger.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const affiliateLedgerWithIdOnly = await prisma.affiliateLedger.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends AffiliateLedgerFindManyArgs>(args?: SelectSubset<T, AffiliateLedgerFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AffiliateLedgerPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a AffiliateLedger.
     * @param {AffiliateLedgerCreateArgs} args - Arguments to create a AffiliateLedger.
     * @example
     * // Create one AffiliateLedger
     * const AffiliateLedger = await prisma.affiliateLedger.create({
     *   data: {
     *     // ... data to create a AffiliateLedger
     *   }
     * })
     * 
     */
    create<T extends AffiliateLedgerCreateArgs>(args: SelectSubset<T, AffiliateLedgerCreateArgs<ExtArgs>>): Prisma__AffiliateLedgerClient<$Result.GetResult<Prisma.$AffiliateLedgerPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many AffiliateLedgers.
     * @param {AffiliateLedgerCreateManyArgs} args - Arguments to create many AffiliateLedgers.
     * @example
     * // Create many AffiliateLedgers
     * const affiliateLedger = await prisma.affiliateLedger.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends AffiliateLedgerCreateManyArgs>(args?: SelectSubset<T, AffiliateLedgerCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many AffiliateLedgers and returns the data saved in the database.
     * @param {AffiliateLedgerCreateManyAndReturnArgs} args - Arguments to create many AffiliateLedgers.
     * @example
     * // Create many AffiliateLedgers
     * const affiliateLedger = await prisma.affiliateLedger.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many AffiliateLedgers and only return the `id`
     * const affiliateLedgerWithIdOnly = await prisma.affiliateLedger.createManyAndReturn({
     *   select: { id: true },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * 
     */
    createManyAndReturn<T extends AffiliateLedgerCreateManyAndReturnArgs>(args?: SelectSubset<T, AffiliateLedgerCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AffiliateLedgerPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a AffiliateLedger.
     * @param {AffiliateLedgerDeleteArgs} args - Arguments to delete one AffiliateLedger.
     * @example
     * // Delete one AffiliateLedger
     * const AffiliateLedger = await prisma.affiliateLedger.delete({
     *   where: {
     *     // ... filter to delete one AffiliateLedger
     *   }
     * })
     * 
     */
    delete<T extends AffiliateLedgerDeleteArgs>(args: SelectSubset<T, AffiliateLedgerDeleteArgs<ExtArgs>>): Prisma__AffiliateLedgerClient<$Result.GetResult<Prisma.$AffiliateLedgerPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one AffiliateLedger.
     * @param {AffiliateLedgerUpdateArgs} args - Arguments to update one AffiliateLedger.
     * @example
     * // Update one AffiliateLedger
     * const affiliateLedger = await prisma.affiliateLedger.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends AffiliateLedgerUpdateArgs>(args: SelectSubset<T, AffiliateLedgerUpdateArgs<ExtArgs>>): Prisma__AffiliateLedgerClient<$Result.GetResult<Prisma.$AffiliateLedgerPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more AffiliateLedgers.
     * @param {AffiliateLedgerDeleteManyArgs} args - Arguments to filter AffiliateLedgers to delete.
     * @example
     * // Delete a few AffiliateLedgers
     * const { count } = await prisma.affiliateLedger.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends AffiliateLedgerDeleteManyArgs>(args?: SelectSubset<T, AffiliateLedgerDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more AffiliateLedgers.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AffiliateLedgerUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many AffiliateLedgers
     * const affiliateLedger = await prisma.affiliateLedger.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends AffiliateLedgerUpdateManyArgs>(args: SelectSubset<T, AffiliateLedgerUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more AffiliateLedgers and returns the data updated in the database.
     * @param {AffiliateLedgerUpdateManyAndReturnArgs} args - Arguments to update many AffiliateLedgers.
     * @example
     * // Update many AffiliateLedgers
     * const affiliateLedger = await prisma.affiliateLedger.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more AffiliateLedgers and only return the `id`
     * const affiliateLedgerWithIdOnly = await prisma.affiliateLedger.updateManyAndReturn({
     *   select: { id: true },
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * 
     */
    updateManyAndReturn<T extends AffiliateLedgerUpdateManyAndReturnArgs>(args: SelectSubset<T, AffiliateLedgerUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AffiliateLedgerPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one AffiliateLedger.
     * @param {AffiliateLedgerUpsertArgs} args - Arguments to update or create a AffiliateLedger.
     * @example
     * // Update or create a AffiliateLedger
     * const affiliateLedger = await prisma.affiliateLedger.upsert({
     *   create: {
     *     // ... data to create a AffiliateLedger
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the AffiliateLedger we want to update
     *   }
     * })
     */
    upsert<T extends AffiliateLedgerUpsertArgs>(args: SelectSubset<T, AffiliateLedgerUpsertArgs<ExtArgs>>): Prisma__AffiliateLedgerClient<$Result.GetResult<Prisma.$AffiliateLedgerPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of AffiliateLedgers.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AffiliateLedgerCountArgs} args - Arguments to filter AffiliateLedgers to count.
     * @example
     * // Count the number of AffiliateLedgers
     * const count = await prisma.affiliateLedger.count({
     *   where: {
     *     // ... the filter for the AffiliateLedgers we want to count
     *   }
     * })
    **/
    count<T extends AffiliateLedgerCountArgs>(
      args?: Subset<T, AffiliateLedgerCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], AffiliateLedgerCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a AffiliateLedger.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AffiliateLedgerAggregateArgs} args - Select which aggregations you would like to apply and on what fields.
     * @example
     * // Ordered by age ascending
     * // Where email contains prisma.io
     * // Limited to the 10 users
     * const aggregations = await prisma.user.aggregate({
     *   _avg: {
     *     age: true,
     *   },
     *   where: {
     *     email: {
     *       contains: "prisma.io",
     *     },
     *   },
     *   orderBy: {
     *     age: "asc",
     *   },
     *   take: 10,
     * })
    **/
    aggregate<T extends AffiliateLedgerAggregateArgs>(args: Subset<T, AffiliateLedgerAggregateArgs>): Prisma.PrismaPromise<GetAffiliateLedgerAggregateType<T>>

    /**
     * Group by AffiliateLedger.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AffiliateLedgerGroupByArgs} args - Group by arguments.
     * @example
     * // Group by city, order by createdAt, get count
     * const result = await prisma.user.groupBy({
     *   by: ['city', 'createdAt'],
     *   orderBy: {
     *     createdAt: true
     *   },
     *   _count: {
     *     _all: true
     *   },
     * })
     * 
    **/
    groupBy<
      T extends AffiliateLedgerGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: AffiliateLedgerGroupByArgs['orderBy'] }
        : { orderBy?: AffiliateLedgerGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, AffiliateLedgerGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetAffiliateLedgerGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the AffiliateLedger model
   */
  readonly fields: AffiliateLedgerFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for AffiliateLedger.
   * Why is this prefixed with `Prisma__`?
   * Because we want to prevent naming conflicts as mentioned in
   * https://github.com/prisma/prisma-client-js/issues/707
   */
  export interface Prisma__AffiliateLedgerClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    scout_agent<T extends AgentProfileDefaultArgs<ExtArgs> = {}>(args?: Subset<T, AgentProfileDefaultArgs<ExtArgs>>): Prisma__AgentProfileClient<$Result.GetResult<Prisma.$AgentProfilePayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    task<T extends TaskDefaultArgs<ExtArgs> = {}>(args?: Subset<T, TaskDefaultArgs<ExtArgs>>): Prisma__TaskClient<$Result.GetResult<Prisma.$TaskPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the AffiliateLedger model
   */
  interface AffiliateLedgerFieldRefs {
    readonly id: FieldRef<"AffiliateLedger", 'String'>
    readonly scout_id: FieldRef<"AffiliateLedger", 'String'>
    readonly task_id: FieldRef<"AffiliateLedger", 'String'>
    readonly amount: FieldRef<"AffiliateLedger", 'Int'>
    readonly currency: FieldRef<"AffiliateLedger", 'String'>
    readonly status: FieldRef<"AffiliateLedger", 'String'>
    readonly created_at: FieldRef<"AffiliateLedger", 'DateTime'>
    readonly updated_at: FieldRef<"AffiliateLedger", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * AffiliateLedger findUnique
   */
  export type AffiliateLedgerFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AffiliateLedger
     */
    select?: AffiliateLedgerSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AffiliateLedger
     */
    omit?: AffiliateLedgerOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AffiliateLedgerInclude<ExtArgs> | null
    /**
     * Filter, which AffiliateLedger to fetch.
     */
    where: AffiliateLedgerWhereUniqueInput
  }

  /**
   * AffiliateLedger findUniqueOrThrow
   */
  export type AffiliateLedgerFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AffiliateLedger
     */
    select?: AffiliateLedgerSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AffiliateLedger
     */
    omit?: AffiliateLedgerOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AffiliateLedgerInclude<ExtArgs> | null
    /**
     * Filter, which AffiliateLedger to fetch.
     */
    where: AffiliateLedgerWhereUniqueInput
  }

  /**
   * AffiliateLedger findFirst
   */
  export type AffiliateLedgerFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AffiliateLedger
     */
    select?: AffiliateLedgerSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AffiliateLedger
     */
    omit?: AffiliateLedgerOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AffiliateLedgerInclude<ExtArgs> | null
    /**
     * Filter, which AffiliateLedger to fetch.
     */
    where?: AffiliateLedgerWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AffiliateLedgers to fetch.
     */
    orderBy?: AffiliateLedgerOrderByWithRelationInput | AffiliateLedgerOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for AffiliateLedgers.
     */
    cursor?: AffiliateLedgerWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AffiliateLedgers from the position of the cursor.
     */
    take?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Skip the first `n` AffiliateLedgers.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of AffiliateLedgers.
     */
    distinct?: AffiliateLedgerScalarFieldEnum | AffiliateLedgerScalarFieldEnum[]
  }

  /**
   * AffiliateLedger findFirstOrThrow
   */
  export type AffiliateLedgerFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AffiliateLedger
     */
    select?: AffiliateLedgerSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AffiliateLedger
     */
    omit?: AffiliateLedgerOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AffiliateLedgerInclude<ExtArgs> | null
    /**
     * Filter, which AffiliateLedger to fetch.
     */
    where?: AffiliateLedgerWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AffiliateLedgers to fetch.
     */
    orderBy?: AffiliateLedgerOrderByWithRelationInput | AffiliateLedgerOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for AffiliateLedgers.
     */
    cursor?: AffiliateLedgerWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AffiliateLedgers from the position of the cursor.
     */
    take?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Skip the first `n` AffiliateLedgers.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of AffiliateLedgers.
     */
    distinct?: AffiliateLedgerScalarFieldEnum | AffiliateLedgerScalarFieldEnum[]
  }

  /**
   * AffiliateLedger findMany
   */
  export type AffiliateLedgerFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AffiliateLedger
     */
    select?: AffiliateLedgerSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AffiliateLedger
     */
    omit?: AffiliateLedgerOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AffiliateLedgerInclude<ExtArgs> | null
    /**
     * Filter, which AffiliateLedgers to fetch.
     */
    where?: AffiliateLedgerWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AffiliateLedgers to fetch.
     */
    orderBy?: AffiliateLedgerOrderByWithRelationInput | AffiliateLedgerOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing AffiliateLedgers.
     */
    cursor?: AffiliateLedgerWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AffiliateLedgers from the position of the cursor.
     */
    take?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Skip the first `n` AffiliateLedgers.
     */
    skip?: number
    distinct?: AffiliateLedgerScalarFieldEnum | AffiliateLedgerScalarFieldEnum[]
  }

  /**
   * AffiliateLedger create
   */
  export type AffiliateLedgerCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AffiliateLedger
     */
    select?: AffiliateLedgerSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AffiliateLedger
     */
    omit?: AffiliateLedgerOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AffiliateLedgerInclude<ExtArgs> | null
    /**
     * The data needed to create a AffiliateLedger.
     */
    data: XOR<AffiliateLedgerCreateInput, AffiliateLedgerUncheckedCreateInput>
  }

  /**
   * AffiliateLedger createMany
   */
  export type AffiliateLedgerCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many AffiliateLedgers.
     */
    data: AffiliateLedgerCreateManyInput | AffiliateLedgerCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * AffiliateLedger createManyAndReturn
   */
  export type AffiliateLedgerCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AffiliateLedger
     */
    select?: AffiliateLedgerSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the AffiliateLedger
     */
    omit?: AffiliateLedgerOmit<ExtArgs> | null
    /**
     * The data used to create many AffiliateLedgers.
     */
    data: AffiliateLedgerCreateManyInput | AffiliateLedgerCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AffiliateLedgerIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * AffiliateLedger update
   */
  export type AffiliateLedgerUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AffiliateLedger
     */
    select?: AffiliateLedgerSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AffiliateLedger
     */
    omit?: AffiliateLedgerOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AffiliateLedgerInclude<ExtArgs> | null
    /**
     * The data needed to update a AffiliateLedger.
     */
    data: XOR<AffiliateLedgerUpdateInput, AffiliateLedgerUncheckedUpdateInput>
    /**
     * Choose, which AffiliateLedger to update.
     */
    where: AffiliateLedgerWhereUniqueInput
  }

  /**
   * AffiliateLedger updateMany
   */
  export type AffiliateLedgerUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update AffiliateLedgers.
     */
    data: XOR<AffiliateLedgerUpdateManyMutationInput, AffiliateLedgerUncheckedUpdateManyInput>
    /**
     * Filter which AffiliateLedgers to update
     */
    where?: AffiliateLedgerWhereInput
    /**
     * Limit how many AffiliateLedgers to update.
     */
    limit?: number
  }

  /**
   * AffiliateLedger updateManyAndReturn
   */
  export type AffiliateLedgerUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AffiliateLedger
     */
    select?: AffiliateLedgerSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the AffiliateLedger
     */
    omit?: AffiliateLedgerOmit<ExtArgs> | null
    /**
     * The data used to update AffiliateLedgers.
     */
    data: XOR<AffiliateLedgerUpdateManyMutationInput, AffiliateLedgerUncheckedUpdateManyInput>
    /**
     * Filter which AffiliateLedgers to update
     */
    where?: AffiliateLedgerWhereInput
    /**
     * Limit how many AffiliateLedgers to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AffiliateLedgerIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * AffiliateLedger upsert
   */
  export type AffiliateLedgerUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AffiliateLedger
     */
    select?: AffiliateLedgerSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AffiliateLedger
     */
    omit?: AffiliateLedgerOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AffiliateLedgerInclude<ExtArgs> | null
    /**
     * The filter to search for the AffiliateLedger to update in case it exists.
     */
    where: AffiliateLedgerWhereUniqueInput
    /**
     * In case the AffiliateLedger found by the `where` argument doesn't exist, create a new AffiliateLedger with this data.
     */
    create: XOR<AffiliateLedgerCreateInput, AffiliateLedgerUncheckedCreateInput>
    /**
     * In case the AffiliateLedger was found with the provided `where` argument, update it with this data.
     */
    update: XOR<AffiliateLedgerUpdateInput, AffiliateLedgerUncheckedUpdateInput>
  }

  /**
   * AffiliateLedger delete
   */
  export type AffiliateLedgerDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AffiliateLedger
     */
    select?: AffiliateLedgerSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AffiliateLedger
     */
    omit?: AffiliateLedgerOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AffiliateLedgerInclude<ExtArgs> | null
    /**
     * Filter which AffiliateLedger to delete.
     */
    where: AffiliateLedgerWhereUniqueInput
  }

  /**
   * AffiliateLedger deleteMany
   */
  export type AffiliateLedgerDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which AffiliateLedgers to delete
     */
    where?: AffiliateLedgerWhereInput
    /**
     * Limit how many AffiliateLedgers to delete.
     */
    limit?: number
  }

  /**
   * AffiliateLedger without action
   */
  export type AffiliateLedgerDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AffiliateLedger
     */
    select?: AffiliateLedgerSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AffiliateLedger
     */
    omit?: AffiliateLedgerOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AffiliateLedgerInclude<ExtArgs> | null
  }


  /**
   * Model ScoutReputation
   */

  export type AggregateScoutReputation = {
    _count: ScoutReputationCountAggregateOutputType | null
    _avg: ScoutReputationAvgAggregateOutputType | null
    _sum: ScoutReputationSumAggregateOutputType | null
    _min: ScoutReputationMinAggregateOutputType | null
    _max: ScoutReputationMaxAggregateOutputType | null
  }

  export type ScoutReputationAvgAggregateOutputType = {
    successful_conversions: number | null
    spam_score: number | null
    chargeback_count: number | null
  }

  export type ScoutReputationSumAggregateOutputType = {
    successful_conversions: number | null
    spam_score: number | null
    chargeback_count: number | null
  }

  export type ScoutReputationMinAggregateOutputType = {
    id: string | null
    scout_id: string | null
    successful_conversions: number | null
    spam_score: number | null
    chargeback_count: number | null
    created_at: Date | null
    updated_at: Date | null
  }

  export type ScoutReputationMaxAggregateOutputType = {
    id: string | null
    scout_id: string | null
    successful_conversions: number | null
    spam_score: number | null
    chargeback_count: number | null
    created_at: Date | null
    updated_at: Date | null
  }

  export type ScoutReputationCountAggregateOutputType = {
    id: number
    scout_id: number
    successful_conversions: number
    spam_score: number
    chargeback_count: number
    created_at: number
    updated_at: number
    _all: number
  }


  export type ScoutReputationAvgAggregateInputType = {
    successful_conversions?: true
    spam_score?: true
    chargeback_count?: true
  }

  export type ScoutReputationSumAggregateInputType = {
    successful_conversions?: true
    spam_score?: true
    chargeback_count?: true
  }

  export type ScoutReputationMinAggregateInputType = {
    id?: true
    scout_id?: true
    successful_conversions?: true
    spam_score?: true
    chargeback_count?: true
    created_at?: true
    updated_at?: true
  }

  export type ScoutReputationMaxAggregateInputType = {
    id?: true
    scout_id?: true
    successful_conversions?: true
    spam_score?: true
    chargeback_count?: true
    created_at?: true
    updated_at?: true
  }

  export type ScoutReputationCountAggregateInputType = {
    id?: true
    scout_id?: true
    successful_conversions?: true
    spam_score?: true
    chargeback_count?: true
    created_at?: true
    updated_at?: true
    _all?: true
  }

  export type ScoutReputationAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which ScoutReputation to aggregate.
     */
    where?: ScoutReputationWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of ScoutReputations to fetch.
     */
    orderBy?: ScoutReputationOrderByWithRelationInput | ScoutReputationOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: ScoutReputationWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` ScoutReputations from the position of the cursor.
     */
    take?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Skip the first `n` ScoutReputations.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned ScoutReputations
    **/
    _count?: true | ScoutReputationCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: ScoutReputationAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: ScoutReputationSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: ScoutReputationMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: ScoutReputationMaxAggregateInputType
  }

  export type GetScoutReputationAggregateType<T extends ScoutReputationAggregateArgs> = {
        [P in keyof T & keyof AggregateScoutReputation]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateScoutReputation[P]>
      : GetScalarType<T[P], AggregateScoutReputation[P]>
  }




  export type ScoutReputationGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: ScoutReputationWhereInput
    orderBy?: ScoutReputationOrderByWithAggregationInput | ScoutReputationOrderByWithAggregationInput[]
    by: ScoutReputationScalarFieldEnum[] | ScoutReputationScalarFieldEnum
    having?: ScoutReputationScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: ScoutReputationCountAggregateInputType | true
    _avg?: ScoutReputationAvgAggregateInputType
    _sum?: ScoutReputationSumAggregateInputType
    _min?: ScoutReputationMinAggregateInputType
    _max?: ScoutReputationMaxAggregateInputType
  }

  export type ScoutReputationGroupByOutputType = {
    id: string
    scout_id: string
    successful_conversions: number
    spam_score: number
    chargeback_count: number
    created_at: Date
    updated_at: Date
    _count: ScoutReputationCountAggregateOutputType | null
    _avg: ScoutReputationAvgAggregateOutputType | null
    _sum: ScoutReputationSumAggregateOutputType | null
    _min: ScoutReputationMinAggregateOutputType | null
    _max: ScoutReputationMaxAggregateOutputType | null
  }

  type GetScoutReputationGroupByPayload<T extends ScoutReputationGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<ScoutReputationGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof ScoutReputationGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], ScoutReputationGroupByOutputType[P]>
            : GetScalarType<T[P], ScoutReputationGroupByOutputType[P]>
        }
      >
    >


  export type ScoutReputationSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    scout_id?: boolean
    successful_conversions?: boolean
    spam_score?: boolean
    chargeback_count?: boolean
    created_at?: boolean
    updated_at?: boolean
    scout_agent?: boolean | AgentProfileDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["scoutReputation"]>

  export type ScoutReputationSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    scout_id?: boolean
    successful_conversions?: boolean
    spam_score?: boolean
    chargeback_count?: boolean
    created_at?: boolean
    updated_at?: boolean
    scout_agent?: boolean | AgentProfileDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["scoutReputation"]>

  export type ScoutReputationSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    scout_id?: boolean
    successful_conversions?: boolean
    spam_score?: boolean
    chargeback_count?: boolean
    created_at?: boolean
    updated_at?: boolean
    scout_agent?: boolean | AgentProfileDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["scoutReputation"]>

  export type ScoutReputationSelectScalar = {
    id?: boolean
    scout_id?: boolean
    successful_conversions?: boolean
    spam_score?: boolean
    chargeback_count?: boolean
    created_at?: boolean
    updated_at?: boolean
  }

  export type ScoutReputationOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "scout_id" | "successful_conversions" | "spam_score" | "chargeback_count" | "created_at" | "updated_at", ExtArgs["result"]["scoutReputation"]>
  export type ScoutReputationInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    scout_agent?: boolean | AgentProfileDefaultArgs<ExtArgs>
  }
  export type ScoutReputationIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    scout_agent?: boolean | AgentProfileDefaultArgs<ExtArgs>
  }
  export type ScoutReputationIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    scout_agent?: boolean | AgentProfileDefaultArgs<ExtArgs>
  }

  export type $ScoutReputationPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "ScoutReputation"
    objects: {
      scout_agent: Prisma.$AgentProfilePayload<ExtArgs>
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      scout_id: string
      successful_conversions: number
      spam_score: number
      chargeback_count: number
      created_at: Date
      updated_at: Date
    }, ExtArgs["result"]["scoutReputation"]>
    composites: {}
  }

  type ScoutReputationGetPayload<S extends boolean | null | undefined | ScoutReputationDefaultArgs> = $Result.GetResult<Prisma.$ScoutReputationPayload, S>

  type ScoutReputationCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<ScoutReputationFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: ScoutReputationCountAggregateInputType | true
    }

  export interface ScoutReputationDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['ScoutReputation'], meta: { name: 'ScoutReputation' } }
    /**
     * Find zero or one ScoutReputation that matches the filter.
     * @param {ScoutReputationFindUniqueArgs} args - Arguments to find a ScoutReputation
     * @example
     * // Get one ScoutReputation
     * const scoutReputation = await prisma.scoutReputation.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends ScoutReputationFindUniqueArgs>(args: SelectSubset<T, ScoutReputationFindUniqueArgs<ExtArgs>>): Prisma__ScoutReputationClient<$Result.GetResult<Prisma.$ScoutReputationPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one ScoutReputation that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {ScoutReputationFindUniqueOrThrowArgs} args - Arguments to find a ScoutReputation
     * @example
     * // Get one ScoutReputation
     * const scoutReputation = await prisma.scoutReputation.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends ScoutReputationFindUniqueOrThrowArgs>(args: SelectSubset<T, ScoutReputationFindUniqueOrThrowArgs<ExtArgs>>): Prisma__ScoutReputationClient<$Result.GetResult<Prisma.$ScoutReputationPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first ScoutReputation that matches the filter.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {ScoutReputationFindFirstArgs} args - Arguments to find a ScoutReputation
     * @example
     * // Get one ScoutReputation
     * const scoutReputation = await prisma.scoutReputation.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends ScoutReputationFindFirstArgs>(args?: SelectSubset<T, ScoutReputationFindFirstArgs<ExtArgs>>): Prisma__ScoutReputationClient<$Result.GetResult<Prisma.$ScoutReputationPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first ScoutReputation that matches the filter or
     * throw `PrismaKnownClientError` with `P2025` code if no matches were found.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {ScoutReputationFindFirstOrThrowArgs} args - Arguments to find a ScoutReputation
     * @example
     * // Get one ScoutReputation
     * const scoutReputation = await prisma.scoutReputation.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends ScoutReputationFindFirstOrThrowArgs>(args?: SelectSubset<T, ScoutReputationFindFirstOrThrowArgs<ExtArgs>>): Prisma__ScoutReputationClient<$Result.GetResult<Prisma.$ScoutReputationPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more ScoutReputations that matches the filter.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {ScoutReputationFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all ScoutReputations
     * const scoutReputations = await prisma.scoutReputation.findMany()
     * 
     * // Get first 10 ScoutReputations
     * const scoutReputations = await prisma.scoutReputation.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const scoutReputationWithIdOnly = await prisma.scoutReputation.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends ScoutReputationFindManyArgs>(args?: SelectSubset<T, ScoutReputationFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$ScoutReputationPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a ScoutReputation.
     * @param {ScoutReputationCreateArgs} args - Arguments to create a ScoutReputation.
     * @example
     * // Create one ScoutReputation
     * const ScoutReputation = await prisma.scoutReputation.create({
     *   data: {
     *     // ... data to create a ScoutReputation
     *   }
     * })
     * 
     */
    create<T extends ScoutReputationCreateArgs>(args: SelectSubset<T, ScoutReputationCreateArgs<ExtArgs>>): Prisma__ScoutReputationClient<$Result.GetResult<Prisma.$ScoutReputationPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many ScoutReputations.
     * @param {ScoutReputationCreateManyArgs} args - Arguments to create many ScoutReputations.
     * @example
     * // Create many ScoutReputations
     * const scoutReputation = await prisma.scoutReputation.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends ScoutReputationCreateManyArgs>(args?: SelectSubset<T, ScoutReputationCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many ScoutReputations and returns the data saved in the database.
     * @param {ScoutReputationCreateManyAndReturnArgs} args - Arguments to create many ScoutReputations.
     * @example
     * // Create many ScoutReputations
     * const scoutReputation = await prisma.scoutReputation.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many ScoutReputations and only return the `id`
     * const scoutReputationWithIdOnly = await prisma.scoutReputation.createManyAndReturn({
     *   select: { id: true },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * 
     */
    createManyAndReturn<T extends ScoutReputationCreateManyAndReturnArgs>(args?: SelectSubset<T, ScoutReputationCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$ScoutReputationPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a ScoutReputation.
     * @param {ScoutReputationDeleteArgs} args - Arguments to delete one ScoutReputation.
     * @example
     * // Delete one ScoutReputation
     * const ScoutReputation = await prisma.scoutReputation.delete({
     *   where: {
     *     // ... filter to delete one ScoutReputation
     *   }
     * })
     * 
     */
    delete<T extends ScoutReputationDeleteArgs>(args: SelectSubset<T, ScoutReputationDeleteArgs<ExtArgs>>): Prisma__ScoutReputationClient<$Result.GetResult<Prisma.$ScoutReputationPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one ScoutReputation.
     * @param {ScoutReputationUpdateArgs} args - Arguments to update one ScoutReputation.
     * @example
     * // Update one ScoutReputation
     * const scoutReputation = await prisma.scoutReputation.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends ScoutReputationUpdateArgs>(args: SelectSubset<T, ScoutReputationUpdateArgs<ExtArgs>>): Prisma__ScoutReputationClient<$Result.GetResult<Prisma.$ScoutReputationPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more ScoutReputations.
     * @param {ScoutReputationDeleteManyArgs} args - Arguments to filter ScoutReputations to delete.
     * @example
     * // Delete a few ScoutReputations
     * const { count } = await prisma.scoutReputation.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends ScoutReputationDeleteManyArgs>(args?: SelectSubset<T, ScoutReputationDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more ScoutReputations.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {ScoutReputationUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many ScoutReputations
     * const scoutReputation = await prisma.scoutReputation.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends ScoutReputationUpdateManyArgs>(args: SelectSubset<T, ScoutReputationUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more ScoutReputations and returns the data updated in the database.
     * @param {ScoutReputationUpdateManyAndReturnArgs} args - Arguments to update many ScoutReputations.
     * @example
     * // Update many ScoutReputations
     * const scoutReputation = await prisma.scoutReputation.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more ScoutReputations and only return the `id`
     * const scoutReputationWithIdOnly = await prisma.scoutReputation.updateManyAndReturn({
     *   select: { id: true },
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * 
     */
    updateManyAndReturn<T extends ScoutReputationUpdateManyAndReturnArgs>(args: SelectSubset<T, ScoutReputationUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$ScoutReputationPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one ScoutReputation.
     * @param {ScoutReputationUpsertArgs} args - Arguments to update or create a ScoutReputation.
     * @example
     * // Update or create a ScoutReputation
     * const scoutReputation = await prisma.scoutReputation.upsert({
     *   create: {
     *     // ... data to create a ScoutReputation
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the ScoutReputation we want to update
     *   }
     * })
     */
    upsert<T extends ScoutReputationUpsertArgs>(args: SelectSubset<T, ScoutReputationUpsertArgs<ExtArgs>>): Prisma__ScoutReputationClient<$Result.GetResult<Prisma.$ScoutReputationPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of ScoutReputations.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {ScoutReputationCountArgs} args - Arguments to filter ScoutReputations to count.
     * @example
     * // Count the number of ScoutReputations
     * const count = await prisma.scoutReputation.count({
     *   where: {
     *     // ... the filter for the ScoutReputations we want to count
     *   }
     * })
    **/
    count<T extends ScoutReputationCountArgs>(
      args?: Subset<T, ScoutReputationCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], ScoutReputationCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a ScoutReputation.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {ScoutReputationAggregateArgs} args - Select which aggregations you would like to apply and on what fields.
     * @example
     * // Ordered by age ascending
     * // Where email contains prisma.io
     * // Limited to the 10 users
     * const aggregations = await prisma.user.aggregate({
     *   _avg: {
     *     age: true,
     *   },
     *   where: {
     *     email: {
     *       contains: "prisma.io",
     *     },
     *   },
     *   orderBy: {
     *     age: "asc",
     *   },
     *   take: 10,
     * })
    **/
    aggregate<T extends ScoutReputationAggregateArgs>(args: Subset<T, ScoutReputationAggregateArgs>): Prisma.PrismaPromise<GetScoutReputationAggregateType<T>>

    /**
     * Group by ScoutReputation.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {ScoutReputationGroupByArgs} args - Group by arguments.
     * @example
     * // Group by city, order by createdAt, get count
     * const result = await prisma.user.groupBy({
     *   by: ['city', 'createdAt'],
     *   orderBy: {
     *     createdAt: true
     *   },
     *   _count: {
     *     _all: true
     *   },
     * })
     * 
    **/
    groupBy<
      T extends ScoutReputationGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: ScoutReputationGroupByArgs['orderBy'] }
        : { orderBy?: ScoutReputationGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, ScoutReputationGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetScoutReputationGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the ScoutReputation model
   */
  readonly fields: ScoutReputationFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for ScoutReputation.
   * Why is this prefixed with `Prisma__`?
   * Because we want to prevent naming conflicts as mentioned in
   * https://github.com/prisma/prisma-client-js/issues/707
   */
  export interface Prisma__ScoutReputationClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    scout_agent<T extends AgentProfileDefaultArgs<ExtArgs> = {}>(args?: Subset<T, AgentProfileDefaultArgs<ExtArgs>>): Prisma__AgentProfileClient<$Result.GetResult<Prisma.$AgentProfilePayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the ScoutReputation model
   */
  interface ScoutReputationFieldRefs {
    readonly id: FieldRef<"ScoutReputation", 'String'>
    readonly scout_id: FieldRef<"ScoutReputation", 'String'>
    readonly successful_conversions: FieldRef<"ScoutReputation", 'Int'>
    readonly spam_score: FieldRef<"ScoutReputation", 'Float'>
    readonly chargeback_count: FieldRef<"ScoutReputation", 'Int'>
    readonly created_at: FieldRef<"ScoutReputation", 'DateTime'>
    readonly updated_at: FieldRef<"ScoutReputation", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * ScoutReputation findUnique
   */
  export type ScoutReputationFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ScoutReputation
     */
    select?: ScoutReputationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ScoutReputation
     */
    omit?: ScoutReputationOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ScoutReputationInclude<ExtArgs> | null
    /**
     * Filter, which ScoutReputation to fetch.
     */
    where: ScoutReputationWhereUniqueInput
  }

  /**
   * ScoutReputation findUniqueOrThrow
   */
  export type ScoutReputationFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ScoutReputation
     */
    select?: ScoutReputationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ScoutReputation
     */
    omit?: ScoutReputationOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ScoutReputationInclude<ExtArgs> | null
    /**
     * Filter, which ScoutReputation to fetch.
     */
    where: ScoutReputationWhereUniqueInput
  }

  /**
   * ScoutReputation findFirst
   */
  export type ScoutReputationFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ScoutReputation
     */
    select?: ScoutReputationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ScoutReputation
     */
    omit?: ScoutReputationOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ScoutReputationInclude<ExtArgs> | null
    /**
     * Filter, which ScoutReputation to fetch.
     */
    where?: ScoutReputationWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of ScoutReputations to fetch.
     */
    orderBy?: ScoutReputationOrderByWithRelationInput | ScoutReputationOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for ScoutReputations.
     */
    cursor?: ScoutReputationWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` ScoutReputations from the position of the cursor.
     */
    take?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Skip the first `n` ScoutReputations.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of ScoutReputations.
     */
    distinct?: ScoutReputationScalarFieldEnum | ScoutReputationScalarFieldEnum[]
  }

  /**
   * ScoutReputation findFirstOrThrow
   */
  export type ScoutReputationFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ScoutReputation
     */
    select?: ScoutReputationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ScoutReputation
     */
    omit?: ScoutReputationOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ScoutReputationInclude<ExtArgs> | null
    /**
     * Filter, which ScoutReputation to fetch.
     */
    where?: ScoutReputationWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of ScoutReputations to fetch.
     */
    orderBy?: ScoutReputationOrderByWithRelationInput | ScoutReputationOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for ScoutReputations.
     */
    cursor?: ScoutReputationWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` ScoutReputations from the position of the cursor.
     */
    take?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Skip the first `n` ScoutReputations.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of ScoutReputations.
     */
    distinct?: ScoutReputationScalarFieldEnum | ScoutReputationScalarFieldEnum[]
  }

  /**
   * ScoutReputation findMany
   */
  export type ScoutReputationFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ScoutReputation
     */
    select?: ScoutReputationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ScoutReputation
     */
    omit?: ScoutReputationOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ScoutReputationInclude<ExtArgs> | null
    /**
     * Filter, which ScoutReputations to fetch.
     */
    where?: ScoutReputationWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of ScoutReputations to fetch.
     */
    orderBy?: ScoutReputationOrderByWithRelationInput | ScoutReputationOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing ScoutReputations.
     */
    cursor?: ScoutReputationWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` ScoutReputations from the position of the cursor.
     */
    take?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Skip the first `n` ScoutReputations.
     */
    skip?: number
    distinct?: ScoutReputationScalarFieldEnum | ScoutReputationScalarFieldEnum[]
  }

  /**
   * ScoutReputation create
   */
  export type ScoutReputationCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ScoutReputation
     */
    select?: ScoutReputationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ScoutReputation
     */
    omit?: ScoutReputationOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ScoutReputationInclude<ExtArgs> | null
    /**
     * The data needed to create a ScoutReputation.
     */
    data: XOR<ScoutReputationCreateInput, ScoutReputationUncheckedCreateInput>
  }

  /**
   * ScoutReputation createMany
   */
  export type ScoutReputationCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many ScoutReputations.
     */
    data: ScoutReputationCreateManyInput | ScoutReputationCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * ScoutReputation createManyAndReturn
   */
  export type ScoutReputationCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ScoutReputation
     */
    select?: ScoutReputationSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the ScoutReputation
     */
    omit?: ScoutReputationOmit<ExtArgs> | null
    /**
     * The data used to create many ScoutReputations.
     */
    data: ScoutReputationCreateManyInput | ScoutReputationCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ScoutReputationIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * ScoutReputation update
   */
  export type ScoutReputationUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ScoutReputation
     */
    select?: ScoutReputationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ScoutReputation
     */
    omit?: ScoutReputationOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ScoutReputationInclude<ExtArgs> | null
    /**
     * The data needed to update a ScoutReputation.
     */
    data: XOR<ScoutReputationUpdateInput, ScoutReputationUncheckedUpdateInput>
    /**
     * Choose, which ScoutReputation to update.
     */
    where: ScoutReputationWhereUniqueInput
  }

  /**
   * ScoutReputation updateMany
   */
  export type ScoutReputationUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update ScoutReputations.
     */
    data: XOR<ScoutReputationUpdateManyMutationInput, ScoutReputationUncheckedUpdateManyInput>
    /**
     * Filter which ScoutReputations to update
     */
    where?: ScoutReputationWhereInput
    /**
     * Limit how many ScoutReputations to update.
     */
    limit?: number
  }

  /**
   * ScoutReputation updateManyAndReturn
   */
  export type ScoutReputationUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ScoutReputation
     */
    select?: ScoutReputationSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the ScoutReputation
     */
    omit?: ScoutReputationOmit<ExtArgs> | null
    /**
     * The data used to update ScoutReputations.
     */
    data: XOR<ScoutReputationUpdateManyMutationInput, ScoutReputationUncheckedUpdateManyInput>
    /**
     * Filter which ScoutReputations to update
     */
    where?: ScoutReputationWhereInput
    /**
     * Limit how many ScoutReputations to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ScoutReputationIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * ScoutReputation upsert
   */
  export type ScoutReputationUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ScoutReputation
     */
    select?: ScoutReputationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ScoutReputation
     */
    omit?: ScoutReputationOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ScoutReputationInclude<ExtArgs> | null
    /**
     * The filter to search for the ScoutReputation to update in case it exists.
     */
    where: ScoutReputationWhereUniqueInput
    /**
     * In case the ScoutReputation found by the `where` argument doesn't exist, create a new ScoutReputation with this data.
     */
    create: XOR<ScoutReputationCreateInput, ScoutReputationUncheckedCreateInput>
    /**
     * In case the ScoutReputation was found with the provided `where` argument, update it with this data.
     */
    update: XOR<ScoutReputationUpdateInput, ScoutReputationUncheckedUpdateInput>
  }

  /**
   * ScoutReputation delete
   */
  export type ScoutReputationDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ScoutReputation
     */
    select?: ScoutReputationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ScoutReputation
     */
    omit?: ScoutReputationOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ScoutReputationInclude<ExtArgs> | null
    /**
     * Filter which ScoutReputation to delete.
     */
    where: ScoutReputationWhereUniqueInput
  }

  /**
   * ScoutReputation deleteMany
   */
  export type ScoutReputationDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which ScoutReputations to delete
     */
    where?: ScoutReputationWhereInput
    /**
     * Limit how many ScoutReputations to delete.
     */
    limit?: number
  }

  /**
   * ScoutReputation without action
   */
  export type ScoutReputationDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ScoutReputation
     */
    select?: ScoutReputationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ScoutReputation
     */
    omit?: ScoutReputationOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ScoutReputationInclude<ExtArgs> | null
  }


  /**
   * Model BidProposal
   */

  export type AggregateBidProposal = {
    _count: BidProposalCountAggregateOutputType | null
    _avg: BidProposalAvgAggregateOutputType | null
    _sum: BidProposalSumAggregateOutputType | null
    _min: BidProposalMinAggregateOutputType | null
    _max: BidProposalMaxAggregateOutputType | null
  }

  export type BidProposalAvgAggregateOutputType = {
    proposed_reward: number | null
    estimated_duration_hours: number | null
    counter_offer_amount: number | null
    broker_fee_percentage: number | null
  }

  export type BidProposalSumAggregateOutputType = {
    proposed_reward: number | null
    estimated_duration_hours: number | null
    counter_offer_amount: number | null
    broker_fee_percentage: number | null
  }

  export type BidProposalMinAggregateOutputType = {
    id: string | null
    task_id: string | null
    agent_id: string | null
    proposed_reward: number | null
    estimated_duration_hours: number | null
    quality_guarantee: string | null
    status: string | null
    counter_offer_amount: number | null
    broker_agent_id: string | null
    broker_fee_percentage: number | null
    created_at: Date | null
    updated_at: Date | null
  }

  export type BidProposalMaxAggregateOutputType = {
    id: string | null
    task_id: string | null
    agent_id: string | null
    proposed_reward: number | null
    estimated_duration_hours: number | null
    quality_guarantee: string | null
    status: string | null
    counter_offer_amount: number | null
    broker_agent_id: string | null
    broker_fee_percentage: number | null
    created_at: Date | null
    updated_at: Date | null
  }

  export type BidProposalCountAggregateOutputType = {
    id: number
    task_id: number
    agent_id: number
    proposed_reward: number
    estimated_duration_hours: number
    quality_guarantee: number
    status: number
    counter_offer_amount: number
    broker_agent_id: number
    broker_fee_percentage: number
    created_at: number
    updated_at: number
    _all: number
  }


  export type BidProposalAvgAggregateInputType = {
    proposed_reward?: true
    estimated_duration_hours?: true
    counter_offer_amount?: true
    broker_fee_percentage?: true
  }

  export type BidProposalSumAggregateInputType = {
    proposed_reward?: true
    estimated_duration_hours?: true
    counter_offer_amount?: true
    broker_fee_percentage?: true
  }

  export type BidProposalMinAggregateInputType = {
    id?: true
    task_id?: true
    agent_id?: true
    proposed_reward?: true
    estimated_duration_hours?: true
    quality_guarantee?: true
    status?: true
    counter_offer_amount?: true
    broker_agent_id?: true
    broker_fee_percentage?: true
    created_at?: true
    updated_at?: true
  }

  export type BidProposalMaxAggregateInputType = {
    id?: true
    task_id?: true
    agent_id?: true
    proposed_reward?: true
    estimated_duration_hours?: true
    quality_guarantee?: true
    status?: true
    counter_offer_amount?: true
    broker_agent_id?: true
    broker_fee_percentage?: true
    created_at?: true
    updated_at?: true
  }

  export type BidProposalCountAggregateInputType = {
    id?: true
    task_id?: true
    agent_id?: true
    proposed_reward?: true
    estimated_duration_hours?: true
    quality_guarantee?: true
    status?: true
    counter_offer_amount?: true
    broker_agent_id?: true
    broker_fee_percentage?: true
    created_at?: true
    updated_at?: true
    _all?: true
  }

  export type BidProposalAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which BidProposal to aggregate.
     */
    where?: BidProposalWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of BidProposals to fetch.
     */
    orderBy?: BidProposalOrderByWithRelationInput | BidProposalOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: BidProposalWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` BidProposals from the position of the cursor.
     */
    take?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Skip the first `n` BidProposals.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned BidProposals
    **/
    _count?: true | BidProposalCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: BidProposalAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: BidProposalSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: BidProposalMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: BidProposalMaxAggregateInputType
  }

  export type GetBidProposalAggregateType<T extends BidProposalAggregateArgs> = {
        [P in keyof T & keyof AggregateBidProposal]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateBidProposal[P]>
      : GetScalarType<T[P], AggregateBidProposal[P]>
  }




  export type BidProposalGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: BidProposalWhereInput
    orderBy?: BidProposalOrderByWithAggregationInput | BidProposalOrderByWithAggregationInput[]
    by: BidProposalScalarFieldEnum[] | BidProposalScalarFieldEnum
    having?: BidProposalScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: BidProposalCountAggregateInputType | true
    _avg?: BidProposalAvgAggregateInputType
    _sum?: BidProposalSumAggregateInputType
    _min?: BidProposalMinAggregateInputType
    _max?: BidProposalMaxAggregateInputType
  }

  export type BidProposalGroupByOutputType = {
    id: string
    task_id: string
    agent_id: string
    proposed_reward: number
    estimated_duration_hours: number
    quality_guarantee: string | null
    status: string
    counter_offer_amount: number | null
    broker_agent_id: string | null
    broker_fee_percentage: number | null
    created_at: Date
    updated_at: Date
    _count: BidProposalCountAggregateOutputType | null
    _avg: BidProposalAvgAggregateOutputType | null
    _sum: BidProposalSumAggregateOutputType | null
    _min: BidProposalMinAggregateOutputType | null
    _max: BidProposalMaxAggregateOutputType | null
  }

  type GetBidProposalGroupByPayload<T extends BidProposalGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<BidProposalGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof BidProposalGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], BidProposalGroupByOutputType[P]>
            : GetScalarType<T[P], BidProposalGroupByOutputType[P]>
        }
      >
    >


  export type BidProposalSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    task_id?: boolean
    agent_id?: boolean
    proposed_reward?: boolean
    estimated_duration_hours?: boolean
    quality_guarantee?: boolean
    status?: boolean
    counter_offer_amount?: boolean
    broker_agent_id?: boolean
    broker_fee_percentage?: boolean
    created_at?: boolean
    updated_at?: boolean
    task?: boolean | TaskDefaultArgs<ExtArgs>
    agent?: boolean | AgentProfileDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["bidProposal"]>

  export type BidProposalSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    task_id?: boolean
    agent_id?: boolean
    proposed_reward?: boolean
    estimated_duration_hours?: boolean
    quality_guarantee?: boolean
    status?: boolean
    counter_offer_amount?: boolean
    broker_agent_id?: boolean
    broker_fee_percentage?: boolean
    created_at?: boolean
    updated_at?: boolean
    task?: boolean | TaskDefaultArgs<ExtArgs>
    agent?: boolean | AgentProfileDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["bidProposal"]>

  export type BidProposalSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    task_id?: boolean
    agent_id?: boolean
    proposed_reward?: boolean
    estimated_duration_hours?: boolean
    quality_guarantee?: boolean
    status?: boolean
    counter_offer_amount?: boolean
    broker_agent_id?: boolean
    broker_fee_percentage?: boolean
    created_at?: boolean
    updated_at?: boolean
    task?: boolean | TaskDefaultArgs<ExtArgs>
    agent?: boolean | AgentProfileDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["bidProposal"]>

  export type BidProposalSelectScalar = {
    id?: boolean
    task_id?: boolean
    agent_id?: boolean
    proposed_reward?: boolean
    estimated_duration_hours?: boolean
    quality_guarantee?: boolean
    status?: boolean
    counter_offer_amount?: boolean
    broker_agent_id?: boolean
    broker_fee_percentage?: boolean
    created_at?: boolean
    updated_at?: boolean
  }

  export type BidProposalOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "task_id" | "agent_id" | "proposed_reward" | "estimated_duration_hours" | "quality_guarantee" | "status" | "counter_offer_amount" | "broker_agent_id" | "broker_fee_percentage" | "created_at" | "updated_at", ExtArgs["result"]["bidProposal"]>
  export type BidProposalInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    task?: boolean | TaskDefaultArgs<ExtArgs>
    agent?: boolean | AgentProfileDefaultArgs<ExtArgs>
  }
  export type BidProposalIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    task?: boolean | TaskDefaultArgs<ExtArgs>
    agent?: boolean | AgentProfileDefaultArgs<ExtArgs>
  }
  export type BidProposalIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    task?: boolean | TaskDefaultArgs<ExtArgs>
    agent?: boolean | AgentProfileDefaultArgs<ExtArgs>
  }

  export type $BidProposalPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "BidProposal"
    objects: {
      task: Prisma.$TaskPayload<ExtArgs>
      agent: Prisma.$AgentProfilePayload<ExtArgs>
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      task_id: string
      agent_id: string
      proposed_reward: number
      estimated_duration_hours: number
      quality_guarantee: string | null
      status: string
      counter_offer_amount: number | null
      broker_agent_id: string | null
      broker_fee_percentage: number | null
      created_at: Date
      updated_at: Date
    }, ExtArgs["result"]["bidProposal"]>
    composites: {}
  }

  type BidProposalGetPayload<S extends boolean | null | undefined | BidProposalDefaultArgs> = $Result.GetResult<Prisma.$BidProposalPayload, S>

  type BidProposalCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<BidProposalFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: BidProposalCountAggregateInputType | true
    }

  export interface BidProposalDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['BidProposal'], meta: { name: 'BidProposal' } }
    /**
     * Find zero or one BidProposal that matches the filter.
     * @param {BidProposalFindUniqueArgs} args - Arguments to find a BidProposal
     * @example
     * // Get one BidProposal
     * const bidProposal = await prisma.bidProposal.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends BidProposalFindUniqueArgs>(args: SelectSubset<T, BidProposalFindUniqueArgs<ExtArgs>>): Prisma__BidProposalClient<$Result.GetResult<Prisma.$BidProposalPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one BidProposal that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {BidProposalFindUniqueOrThrowArgs} args - Arguments to find a BidProposal
     * @example
     * // Get one BidProposal
     * const bidProposal = await prisma.bidProposal.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends BidProposalFindUniqueOrThrowArgs>(args: SelectSubset<T, BidProposalFindUniqueOrThrowArgs<ExtArgs>>): Prisma__BidProposalClient<$Result.GetResult<Prisma.$BidProposalPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first BidProposal that matches the filter.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {BidProposalFindFirstArgs} args - Arguments to find a BidProposal
     * @example
     * // Get one BidProposal
     * const bidProposal = await prisma.bidProposal.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends BidProposalFindFirstArgs>(args?: SelectSubset<T, BidProposalFindFirstArgs<ExtArgs>>): Prisma__BidProposalClient<$Result.GetResult<Prisma.$BidProposalPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first BidProposal that matches the filter or
     * throw `PrismaKnownClientError` with `P2025` code if no matches were found.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {BidProposalFindFirstOrThrowArgs} args - Arguments to find a BidProposal
     * @example
     * // Get one BidProposal
     * const bidProposal = await prisma.bidProposal.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends BidProposalFindFirstOrThrowArgs>(args?: SelectSubset<T, BidProposalFindFirstOrThrowArgs<ExtArgs>>): Prisma__BidProposalClient<$Result.GetResult<Prisma.$BidProposalPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more BidProposals that matches the filter.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {BidProposalFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all BidProposals
     * const bidProposals = await prisma.bidProposal.findMany()
     * 
     * // Get first 10 BidProposals
     * const bidProposals = await prisma.bidProposal.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const bidProposalWithIdOnly = await prisma.bidProposal.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends BidProposalFindManyArgs>(args?: SelectSubset<T, BidProposalFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$BidProposalPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a BidProposal.
     * @param {BidProposalCreateArgs} args - Arguments to create a BidProposal.
     * @example
     * // Create one BidProposal
     * const BidProposal = await prisma.bidProposal.create({
     *   data: {
     *     // ... data to create a BidProposal
     *   }
     * })
     * 
     */
    create<T extends BidProposalCreateArgs>(args: SelectSubset<T, BidProposalCreateArgs<ExtArgs>>): Prisma__BidProposalClient<$Result.GetResult<Prisma.$BidProposalPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many BidProposals.
     * @param {BidProposalCreateManyArgs} args - Arguments to create many BidProposals.
     * @example
     * // Create many BidProposals
     * const bidProposal = await prisma.bidProposal.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends BidProposalCreateManyArgs>(args?: SelectSubset<T, BidProposalCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many BidProposals and returns the data saved in the database.
     * @param {BidProposalCreateManyAndReturnArgs} args - Arguments to create many BidProposals.
     * @example
     * // Create many BidProposals
     * const bidProposal = await prisma.bidProposal.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many BidProposals and only return the `id`
     * const bidProposalWithIdOnly = await prisma.bidProposal.createManyAndReturn({
     *   select: { id: true },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * 
     */
    createManyAndReturn<T extends BidProposalCreateManyAndReturnArgs>(args?: SelectSubset<T, BidProposalCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$BidProposalPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a BidProposal.
     * @param {BidProposalDeleteArgs} args - Arguments to delete one BidProposal.
     * @example
     * // Delete one BidProposal
     * const BidProposal = await prisma.bidProposal.delete({
     *   where: {
     *     // ... filter to delete one BidProposal
     *   }
     * })
     * 
     */
    delete<T extends BidProposalDeleteArgs>(args: SelectSubset<T, BidProposalDeleteArgs<ExtArgs>>): Prisma__BidProposalClient<$Result.GetResult<Prisma.$BidProposalPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one BidProposal.
     * @param {BidProposalUpdateArgs} args - Arguments to update one BidProposal.
     * @example
     * // Update one BidProposal
     * const bidProposal = await prisma.bidProposal.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends BidProposalUpdateArgs>(args: SelectSubset<T, BidProposalUpdateArgs<ExtArgs>>): Prisma__BidProposalClient<$Result.GetResult<Prisma.$BidProposalPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more BidProposals.
     * @param {BidProposalDeleteManyArgs} args - Arguments to filter BidProposals to delete.
     * @example
     * // Delete a few BidProposals
     * const { count } = await prisma.bidProposal.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends BidProposalDeleteManyArgs>(args?: SelectSubset<T, BidProposalDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more BidProposals.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {BidProposalUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many BidProposals
     * const bidProposal = await prisma.bidProposal.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends BidProposalUpdateManyArgs>(args: SelectSubset<T, BidProposalUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more BidProposals and returns the data updated in the database.
     * @param {BidProposalUpdateManyAndReturnArgs} args - Arguments to update many BidProposals.
     * @example
     * // Update many BidProposals
     * const bidProposal = await prisma.bidProposal.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more BidProposals and only return the `id`
     * const bidProposalWithIdOnly = await prisma.bidProposal.updateManyAndReturn({
     *   select: { id: true },
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * 
     */
    updateManyAndReturn<T extends BidProposalUpdateManyAndReturnArgs>(args: SelectSubset<T, BidProposalUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$BidProposalPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one BidProposal.
     * @param {BidProposalUpsertArgs} args - Arguments to update or create a BidProposal.
     * @example
     * // Update or create a BidProposal
     * const bidProposal = await prisma.bidProposal.upsert({
     *   create: {
     *     // ... data to create a BidProposal
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the BidProposal we want to update
     *   }
     * })
     */
    upsert<T extends BidProposalUpsertArgs>(args: SelectSubset<T, BidProposalUpsertArgs<ExtArgs>>): Prisma__BidProposalClient<$Result.GetResult<Prisma.$BidProposalPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of BidProposals.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {BidProposalCountArgs} args - Arguments to filter BidProposals to count.
     * @example
     * // Count the number of BidProposals
     * const count = await prisma.bidProposal.count({
     *   where: {
     *     // ... the filter for the BidProposals we want to count
     *   }
     * })
    **/
    count<T extends BidProposalCountArgs>(
      args?: Subset<T, BidProposalCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], BidProposalCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a BidProposal.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {BidProposalAggregateArgs} args - Select which aggregations you would like to apply and on what fields.
     * @example
     * // Ordered by age ascending
     * // Where email contains prisma.io
     * // Limited to the 10 users
     * const aggregations = await prisma.user.aggregate({
     *   _avg: {
     *     age: true,
     *   },
     *   where: {
     *     email: {
     *       contains: "prisma.io",
     *     },
     *   },
     *   orderBy: {
     *     age: "asc",
     *   },
     *   take: 10,
     * })
    **/
    aggregate<T extends BidProposalAggregateArgs>(args: Subset<T, BidProposalAggregateArgs>): Prisma.PrismaPromise<GetBidProposalAggregateType<T>>

    /**
     * Group by BidProposal.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {BidProposalGroupByArgs} args - Group by arguments.
     * @example
     * // Group by city, order by createdAt, get count
     * const result = await prisma.user.groupBy({
     *   by: ['city', 'createdAt'],
     *   orderBy: {
     *     createdAt: true
     *   },
     *   _count: {
     *     _all: true
     *   },
     * })
     * 
    **/
    groupBy<
      T extends BidProposalGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: BidProposalGroupByArgs['orderBy'] }
        : { orderBy?: BidProposalGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, BidProposalGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetBidProposalGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the BidProposal model
   */
  readonly fields: BidProposalFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for BidProposal.
   * Why is this prefixed with `Prisma__`?
   * Because we want to prevent naming conflicts as mentioned in
   * https://github.com/prisma/prisma-client-js/issues/707
   */
  export interface Prisma__BidProposalClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    task<T extends TaskDefaultArgs<ExtArgs> = {}>(args?: Subset<T, TaskDefaultArgs<ExtArgs>>): Prisma__TaskClient<$Result.GetResult<Prisma.$TaskPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    agent<T extends AgentProfileDefaultArgs<ExtArgs> = {}>(args?: Subset<T, AgentProfileDefaultArgs<ExtArgs>>): Prisma__AgentProfileClient<$Result.GetResult<Prisma.$AgentProfilePayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the BidProposal model
   */
  interface BidProposalFieldRefs {
    readonly id: FieldRef<"BidProposal", 'String'>
    readonly task_id: FieldRef<"BidProposal", 'String'>
    readonly agent_id: FieldRef<"BidProposal", 'String'>
    readonly proposed_reward: FieldRef<"BidProposal", 'Int'>
    readonly estimated_duration_hours: FieldRef<"BidProposal", 'Float'>
    readonly quality_guarantee: FieldRef<"BidProposal", 'String'>
    readonly status: FieldRef<"BidProposal", 'String'>
    readonly counter_offer_amount: FieldRef<"BidProposal", 'Int'>
    readonly broker_agent_id: FieldRef<"BidProposal", 'String'>
    readonly broker_fee_percentage: FieldRef<"BidProposal", 'Float'>
    readonly created_at: FieldRef<"BidProposal", 'DateTime'>
    readonly updated_at: FieldRef<"BidProposal", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * BidProposal findUnique
   */
  export type BidProposalFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the BidProposal
     */
    select?: BidProposalSelect<ExtArgs> | null
    /**
     * Omit specific fields from the BidProposal
     */
    omit?: BidProposalOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: BidProposalInclude<ExtArgs> | null
    /**
     * Filter, which BidProposal to fetch.
     */
    where: BidProposalWhereUniqueInput
  }

  /**
   * BidProposal findUniqueOrThrow
   */
  export type BidProposalFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the BidProposal
     */
    select?: BidProposalSelect<ExtArgs> | null
    /**
     * Omit specific fields from the BidProposal
     */
    omit?: BidProposalOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: BidProposalInclude<ExtArgs> | null
    /**
     * Filter, which BidProposal to fetch.
     */
    where: BidProposalWhereUniqueInput
  }

  /**
   * BidProposal findFirst
   */
  export type BidProposalFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the BidProposal
     */
    select?: BidProposalSelect<ExtArgs> | null
    /**
     * Omit specific fields from the BidProposal
     */
    omit?: BidProposalOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: BidProposalInclude<ExtArgs> | null
    /**
     * Filter, which BidProposal to fetch.
     */
    where?: BidProposalWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of BidProposals to fetch.
     */
    orderBy?: BidProposalOrderByWithRelationInput | BidProposalOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for BidProposals.
     */
    cursor?: BidProposalWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` BidProposals from the position of the cursor.
     */
    take?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Skip the first `n` BidProposals.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of BidProposals.
     */
    distinct?: BidProposalScalarFieldEnum | BidProposalScalarFieldEnum[]
  }

  /**
   * BidProposal findFirstOrThrow
   */
  export type BidProposalFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the BidProposal
     */
    select?: BidProposalSelect<ExtArgs> | null
    /**
     * Omit specific fields from the BidProposal
     */
    omit?: BidProposalOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: BidProposalInclude<ExtArgs> | null
    /**
     * Filter, which BidProposal to fetch.
     */
    where?: BidProposalWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of BidProposals to fetch.
     */
    orderBy?: BidProposalOrderByWithRelationInput | BidProposalOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for BidProposals.
     */
    cursor?: BidProposalWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` BidProposals from the position of the cursor.
     */
    take?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Skip the first `n` BidProposals.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of BidProposals.
     */
    distinct?: BidProposalScalarFieldEnum | BidProposalScalarFieldEnum[]
  }

  /**
   * BidProposal findMany
   */
  export type BidProposalFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the BidProposal
     */
    select?: BidProposalSelect<ExtArgs> | null
    /**
     * Omit specific fields from the BidProposal
     */
    omit?: BidProposalOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: BidProposalInclude<ExtArgs> | null
    /**
     * Filter, which BidProposals to fetch.
     */
    where?: BidProposalWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of BidProposals to fetch.
     */
    orderBy?: BidProposalOrderByWithRelationInput | BidProposalOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing BidProposals.
     */
    cursor?: BidProposalWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` BidProposals from the position of the cursor.
     */
    take?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Skip the first `n` BidProposals.
     */
    skip?: number
    distinct?: BidProposalScalarFieldEnum | BidProposalScalarFieldEnum[]
  }

  /**
   * BidProposal create
   */
  export type BidProposalCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the BidProposal
     */
    select?: BidProposalSelect<ExtArgs> | null
    /**
     * Omit specific fields from the BidProposal
     */
    omit?: BidProposalOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: BidProposalInclude<ExtArgs> | null
    /**
     * The data needed to create a BidProposal.
     */
    data: XOR<BidProposalCreateInput, BidProposalUncheckedCreateInput>
  }

  /**
   * BidProposal createMany
   */
  export type BidProposalCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many BidProposals.
     */
    data: BidProposalCreateManyInput | BidProposalCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * BidProposal createManyAndReturn
   */
  export type BidProposalCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the BidProposal
     */
    select?: BidProposalSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the BidProposal
     */
    omit?: BidProposalOmit<ExtArgs> | null
    /**
     * The data used to create many BidProposals.
     */
    data: BidProposalCreateManyInput | BidProposalCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: BidProposalIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * BidProposal update
   */
  export type BidProposalUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the BidProposal
     */
    select?: BidProposalSelect<ExtArgs> | null
    /**
     * Omit specific fields from the BidProposal
     */
    omit?: BidProposalOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: BidProposalInclude<ExtArgs> | null
    /**
     * The data needed to update a BidProposal.
     */
    data: XOR<BidProposalUpdateInput, BidProposalUncheckedUpdateInput>
    /**
     * Choose, which BidProposal to update.
     */
    where: BidProposalWhereUniqueInput
  }

  /**
   * BidProposal updateMany
   */
  export type BidProposalUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update BidProposals.
     */
    data: XOR<BidProposalUpdateManyMutationInput, BidProposalUncheckedUpdateManyInput>
    /**
     * Filter which BidProposals to update
     */
    where?: BidProposalWhereInput
    /**
     * Limit how many BidProposals to update.
     */
    limit?: number
  }

  /**
   * BidProposal updateManyAndReturn
   */
  export type BidProposalUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the BidProposal
     */
    select?: BidProposalSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the BidProposal
     */
    omit?: BidProposalOmit<ExtArgs> | null
    /**
     * The data used to update BidProposals.
     */
    data: XOR<BidProposalUpdateManyMutationInput, BidProposalUncheckedUpdateManyInput>
    /**
     * Filter which BidProposals to update
     */
    where?: BidProposalWhereInput
    /**
     * Limit how many BidProposals to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: BidProposalIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * BidProposal upsert
   */
  export type BidProposalUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the BidProposal
     */
    select?: BidProposalSelect<ExtArgs> | null
    /**
     * Omit specific fields from the BidProposal
     */
    omit?: BidProposalOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: BidProposalInclude<ExtArgs> | null
    /**
     * The filter to search for the BidProposal to update in case it exists.
     */
    where: BidProposalWhereUniqueInput
    /**
     * In case the BidProposal found by the `where` argument doesn't exist, create a new BidProposal with this data.
     */
    create: XOR<BidProposalCreateInput, BidProposalUncheckedCreateInput>
    /**
     * In case the BidProposal was found with the provided `where` argument, update it with this data.
     */
    update: XOR<BidProposalUpdateInput, BidProposalUncheckedUpdateInput>
  }

  /**
   * BidProposal delete
   */
  export type BidProposalDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the BidProposal
     */
    select?: BidProposalSelect<ExtArgs> | null
    /**
     * Omit specific fields from the BidProposal
     */
    omit?: BidProposalOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: BidProposalInclude<ExtArgs> | null
    /**
     * Filter which BidProposal to delete.
     */
    where: BidProposalWhereUniqueInput
  }

  /**
   * BidProposal deleteMany
   */
  export type BidProposalDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which BidProposals to delete
     */
    where?: BidProposalWhereInput
    /**
     * Limit how many BidProposals to delete.
     */
    limit?: number
  }

  /**
   * BidProposal without action
   */
  export type BidProposalDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the BidProposal
     */
    select?: BidProposalSelect<ExtArgs> | null
    /**
     * Omit specific fields from the BidProposal
     */
    omit?: BidProposalOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: BidProposalInclude<ExtArgs> | null
  }


  /**
   * Model AgentWebhook
   */

  export type AggregateAgentWebhook = {
    _count: AgentWebhookCountAggregateOutputType | null
    _min: AgentWebhookMinAggregateOutputType | null
    _max: AgentWebhookMaxAggregateOutputType | null
  }

  export type AgentWebhookMinAggregateOutputType = {
    id: string | null
    task_id: string | null
    agent_id: string | null
    webhook_url: string | null
    created_at: Date | null
    updated_at: Date | null
  }

  export type AgentWebhookMaxAggregateOutputType = {
    id: string | null
    task_id: string | null
    agent_id: string | null
    webhook_url: string | null
    created_at: Date | null
    updated_at: Date | null
  }

  export type AgentWebhookCountAggregateOutputType = {
    id: number
    task_id: number
    agent_id: number
    webhook_url: number
    events: number
    created_at: number
    updated_at: number
    _all: number
  }


  export type AgentWebhookMinAggregateInputType = {
    id?: true
    task_id?: true
    agent_id?: true
    webhook_url?: true
    created_at?: true
    updated_at?: true
  }

  export type AgentWebhookMaxAggregateInputType = {
    id?: true
    task_id?: true
    agent_id?: true
    webhook_url?: true
    created_at?: true
    updated_at?: true
  }

  export type AgentWebhookCountAggregateInputType = {
    id?: true
    task_id?: true
    agent_id?: true
    webhook_url?: true
    events?: true
    created_at?: true
    updated_at?: true
    _all?: true
  }

  export type AgentWebhookAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which AgentWebhook to aggregate.
     */
    where?: AgentWebhookWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AgentWebhooks to fetch.
     */
    orderBy?: AgentWebhookOrderByWithRelationInput | AgentWebhookOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: AgentWebhookWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AgentWebhooks from the position of the cursor.
     */
    take?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Skip the first `n` AgentWebhooks.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned AgentWebhooks
    **/
    _count?: true | AgentWebhookCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: AgentWebhookMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: AgentWebhookMaxAggregateInputType
  }

  export type GetAgentWebhookAggregateType<T extends AgentWebhookAggregateArgs> = {
        [P in keyof T & keyof AggregateAgentWebhook]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateAgentWebhook[P]>
      : GetScalarType<T[P], AggregateAgentWebhook[P]>
  }




  export type AgentWebhookGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: AgentWebhookWhereInput
    orderBy?: AgentWebhookOrderByWithAggregationInput | AgentWebhookOrderByWithAggregationInput[]
    by: AgentWebhookScalarFieldEnum[] | AgentWebhookScalarFieldEnum
    having?: AgentWebhookScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: AgentWebhookCountAggregateInputType | true
    _min?: AgentWebhookMinAggregateInputType
    _max?: AgentWebhookMaxAggregateInputType
  }

  export type AgentWebhookGroupByOutputType = {
    id: string
    task_id: string
    agent_id: string
    webhook_url: string
    events: string[]
    created_at: Date
    updated_at: Date
    _count: AgentWebhookCountAggregateOutputType | null
    _min: AgentWebhookMinAggregateOutputType | null
    _max: AgentWebhookMaxAggregateOutputType | null
  }

  type GetAgentWebhookGroupByPayload<T extends AgentWebhookGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<AgentWebhookGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof AgentWebhookGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], AgentWebhookGroupByOutputType[P]>
            : GetScalarType<T[P], AgentWebhookGroupByOutputType[P]>
        }
      >
    >


  export type AgentWebhookSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    task_id?: boolean
    agent_id?: boolean
    webhook_url?: boolean
    events?: boolean
    created_at?: boolean
    updated_at?: boolean
  }, ExtArgs["result"]["agentWebhook"]>

  export type AgentWebhookSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    task_id?: boolean
    agent_id?: boolean
    webhook_url?: boolean
    events?: boolean
    created_at?: boolean
    updated_at?: boolean
  }, ExtArgs["result"]["agentWebhook"]>

  export type AgentWebhookSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    task_id?: boolean
    agent_id?: boolean
    webhook_url?: boolean
    events?: boolean
    created_at?: boolean
    updated_at?: boolean
  }, ExtArgs["result"]["agentWebhook"]>

  export type AgentWebhookSelectScalar = {
    id?: boolean
    task_id?: boolean
    agent_id?: boolean
    webhook_url?: boolean
    events?: boolean
    created_at?: boolean
    updated_at?: boolean
  }

  export type AgentWebhookOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "task_id" | "agent_id" | "webhook_url" | "events" | "created_at" | "updated_at", ExtArgs["result"]["agentWebhook"]>

  export type $AgentWebhookPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "AgentWebhook"
    objects: {}
    scalars: $Extensions.GetPayloadResult<{
      id: string
      task_id: string
      agent_id: string
      webhook_url: string
      events: string[]
      created_at: Date
      updated_at: Date
    }, ExtArgs["result"]["agentWebhook"]>
    composites: {}
  }

  type AgentWebhookGetPayload<S extends boolean | null | undefined | AgentWebhookDefaultArgs> = $Result.GetResult<Prisma.$AgentWebhookPayload, S>

  type AgentWebhookCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<AgentWebhookFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: AgentWebhookCountAggregateInputType | true
    }

  export interface AgentWebhookDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['AgentWebhook'], meta: { name: 'AgentWebhook' } }
    /**
     * Find zero or one AgentWebhook that matches the filter.
     * @param {AgentWebhookFindUniqueArgs} args - Arguments to find a AgentWebhook
     * @example
     * // Get one AgentWebhook
     * const agentWebhook = await prisma.agentWebhook.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends AgentWebhookFindUniqueArgs>(args: SelectSubset<T, AgentWebhookFindUniqueArgs<ExtArgs>>): Prisma__AgentWebhookClient<$Result.GetResult<Prisma.$AgentWebhookPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one AgentWebhook that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {AgentWebhookFindUniqueOrThrowArgs} args - Arguments to find a AgentWebhook
     * @example
     * // Get one AgentWebhook
     * const agentWebhook = await prisma.agentWebhook.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends AgentWebhookFindUniqueOrThrowArgs>(args: SelectSubset<T, AgentWebhookFindUniqueOrThrowArgs<ExtArgs>>): Prisma__AgentWebhookClient<$Result.GetResult<Prisma.$AgentWebhookPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first AgentWebhook that matches the filter.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AgentWebhookFindFirstArgs} args - Arguments to find a AgentWebhook
     * @example
     * // Get one AgentWebhook
     * const agentWebhook = await prisma.agentWebhook.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends AgentWebhookFindFirstArgs>(args?: SelectSubset<T, AgentWebhookFindFirstArgs<ExtArgs>>): Prisma__AgentWebhookClient<$Result.GetResult<Prisma.$AgentWebhookPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first AgentWebhook that matches the filter or
     * throw `PrismaKnownClientError` with `P2025` code if no matches were found.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AgentWebhookFindFirstOrThrowArgs} args - Arguments to find a AgentWebhook
     * @example
     * // Get one AgentWebhook
     * const agentWebhook = await prisma.agentWebhook.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends AgentWebhookFindFirstOrThrowArgs>(args?: SelectSubset<T, AgentWebhookFindFirstOrThrowArgs<ExtArgs>>): Prisma__AgentWebhookClient<$Result.GetResult<Prisma.$AgentWebhookPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more AgentWebhooks that matches the filter.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AgentWebhookFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all AgentWebhooks
     * const agentWebhooks = await prisma.agentWebhook.findMany()
     * 
     * // Get first 10 AgentWebhooks
     * const agentWebhooks = await prisma.agentWebhook.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const agentWebhookWithIdOnly = await prisma.agentWebhook.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends AgentWebhookFindManyArgs>(args?: SelectSubset<T, AgentWebhookFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AgentWebhookPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a AgentWebhook.
     * @param {AgentWebhookCreateArgs} args - Arguments to create a AgentWebhook.
     * @example
     * // Create one AgentWebhook
     * const AgentWebhook = await prisma.agentWebhook.create({
     *   data: {
     *     // ... data to create a AgentWebhook
     *   }
     * })
     * 
     */
    create<T extends AgentWebhookCreateArgs>(args: SelectSubset<T, AgentWebhookCreateArgs<ExtArgs>>): Prisma__AgentWebhookClient<$Result.GetResult<Prisma.$AgentWebhookPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many AgentWebhooks.
     * @param {AgentWebhookCreateManyArgs} args - Arguments to create many AgentWebhooks.
     * @example
     * // Create many AgentWebhooks
     * const agentWebhook = await prisma.agentWebhook.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends AgentWebhookCreateManyArgs>(args?: SelectSubset<T, AgentWebhookCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many AgentWebhooks and returns the data saved in the database.
     * @param {AgentWebhookCreateManyAndReturnArgs} args - Arguments to create many AgentWebhooks.
     * @example
     * // Create many AgentWebhooks
     * const agentWebhook = await prisma.agentWebhook.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many AgentWebhooks and only return the `id`
     * const agentWebhookWithIdOnly = await prisma.agentWebhook.createManyAndReturn({
     *   select: { id: true },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * 
     */
    createManyAndReturn<T extends AgentWebhookCreateManyAndReturnArgs>(args?: SelectSubset<T, AgentWebhookCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AgentWebhookPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a AgentWebhook.
     * @param {AgentWebhookDeleteArgs} args - Arguments to delete one AgentWebhook.
     * @example
     * // Delete one AgentWebhook
     * const AgentWebhook = await prisma.agentWebhook.delete({
     *   where: {
     *     // ... filter to delete one AgentWebhook
     *   }
     * })
     * 
     */
    delete<T extends AgentWebhookDeleteArgs>(args: SelectSubset<T, AgentWebhookDeleteArgs<ExtArgs>>): Prisma__AgentWebhookClient<$Result.GetResult<Prisma.$AgentWebhookPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one AgentWebhook.
     * @param {AgentWebhookUpdateArgs} args - Arguments to update one AgentWebhook.
     * @example
     * // Update one AgentWebhook
     * const agentWebhook = await prisma.agentWebhook.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends AgentWebhookUpdateArgs>(args: SelectSubset<T, AgentWebhookUpdateArgs<ExtArgs>>): Prisma__AgentWebhookClient<$Result.GetResult<Prisma.$AgentWebhookPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more AgentWebhooks.
     * @param {AgentWebhookDeleteManyArgs} args - Arguments to filter AgentWebhooks to delete.
     * @example
     * // Delete a few AgentWebhooks
     * const { count } = await prisma.agentWebhook.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends AgentWebhookDeleteManyArgs>(args?: SelectSubset<T, AgentWebhookDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more AgentWebhooks.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AgentWebhookUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many AgentWebhooks
     * const agentWebhook = await prisma.agentWebhook.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends AgentWebhookUpdateManyArgs>(args: SelectSubset<T, AgentWebhookUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more AgentWebhooks and returns the data updated in the database.
     * @param {AgentWebhookUpdateManyAndReturnArgs} args - Arguments to update many AgentWebhooks.
     * @example
     * // Update many AgentWebhooks
     * const agentWebhook = await prisma.agentWebhook.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more AgentWebhooks and only return the `id`
     * const agentWebhookWithIdOnly = await prisma.agentWebhook.updateManyAndReturn({
     *   select: { id: true },
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * 
     */
    updateManyAndReturn<T extends AgentWebhookUpdateManyAndReturnArgs>(args: SelectSubset<T, AgentWebhookUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AgentWebhookPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one AgentWebhook.
     * @param {AgentWebhookUpsertArgs} args - Arguments to update or create a AgentWebhook.
     * @example
     * // Update or create a AgentWebhook
     * const agentWebhook = await prisma.agentWebhook.upsert({
     *   create: {
     *     // ... data to create a AgentWebhook
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the AgentWebhook we want to update
     *   }
     * })
     */
    upsert<T extends AgentWebhookUpsertArgs>(args: SelectSubset<T, AgentWebhookUpsertArgs<ExtArgs>>): Prisma__AgentWebhookClient<$Result.GetResult<Prisma.$AgentWebhookPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of AgentWebhooks.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AgentWebhookCountArgs} args - Arguments to filter AgentWebhooks to count.
     * @example
     * // Count the number of AgentWebhooks
     * const count = await prisma.agentWebhook.count({
     *   where: {
     *     // ... the filter for the AgentWebhooks we want to count
     *   }
     * })
    **/
    count<T extends AgentWebhookCountArgs>(
      args?: Subset<T, AgentWebhookCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], AgentWebhookCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a AgentWebhook.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AgentWebhookAggregateArgs} args - Select which aggregations you would like to apply and on what fields.
     * @example
     * // Ordered by age ascending
     * // Where email contains prisma.io
     * // Limited to the 10 users
     * const aggregations = await prisma.user.aggregate({
     *   _avg: {
     *     age: true,
     *   },
     *   where: {
     *     email: {
     *       contains: "prisma.io",
     *     },
     *   },
     *   orderBy: {
     *     age: "asc",
     *   },
     *   take: 10,
     * })
    **/
    aggregate<T extends AgentWebhookAggregateArgs>(args: Subset<T, AgentWebhookAggregateArgs>): Prisma.PrismaPromise<GetAgentWebhookAggregateType<T>>

    /**
     * Group by AgentWebhook.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AgentWebhookGroupByArgs} args - Group by arguments.
     * @example
     * // Group by city, order by createdAt, get count
     * const result = await prisma.user.groupBy({
     *   by: ['city', 'createdAt'],
     *   orderBy: {
     *     createdAt: true
     *   },
     *   _count: {
     *     _all: true
     *   },
     * })
     * 
    **/
    groupBy<
      T extends AgentWebhookGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: AgentWebhookGroupByArgs['orderBy'] }
        : { orderBy?: AgentWebhookGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, AgentWebhookGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetAgentWebhookGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the AgentWebhook model
   */
  readonly fields: AgentWebhookFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for AgentWebhook.
   * Why is this prefixed with `Prisma__`?
   * Because we want to prevent naming conflicts as mentioned in
   * https://github.com/prisma/prisma-client-js/issues/707
   */
  export interface Prisma__AgentWebhookClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the AgentWebhook model
   */
  interface AgentWebhookFieldRefs {
    readonly id: FieldRef<"AgentWebhook", 'String'>
    readonly task_id: FieldRef<"AgentWebhook", 'String'>
    readonly agent_id: FieldRef<"AgentWebhook", 'String'>
    readonly webhook_url: FieldRef<"AgentWebhook", 'String'>
    readonly events: FieldRef<"AgentWebhook", 'String[]'>
    readonly created_at: FieldRef<"AgentWebhook", 'DateTime'>
    readonly updated_at: FieldRef<"AgentWebhook", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * AgentWebhook findUnique
   */
  export type AgentWebhookFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentWebhook
     */
    select?: AgentWebhookSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentWebhook
     */
    omit?: AgentWebhookOmit<ExtArgs> | null
    /**
     * Filter, which AgentWebhook to fetch.
     */
    where: AgentWebhookWhereUniqueInput
  }

  /**
   * AgentWebhook findUniqueOrThrow
   */
  export type AgentWebhookFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentWebhook
     */
    select?: AgentWebhookSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentWebhook
     */
    omit?: AgentWebhookOmit<ExtArgs> | null
    /**
     * Filter, which AgentWebhook to fetch.
     */
    where: AgentWebhookWhereUniqueInput
  }

  /**
   * AgentWebhook findFirst
   */
  export type AgentWebhookFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentWebhook
     */
    select?: AgentWebhookSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentWebhook
     */
    omit?: AgentWebhookOmit<ExtArgs> | null
    /**
     * Filter, which AgentWebhook to fetch.
     */
    where?: AgentWebhookWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AgentWebhooks to fetch.
     */
    orderBy?: AgentWebhookOrderByWithRelationInput | AgentWebhookOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for AgentWebhooks.
     */
    cursor?: AgentWebhookWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AgentWebhooks from the position of the cursor.
     */
    take?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Skip the first `n` AgentWebhooks.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of AgentWebhooks.
     */
    distinct?: AgentWebhookScalarFieldEnum | AgentWebhookScalarFieldEnum[]
  }

  /**
   * AgentWebhook findFirstOrThrow
   */
  export type AgentWebhookFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentWebhook
     */
    select?: AgentWebhookSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentWebhook
     */
    omit?: AgentWebhookOmit<ExtArgs> | null
    /**
     * Filter, which AgentWebhook to fetch.
     */
    where?: AgentWebhookWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AgentWebhooks to fetch.
     */
    orderBy?: AgentWebhookOrderByWithRelationInput | AgentWebhookOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for AgentWebhooks.
     */
    cursor?: AgentWebhookWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AgentWebhooks from the position of the cursor.
     */
    take?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Skip the first `n` AgentWebhooks.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of AgentWebhooks.
     */
    distinct?: AgentWebhookScalarFieldEnum | AgentWebhookScalarFieldEnum[]
  }

  /**
   * AgentWebhook findMany
   */
  export type AgentWebhookFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentWebhook
     */
    select?: AgentWebhookSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentWebhook
     */
    omit?: AgentWebhookOmit<ExtArgs> | null
    /**
     * Filter, which AgentWebhooks to fetch.
     */
    where?: AgentWebhookWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AgentWebhooks to fetch.
     */
    orderBy?: AgentWebhookOrderByWithRelationInput | AgentWebhookOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing AgentWebhooks.
     */
    cursor?: AgentWebhookWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AgentWebhooks from the position of the cursor.
     */
    take?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Skip the first `n` AgentWebhooks.
     */
    skip?: number
    distinct?: AgentWebhookScalarFieldEnum | AgentWebhookScalarFieldEnum[]
  }

  /**
   * AgentWebhook create
   */
  export type AgentWebhookCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentWebhook
     */
    select?: AgentWebhookSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentWebhook
     */
    omit?: AgentWebhookOmit<ExtArgs> | null
    /**
     * The data needed to create a AgentWebhook.
     */
    data: XOR<AgentWebhookCreateInput, AgentWebhookUncheckedCreateInput>
  }

  /**
   * AgentWebhook createMany
   */
  export type AgentWebhookCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many AgentWebhooks.
     */
    data: AgentWebhookCreateManyInput | AgentWebhookCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * AgentWebhook createManyAndReturn
   */
  export type AgentWebhookCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentWebhook
     */
    select?: AgentWebhookSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the AgentWebhook
     */
    omit?: AgentWebhookOmit<ExtArgs> | null
    /**
     * The data used to create many AgentWebhooks.
     */
    data: AgentWebhookCreateManyInput | AgentWebhookCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * AgentWebhook update
   */
  export type AgentWebhookUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentWebhook
     */
    select?: AgentWebhookSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentWebhook
     */
    omit?: AgentWebhookOmit<ExtArgs> | null
    /**
     * The data needed to update a AgentWebhook.
     */
    data: XOR<AgentWebhookUpdateInput, AgentWebhookUncheckedUpdateInput>
    /**
     * Choose, which AgentWebhook to update.
     */
    where: AgentWebhookWhereUniqueInput
  }

  /**
   * AgentWebhook updateMany
   */
  export type AgentWebhookUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update AgentWebhooks.
     */
    data: XOR<AgentWebhookUpdateManyMutationInput, AgentWebhookUncheckedUpdateManyInput>
    /**
     * Filter which AgentWebhooks to update
     */
    where?: AgentWebhookWhereInput
    /**
     * Limit how many AgentWebhooks to update.
     */
    limit?: number
  }

  /**
   * AgentWebhook updateManyAndReturn
   */
  export type AgentWebhookUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentWebhook
     */
    select?: AgentWebhookSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the AgentWebhook
     */
    omit?: AgentWebhookOmit<ExtArgs> | null
    /**
     * The data used to update AgentWebhooks.
     */
    data: XOR<AgentWebhookUpdateManyMutationInput, AgentWebhookUncheckedUpdateManyInput>
    /**
     * Filter which AgentWebhooks to update
     */
    where?: AgentWebhookWhereInput
    /**
     * Limit how many AgentWebhooks to update.
     */
    limit?: number
  }

  /**
   * AgentWebhook upsert
   */
  export type AgentWebhookUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentWebhook
     */
    select?: AgentWebhookSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentWebhook
     */
    omit?: AgentWebhookOmit<ExtArgs> | null
    /**
     * The filter to search for the AgentWebhook to update in case it exists.
     */
    where: AgentWebhookWhereUniqueInput
    /**
     * In case the AgentWebhook found by the `where` argument doesn't exist, create a new AgentWebhook with this data.
     */
    create: XOR<AgentWebhookCreateInput, AgentWebhookUncheckedCreateInput>
    /**
     * In case the AgentWebhook was found with the provided `where` argument, update it with this data.
     */
    update: XOR<AgentWebhookUpdateInput, AgentWebhookUncheckedUpdateInput>
  }

  /**
   * AgentWebhook delete
   */
  export type AgentWebhookDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentWebhook
     */
    select?: AgentWebhookSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentWebhook
     */
    omit?: AgentWebhookOmit<ExtArgs> | null
    /**
     * Filter which AgentWebhook to delete.
     */
    where: AgentWebhookWhereUniqueInput
  }

  /**
   * AgentWebhook deleteMany
   */
  export type AgentWebhookDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which AgentWebhooks to delete
     */
    where?: AgentWebhookWhereInput
    /**
     * Limit how many AgentWebhooks to delete.
     */
    limit?: number
  }

  /**
   * AgentWebhook without action
   */
  export type AgentWebhookDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentWebhook
     */
    select?: AgentWebhookSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentWebhook
     */
    omit?: AgentWebhookOmit<ExtArgs> | null
  }


  /**
   * Model Arbitration
   */

  export type AggregateArbitration = {
    _count: ArbitrationCountAggregateOutputType | null
    _min: ArbitrationMinAggregateOutputType | null
    _max: ArbitrationMaxAggregateOutputType | null
  }

  export type ArbitrationMinAggregateOutputType = {
    id: string | null
    task_id: string | null
    builder_id: string | null
    evaluator_id: string | null
    status: string | null
    builder_evidence: string | null
    evaluator_reason: string | null
    winning_party: string | null
    created_at: Date | null
    updated_at: Date | null
  }

  export type ArbitrationMaxAggregateOutputType = {
    id: string | null
    task_id: string | null
    builder_id: string | null
    evaluator_id: string | null
    status: string | null
    builder_evidence: string | null
    evaluator_reason: string | null
    winning_party: string | null
    created_at: Date | null
    updated_at: Date | null
  }

  export type ArbitrationCountAggregateOutputType = {
    id: number
    task_id: number
    builder_id: number
    evaluator_id: number
    status: number
    builder_evidence: number
    evaluator_reason: number
    winning_party: number
    created_at: number
    updated_at: number
    _all: number
  }


  export type ArbitrationMinAggregateInputType = {
    id?: true
    task_id?: true
    builder_id?: true
    evaluator_id?: true
    status?: true
    builder_evidence?: true
    evaluator_reason?: true
    winning_party?: true
    created_at?: true
    updated_at?: true
  }

  export type ArbitrationMaxAggregateInputType = {
    id?: true
    task_id?: true
    builder_id?: true
    evaluator_id?: true
    status?: true
    builder_evidence?: true
    evaluator_reason?: true
    winning_party?: true
    created_at?: true
    updated_at?: true
  }

  export type ArbitrationCountAggregateInputType = {
    id?: true
    task_id?: true
    builder_id?: true
    evaluator_id?: true
    status?: true
    builder_evidence?: true
    evaluator_reason?: true
    winning_party?: true
    created_at?: true
    updated_at?: true
    _all?: true
  }

  export type ArbitrationAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which Arbitration to aggregate.
     */
    where?: ArbitrationWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Arbitrations to fetch.
     */
    orderBy?: ArbitrationOrderByWithRelationInput | ArbitrationOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: ArbitrationWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Arbitrations from the position of the cursor.
     */
    take?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Skip the first `n` Arbitrations.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned Arbitrations
    **/
    _count?: true | ArbitrationCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: ArbitrationMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: ArbitrationMaxAggregateInputType
  }

  export type GetArbitrationAggregateType<T extends ArbitrationAggregateArgs> = {
        [P in keyof T & keyof AggregateArbitration]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateArbitration[P]>
      : GetScalarType<T[P], AggregateArbitration[P]>
  }




  export type ArbitrationGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: ArbitrationWhereInput
    orderBy?: ArbitrationOrderByWithAggregationInput | ArbitrationOrderByWithAggregationInput[]
    by: ArbitrationScalarFieldEnum[] | ArbitrationScalarFieldEnum
    having?: ArbitrationScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: ArbitrationCountAggregateInputType | true
    _min?: ArbitrationMinAggregateInputType
    _max?: ArbitrationMaxAggregateInputType
  }

  export type ArbitrationGroupByOutputType = {
    id: string
    task_id: string
    builder_id: string
    evaluator_id: string
    status: string
    builder_evidence: string | null
    evaluator_reason: string | null
    winning_party: string | null
    created_at: Date
    updated_at: Date
    _count: ArbitrationCountAggregateOutputType | null
    _min: ArbitrationMinAggregateOutputType | null
    _max: ArbitrationMaxAggregateOutputType | null
  }

  type GetArbitrationGroupByPayload<T extends ArbitrationGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<ArbitrationGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof ArbitrationGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], ArbitrationGroupByOutputType[P]>
            : GetScalarType<T[P], ArbitrationGroupByOutputType[P]>
        }
      >
    >


  export type ArbitrationSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    task_id?: boolean
    builder_id?: boolean
    evaluator_id?: boolean
    status?: boolean
    builder_evidence?: boolean
    evaluator_reason?: boolean
    winning_party?: boolean
    created_at?: boolean
    updated_at?: boolean
    task?: boolean | TaskDefaultArgs<ExtArgs>
    builder?: boolean | AgentProfileDefaultArgs<ExtArgs>
    evaluator?: boolean | AgentProfileDefaultArgs<ExtArgs>
    votes?: boolean | Arbitration$votesArgs<ExtArgs>
    slashing_events?: boolean | Arbitration$slashing_eventsArgs<ExtArgs>
    _count?: boolean | ArbitrationCountOutputTypeDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["arbitration"]>

  export type ArbitrationSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    task_id?: boolean
    builder_id?: boolean
    evaluator_id?: boolean
    status?: boolean
    builder_evidence?: boolean
    evaluator_reason?: boolean
    winning_party?: boolean
    created_at?: boolean
    updated_at?: boolean
    task?: boolean | TaskDefaultArgs<ExtArgs>
    builder?: boolean | AgentProfileDefaultArgs<ExtArgs>
    evaluator?: boolean | AgentProfileDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["arbitration"]>

  export type ArbitrationSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    task_id?: boolean
    builder_id?: boolean
    evaluator_id?: boolean
    status?: boolean
    builder_evidence?: boolean
    evaluator_reason?: boolean
    winning_party?: boolean
    created_at?: boolean
    updated_at?: boolean
    task?: boolean | TaskDefaultArgs<ExtArgs>
    builder?: boolean | AgentProfileDefaultArgs<ExtArgs>
    evaluator?: boolean | AgentProfileDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["arbitration"]>

  export type ArbitrationSelectScalar = {
    id?: boolean
    task_id?: boolean
    builder_id?: boolean
    evaluator_id?: boolean
    status?: boolean
    builder_evidence?: boolean
    evaluator_reason?: boolean
    winning_party?: boolean
    created_at?: boolean
    updated_at?: boolean
  }

  export type ArbitrationOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "task_id" | "builder_id" | "evaluator_id" | "status" | "builder_evidence" | "evaluator_reason" | "winning_party" | "created_at" | "updated_at", ExtArgs["result"]["arbitration"]>
  export type ArbitrationInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    task?: boolean | TaskDefaultArgs<ExtArgs>
    builder?: boolean | AgentProfileDefaultArgs<ExtArgs>
    evaluator?: boolean | AgentProfileDefaultArgs<ExtArgs>
    votes?: boolean | Arbitration$votesArgs<ExtArgs>
    slashing_events?: boolean | Arbitration$slashing_eventsArgs<ExtArgs>
    _count?: boolean | ArbitrationCountOutputTypeDefaultArgs<ExtArgs>
  }
  export type ArbitrationIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    task?: boolean | TaskDefaultArgs<ExtArgs>
    builder?: boolean | AgentProfileDefaultArgs<ExtArgs>
    evaluator?: boolean | AgentProfileDefaultArgs<ExtArgs>
  }
  export type ArbitrationIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    task?: boolean | TaskDefaultArgs<ExtArgs>
    builder?: boolean | AgentProfileDefaultArgs<ExtArgs>
    evaluator?: boolean | AgentProfileDefaultArgs<ExtArgs>
  }

  export type $ArbitrationPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "Arbitration"
    objects: {
      task: Prisma.$TaskPayload<ExtArgs>
      builder: Prisma.$AgentProfilePayload<ExtArgs>
      evaluator: Prisma.$AgentProfilePayload<ExtArgs>
      votes: Prisma.$ArbitrationVotePayload<ExtArgs>[]
      slashing_events: Prisma.$SlashingEventPayload<ExtArgs>[]
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      task_id: string
      builder_id: string
      evaluator_id: string
      status: string
      builder_evidence: string | null
      evaluator_reason: string | null
      winning_party: string | null
      created_at: Date
      updated_at: Date
    }, ExtArgs["result"]["arbitration"]>
    composites: {}
  }

  type ArbitrationGetPayload<S extends boolean | null | undefined | ArbitrationDefaultArgs> = $Result.GetResult<Prisma.$ArbitrationPayload, S>

  type ArbitrationCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<ArbitrationFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: ArbitrationCountAggregateInputType | true
    }

  export interface ArbitrationDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['Arbitration'], meta: { name: 'Arbitration' } }
    /**
     * Find zero or one Arbitration that matches the filter.
     * @param {ArbitrationFindUniqueArgs} args - Arguments to find a Arbitration
     * @example
     * // Get one Arbitration
     * const arbitration = await prisma.arbitration.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends ArbitrationFindUniqueArgs>(args: SelectSubset<T, ArbitrationFindUniqueArgs<ExtArgs>>): Prisma__ArbitrationClient<$Result.GetResult<Prisma.$ArbitrationPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one Arbitration that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {ArbitrationFindUniqueOrThrowArgs} args - Arguments to find a Arbitration
     * @example
     * // Get one Arbitration
     * const arbitration = await prisma.arbitration.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends ArbitrationFindUniqueOrThrowArgs>(args: SelectSubset<T, ArbitrationFindUniqueOrThrowArgs<ExtArgs>>): Prisma__ArbitrationClient<$Result.GetResult<Prisma.$ArbitrationPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first Arbitration that matches the filter.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {ArbitrationFindFirstArgs} args - Arguments to find a Arbitration
     * @example
     * // Get one Arbitration
     * const arbitration = await prisma.arbitration.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends ArbitrationFindFirstArgs>(args?: SelectSubset<T, ArbitrationFindFirstArgs<ExtArgs>>): Prisma__ArbitrationClient<$Result.GetResult<Prisma.$ArbitrationPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first Arbitration that matches the filter or
     * throw `PrismaKnownClientError` with `P2025` code if no matches were found.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {ArbitrationFindFirstOrThrowArgs} args - Arguments to find a Arbitration
     * @example
     * // Get one Arbitration
     * const arbitration = await prisma.arbitration.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends ArbitrationFindFirstOrThrowArgs>(args?: SelectSubset<T, ArbitrationFindFirstOrThrowArgs<ExtArgs>>): Prisma__ArbitrationClient<$Result.GetResult<Prisma.$ArbitrationPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more Arbitrations that matches the filter.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {ArbitrationFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all Arbitrations
     * const arbitrations = await prisma.arbitration.findMany()
     * 
     * // Get first 10 Arbitrations
     * const arbitrations = await prisma.arbitration.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const arbitrationWithIdOnly = await prisma.arbitration.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends ArbitrationFindManyArgs>(args?: SelectSubset<T, ArbitrationFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$ArbitrationPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a Arbitration.
     * @param {ArbitrationCreateArgs} args - Arguments to create a Arbitration.
     * @example
     * // Create one Arbitration
     * const Arbitration = await prisma.arbitration.create({
     *   data: {
     *     // ... data to create a Arbitration
     *   }
     * })
     * 
     */
    create<T extends ArbitrationCreateArgs>(args: SelectSubset<T, ArbitrationCreateArgs<ExtArgs>>): Prisma__ArbitrationClient<$Result.GetResult<Prisma.$ArbitrationPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many Arbitrations.
     * @param {ArbitrationCreateManyArgs} args - Arguments to create many Arbitrations.
     * @example
     * // Create many Arbitrations
     * const arbitration = await prisma.arbitration.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends ArbitrationCreateManyArgs>(args?: SelectSubset<T, ArbitrationCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many Arbitrations and returns the data saved in the database.
     * @param {ArbitrationCreateManyAndReturnArgs} args - Arguments to create many Arbitrations.
     * @example
     * // Create many Arbitrations
     * const arbitration = await prisma.arbitration.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many Arbitrations and only return the `id`
     * const arbitrationWithIdOnly = await prisma.arbitration.createManyAndReturn({
     *   select: { id: true },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * 
     */
    createManyAndReturn<T extends ArbitrationCreateManyAndReturnArgs>(args?: SelectSubset<T, ArbitrationCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$ArbitrationPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a Arbitration.
     * @param {ArbitrationDeleteArgs} args - Arguments to delete one Arbitration.
     * @example
     * // Delete one Arbitration
     * const Arbitration = await prisma.arbitration.delete({
     *   where: {
     *     // ... filter to delete one Arbitration
     *   }
     * })
     * 
     */
    delete<T extends ArbitrationDeleteArgs>(args: SelectSubset<T, ArbitrationDeleteArgs<ExtArgs>>): Prisma__ArbitrationClient<$Result.GetResult<Prisma.$ArbitrationPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one Arbitration.
     * @param {ArbitrationUpdateArgs} args - Arguments to update one Arbitration.
     * @example
     * // Update one Arbitration
     * const arbitration = await prisma.arbitration.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends ArbitrationUpdateArgs>(args: SelectSubset<T, ArbitrationUpdateArgs<ExtArgs>>): Prisma__ArbitrationClient<$Result.GetResult<Prisma.$ArbitrationPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more Arbitrations.
     * @param {ArbitrationDeleteManyArgs} args - Arguments to filter Arbitrations to delete.
     * @example
     * // Delete a few Arbitrations
     * const { count } = await prisma.arbitration.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends ArbitrationDeleteManyArgs>(args?: SelectSubset<T, ArbitrationDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more Arbitrations.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {ArbitrationUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many Arbitrations
     * const arbitration = await prisma.arbitration.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends ArbitrationUpdateManyArgs>(args: SelectSubset<T, ArbitrationUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more Arbitrations and returns the data updated in the database.
     * @param {ArbitrationUpdateManyAndReturnArgs} args - Arguments to update many Arbitrations.
     * @example
     * // Update many Arbitrations
     * const arbitration = await prisma.arbitration.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more Arbitrations and only return the `id`
     * const arbitrationWithIdOnly = await prisma.arbitration.updateManyAndReturn({
     *   select: { id: true },
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * 
     */
    updateManyAndReturn<T extends ArbitrationUpdateManyAndReturnArgs>(args: SelectSubset<T, ArbitrationUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$ArbitrationPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one Arbitration.
     * @param {ArbitrationUpsertArgs} args - Arguments to update or create a Arbitration.
     * @example
     * // Update or create a Arbitration
     * const arbitration = await prisma.arbitration.upsert({
     *   create: {
     *     // ... data to create a Arbitration
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the Arbitration we want to update
     *   }
     * })
     */
    upsert<T extends ArbitrationUpsertArgs>(args: SelectSubset<T, ArbitrationUpsertArgs<ExtArgs>>): Prisma__ArbitrationClient<$Result.GetResult<Prisma.$ArbitrationPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of Arbitrations.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {ArbitrationCountArgs} args - Arguments to filter Arbitrations to count.
     * @example
     * // Count the number of Arbitrations
     * const count = await prisma.arbitration.count({
     *   where: {
     *     // ... the filter for the Arbitrations we want to count
     *   }
     * })
    **/
    count<T extends ArbitrationCountArgs>(
      args?: Subset<T, ArbitrationCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], ArbitrationCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a Arbitration.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {ArbitrationAggregateArgs} args - Select which aggregations you would like to apply and on what fields.
     * @example
     * // Ordered by age ascending
     * // Where email contains prisma.io
     * // Limited to the 10 users
     * const aggregations = await prisma.user.aggregate({
     *   _avg: {
     *     age: true,
     *   },
     *   where: {
     *     email: {
     *       contains: "prisma.io",
     *     },
     *   },
     *   orderBy: {
     *     age: "asc",
     *   },
     *   take: 10,
     * })
    **/
    aggregate<T extends ArbitrationAggregateArgs>(args: Subset<T, ArbitrationAggregateArgs>): Prisma.PrismaPromise<GetArbitrationAggregateType<T>>

    /**
     * Group by Arbitration.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {ArbitrationGroupByArgs} args - Group by arguments.
     * @example
     * // Group by city, order by createdAt, get count
     * const result = await prisma.user.groupBy({
     *   by: ['city', 'createdAt'],
     *   orderBy: {
     *     createdAt: true
     *   },
     *   _count: {
     *     _all: true
     *   },
     * })
     * 
    **/
    groupBy<
      T extends ArbitrationGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: ArbitrationGroupByArgs['orderBy'] }
        : { orderBy?: ArbitrationGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, ArbitrationGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetArbitrationGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the Arbitration model
   */
  readonly fields: ArbitrationFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for Arbitration.
   * Why is this prefixed with `Prisma__`?
   * Because we want to prevent naming conflicts as mentioned in
   * https://github.com/prisma/prisma-client-js/issues/707
   */
  export interface Prisma__ArbitrationClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    task<T extends TaskDefaultArgs<ExtArgs> = {}>(args?: Subset<T, TaskDefaultArgs<ExtArgs>>): Prisma__TaskClient<$Result.GetResult<Prisma.$TaskPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    builder<T extends AgentProfileDefaultArgs<ExtArgs> = {}>(args?: Subset<T, AgentProfileDefaultArgs<ExtArgs>>): Prisma__AgentProfileClient<$Result.GetResult<Prisma.$AgentProfilePayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    evaluator<T extends AgentProfileDefaultArgs<ExtArgs> = {}>(args?: Subset<T, AgentProfileDefaultArgs<ExtArgs>>): Prisma__AgentProfileClient<$Result.GetResult<Prisma.$AgentProfilePayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    votes<T extends Arbitration$votesArgs<ExtArgs> = {}>(args?: Subset<T, Arbitration$votesArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$ArbitrationVotePayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    slashing_events<T extends Arbitration$slashing_eventsArgs<ExtArgs> = {}>(args?: Subset<T, Arbitration$slashing_eventsArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$SlashingEventPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the Arbitration model
   */
  interface ArbitrationFieldRefs {
    readonly id: FieldRef<"Arbitration", 'String'>
    readonly task_id: FieldRef<"Arbitration", 'String'>
    readonly builder_id: FieldRef<"Arbitration", 'String'>
    readonly evaluator_id: FieldRef<"Arbitration", 'String'>
    readonly status: FieldRef<"Arbitration", 'String'>
    readonly builder_evidence: FieldRef<"Arbitration", 'String'>
    readonly evaluator_reason: FieldRef<"Arbitration", 'String'>
    readonly winning_party: FieldRef<"Arbitration", 'String'>
    readonly created_at: FieldRef<"Arbitration", 'DateTime'>
    readonly updated_at: FieldRef<"Arbitration", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * Arbitration findUnique
   */
  export type ArbitrationFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Arbitration
     */
    select?: ArbitrationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Arbitration
     */
    omit?: ArbitrationOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ArbitrationInclude<ExtArgs> | null
    /**
     * Filter, which Arbitration to fetch.
     */
    where: ArbitrationWhereUniqueInput
  }

  /**
   * Arbitration findUniqueOrThrow
   */
  export type ArbitrationFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Arbitration
     */
    select?: ArbitrationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Arbitration
     */
    omit?: ArbitrationOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ArbitrationInclude<ExtArgs> | null
    /**
     * Filter, which Arbitration to fetch.
     */
    where: ArbitrationWhereUniqueInput
  }

  /**
   * Arbitration findFirst
   */
  export type ArbitrationFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Arbitration
     */
    select?: ArbitrationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Arbitration
     */
    omit?: ArbitrationOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ArbitrationInclude<ExtArgs> | null
    /**
     * Filter, which Arbitration to fetch.
     */
    where?: ArbitrationWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Arbitrations to fetch.
     */
    orderBy?: ArbitrationOrderByWithRelationInput | ArbitrationOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for Arbitrations.
     */
    cursor?: ArbitrationWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Arbitrations from the position of the cursor.
     */
    take?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Skip the first `n` Arbitrations.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of Arbitrations.
     */
    distinct?: ArbitrationScalarFieldEnum | ArbitrationScalarFieldEnum[]
  }

  /**
   * Arbitration findFirstOrThrow
   */
  export type ArbitrationFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Arbitration
     */
    select?: ArbitrationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Arbitration
     */
    omit?: ArbitrationOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ArbitrationInclude<ExtArgs> | null
    /**
     * Filter, which Arbitration to fetch.
     */
    where?: ArbitrationWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Arbitrations to fetch.
     */
    orderBy?: ArbitrationOrderByWithRelationInput | ArbitrationOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for Arbitrations.
     */
    cursor?: ArbitrationWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Arbitrations from the position of the cursor.
     */
    take?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Skip the first `n` Arbitrations.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of Arbitrations.
     */
    distinct?: ArbitrationScalarFieldEnum | ArbitrationScalarFieldEnum[]
  }

  /**
   * Arbitration findMany
   */
  export type ArbitrationFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Arbitration
     */
    select?: ArbitrationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Arbitration
     */
    omit?: ArbitrationOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ArbitrationInclude<ExtArgs> | null
    /**
     * Filter, which Arbitrations to fetch.
     */
    where?: ArbitrationWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of Arbitrations to fetch.
     */
    orderBy?: ArbitrationOrderByWithRelationInput | ArbitrationOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing Arbitrations.
     */
    cursor?: ArbitrationWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` Arbitrations from the position of the cursor.
     */
    take?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Skip the first `n` Arbitrations.
     */
    skip?: number
    distinct?: ArbitrationScalarFieldEnum | ArbitrationScalarFieldEnum[]
  }

  /**
   * Arbitration create
   */
  export type ArbitrationCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Arbitration
     */
    select?: ArbitrationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Arbitration
     */
    omit?: ArbitrationOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ArbitrationInclude<ExtArgs> | null
    /**
     * The data needed to create a Arbitration.
     */
    data: XOR<ArbitrationCreateInput, ArbitrationUncheckedCreateInput>
  }

  /**
   * Arbitration createMany
   */
  export type ArbitrationCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many Arbitrations.
     */
    data: ArbitrationCreateManyInput | ArbitrationCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * Arbitration createManyAndReturn
   */
  export type ArbitrationCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Arbitration
     */
    select?: ArbitrationSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the Arbitration
     */
    omit?: ArbitrationOmit<ExtArgs> | null
    /**
     * The data used to create many Arbitrations.
     */
    data: ArbitrationCreateManyInput | ArbitrationCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ArbitrationIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * Arbitration update
   */
  export type ArbitrationUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Arbitration
     */
    select?: ArbitrationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Arbitration
     */
    omit?: ArbitrationOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ArbitrationInclude<ExtArgs> | null
    /**
     * The data needed to update a Arbitration.
     */
    data: XOR<ArbitrationUpdateInput, ArbitrationUncheckedUpdateInput>
    /**
     * Choose, which Arbitration to update.
     */
    where: ArbitrationWhereUniqueInput
  }

  /**
   * Arbitration updateMany
   */
  export type ArbitrationUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update Arbitrations.
     */
    data: XOR<ArbitrationUpdateManyMutationInput, ArbitrationUncheckedUpdateManyInput>
    /**
     * Filter which Arbitrations to update
     */
    where?: ArbitrationWhereInput
    /**
     * Limit how many Arbitrations to update.
     */
    limit?: number
  }

  /**
   * Arbitration updateManyAndReturn
   */
  export type ArbitrationUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Arbitration
     */
    select?: ArbitrationSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the Arbitration
     */
    omit?: ArbitrationOmit<ExtArgs> | null
    /**
     * The data used to update Arbitrations.
     */
    data: XOR<ArbitrationUpdateManyMutationInput, ArbitrationUncheckedUpdateManyInput>
    /**
     * Filter which Arbitrations to update
     */
    where?: ArbitrationWhereInput
    /**
     * Limit how many Arbitrations to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ArbitrationIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * Arbitration upsert
   */
  export type ArbitrationUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Arbitration
     */
    select?: ArbitrationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Arbitration
     */
    omit?: ArbitrationOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ArbitrationInclude<ExtArgs> | null
    /**
     * The filter to search for the Arbitration to update in case it exists.
     */
    where: ArbitrationWhereUniqueInput
    /**
     * In case the Arbitration found by the `where` argument doesn't exist, create a new Arbitration with this data.
     */
    create: XOR<ArbitrationCreateInput, ArbitrationUncheckedCreateInput>
    /**
     * In case the Arbitration was found with the provided `where` argument, update it with this data.
     */
    update: XOR<ArbitrationUpdateInput, ArbitrationUncheckedUpdateInput>
  }

  /**
   * Arbitration delete
   */
  export type ArbitrationDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Arbitration
     */
    select?: ArbitrationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Arbitration
     */
    omit?: ArbitrationOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ArbitrationInclude<ExtArgs> | null
    /**
     * Filter which Arbitration to delete.
     */
    where: ArbitrationWhereUniqueInput
  }

  /**
   * Arbitration deleteMany
   */
  export type ArbitrationDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which Arbitrations to delete
     */
    where?: ArbitrationWhereInput
    /**
     * Limit how many Arbitrations to delete.
     */
    limit?: number
  }

  /**
   * Arbitration.votes
   */
  export type Arbitration$votesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ArbitrationVote
     */
    select?: ArbitrationVoteSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ArbitrationVote
     */
    omit?: ArbitrationVoteOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ArbitrationVoteInclude<ExtArgs> | null
    where?: ArbitrationVoteWhereInput
    orderBy?: ArbitrationVoteOrderByWithRelationInput | ArbitrationVoteOrderByWithRelationInput[]
    cursor?: ArbitrationVoteWhereUniqueInput
    take?: number
    skip?: number
    distinct?: ArbitrationVoteScalarFieldEnum | ArbitrationVoteScalarFieldEnum[]
  }

  /**
   * Arbitration.slashing_events
   */
  export type Arbitration$slashing_eventsArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SlashingEvent
     */
    select?: SlashingEventSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SlashingEvent
     */
    omit?: SlashingEventOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SlashingEventInclude<ExtArgs> | null
    where?: SlashingEventWhereInput
    orderBy?: SlashingEventOrderByWithRelationInput | SlashingEventOrderByWithRelationInput[]
    cursor?: SlashingEventWhereUniqueInput
    take?: number
    skip?: number
    distinct?: SlashingEventScalarFieldEnum | SlashingEventScalarFieldEnum[]
  }

  /**
   * Arbitration without action
   */
  export type ArbitrationDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the Arbitration
     */
    select?: ArbitrationSelect<ExtArgs> | null
    /**
     * Omit specific fields from the Arbitration
     */
    omit?: ArbitrationOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ArbitrationInclude<ExtArgs> | null
  }


  /**
   * Model ArbitrationVote
   */

  export type AggregateArbitrationVote = {
    _count: ArbitrationVoteCountAggregateOutputType | null
    _min: ArbitrationVoteMinAggregateOutputType | null
    _max: ArbitrationVoteMaxAggregateOutputType | null
  }

  export type ArbitrationVoteMinAggregateOutputType = {
    id: string | null
    arbitration_id: string | null
    judge_id: string | null
    vote_for: string | null
    reasoning: string | null
    created_at: Date | null
  }

  export type ArbitrationVoteMaxAggregateOutputType = {
    id: string | null
    arbitration_id: string | null
    judge_id: string | null
    vote_for: string | null
    reasoning: string | null
    created_at: Date | null
  }

  export type ArbitrationVoteCountAggregateOutputType = {
    id: number
    arbitration_id: number
    judge_id: number
    vote_for: number
    reasoning: number
    created_at: number
    _all: number
  }


  export type ArbitrationVoteMinAggregateInputType = {
    id?: true
    arbitration_id?: true
    judge_id?: true
    vote_for?: true
    reasoning?: true
    created_at?: true
  }

  export type ArbitrationVoteMaxAggregateInputType = {
    id?: true
    arbitration_id?: true
    judge_id?: true
    vote_for?: true
    reasoning?: true
    created_at?: true
  }

  export type ArbitrationVoteCountAggregateInputType = {
    id?: true
    arbitration_id?: true
    judge_id?: true
    vote_for?: true
    reasoning?: true
    created_at?: true
    _all?: true
  }

  export type ArbitrationVoteAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which ArbitrationVote to aggregate.
     */
    where?: ArbitrationVoteWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of ArbitrationVotes to fetch.
     */
    orderBy?: ArbitrationVoteOrderByWithRelationInput | ArbitrationVoteOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: ArbitrationVoteWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` ArbitrationVotes from the position of the cursor.
     */
    take?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Skip the first `n` ArbitrationVotes.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned ArbitrationVotes
    **/
    _count?: true | ArbitrationVoteCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: ArbitrationVoteMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: ArbitrationVoteMaxAggregateInputType
  }

  export type GetArbitrationVoteAggregateType<T extends ArbitrationVoteAggregateArgs> = {
        [P in keyof T & keyof AggregateArbitrationVote]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateArbitrationVote[P]>
      : GetScalarType<T[P], AggregateArbitrationVote[P]>
  }




  export type ArbitrationVoteGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: ArbitrationVoteWhereInput
    orderBy?: ArbitrationVoteOrderByWithAggregationInput | ArbitrationVoteOrderByWithAggregationInput[]
    by: ArbitrationVoteScalarFieldEnum[] | ArbitrationVoteScalarFieldEnum
    having?: ArbitrationVoteScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: ArbitrationVoteCountAggregateInputType | true
    _min?: ArbitrationVoteMinAggregateInputType
    _max?: ArbitrationVoteMaxAggregateInputType
  }

  export type ArbitrationVoteGroupByOutputType = {
    id: string
    arbitration_id: string
    judge_id: string
    vote_for: string
    reasoning: string | null
    created_at: Date
    _count: ArbitrationVoteCountAggregateOutputType | null
    _min: ArbitrationVoteMinAggregateOutputType | null
    _max: ArbitrationVoteMaxAggregateOutputType | null
  }

  type GetArbitrationVoteGroupByPayload<T extends ArbitrationVoteGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<ArbitrationVoteGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof ArbitrationVoteGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], ArbitrationVoteGroupByOutputType[P]>
            : GetScalarType<T[P], ArbitrationVoteGroupByOutputType[P]>
        }
      >
    >


  export type ArbitrationVoteSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    arbitration_id?: boolean
    judge_id?: boolean
    vote_for?: boolean
    reasoning?: boolean
    created_at?: boolean
    arbitration?: boolean | ArbitrationDefaultArgs<ExtArgs>
    judge?: boolean | AgentProfileDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["arbitrationVote"]>

  export type ArbitrationVoteSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    arbitration_id?: boolean
    judge_id?: boolean
    vote_for?: boolean
    reasoning?: boolean
    created_at?: boolean
    arbitration?: boolean | ArbitrationDefaultArgs<ExtArgs>
    judge?: boolean | AgentProfileDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["arbitrationVote"]>

  export type ArbitrationVoteSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    arbitration_id?: boolean
    judge_id?: boolean
    vote_for?: boolean
    reasoning?: boolean
    created_at?: boolean
    arbitration?: boolean | ArbitrationDefaultArgs<ExtArgs>
    judge?: boolean | AgentProfileDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["arbitrationVote"]>

  export type ArbitrationVoteSelectScalar = {
    id?: boolean
    arbitration_id?: boolean
    judge_id?: boolean
    vote_for?: boolean
    reasoning?: boolean
    created_at?: boolean
  }

  export type ArbitrationVoteOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "arbitration_id" | "judge_id" | "vote_for" | "reasoning" | "created_at", ExtArgs["result"]["arbitrationVote"]>
  export type ArbitrationVoteInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    arbitration?: boolean | ArbitrationDefaultArgs<ExtArgs>
    judge?: boolean | AgentProfileDefaultArgs<ExtArgs>
  }
  export type ArbitrationVoteIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    arbitration?: boolean | ArbitrationDefaultArgs<ExtArgs>
    judge?: boolean | AgentProfileDefaultArgs<ExtArgs>
  }
  export type ArbitrationVoteIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    arbitration?: boolean | ArbitrationDefaultArgs<ExtArgs>
    judge?: boolean | AgentProfileDefaultArgs<ExtArgs>
  }

  export type $ArbitrationVotePayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "ArbitrationVote"
    objects: {
      arbitration: Prisma.$ArbitrationPayload<ExtArgs>
      judge: Prisma.$AgentProfilePayload<ExtArgs>
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      arbitration_id: string
      judge_id: string
      vote_for: string
      reasoning: string | null
      created_at: Date
    }, ExtArgs["result"]["arbitrationVote"]>
    composites: {}
  }

  type ArbitrationVoteGetPayload<S extends boolean | null | undefined | ArbitrationVoteDefaultArgs> = $Result.GetResult<Prisma.$ArbitrationVotePayload, S>

  type ArbitrationVoteCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<ArbitrationVoteFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: ArbitrationVoteCountAggregateInputType | true
    }

  export interface ArbitrationVoteDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['ArbitrationVote'], meta: { name: 'ArbitrationVote' } }
    /**
     * Find zero or one ArbitrationVote that matches the filter.
     * @param {ArbitrationVoteFindUniqueArgs} args - Arguments to find a ArbitrationVote
     * @example
     * // Get one ArbitrationVote
     * const arbitrationVote = await prisma.arbitrationVote.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends ArbitrationVoteFindUniqueArgs>(args: SelectSubset<T, ArbitrationVoteFindUniqueArgs<ExtArgs>>): Prisma__ArbitrationVoteClient<$Result.GetResult<Prisma.$ArbitrationVotePayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one ArbitrationVote that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {ArbitrationVoteFindUniqueOrThrowArgs} args - Arguments to find a ArbitrationVote
     * @example
     * // Get one ArbitrationVote
     * const arbitrationVote = await prisma.arbitrationVote.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends ArbitrationVoteFindUniqueOrThrowArgs>(args: SelectSubset<T, ArbitrationVoteFindUniqueOrThrowArgs<ExtArgs>>): Prisma__ArbitrationVoteClient<$Result.GetResult<Prisma.$ArbitrationVotePayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first ArbitrationVote that matches the filter.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {ArbitrationVoteFindFirstArgs} args - Arguments to find a ArbitrationVote
     * @example
     * // Get one ArbitrationVote
     * const arbitrationVote = await prisma.arbitrationVote.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends ArbitrationVoteFindFirstArgs>(args?: SelectSubset<T, ArbitrationVoteFindFirstArgs<ExtArgs>>): Prisma__ArbitrationVoteClient<$Result.GetResult<Prisma.$ArbitrationVotePayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first ArbitrationVote that matches the filter or
     * throw `PrismaKnownClientError` with `P2025` code if no matches were found.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {ArbitrationVoteFindFirstOrThrowArgs} args - Arguments to find a ArbitrationVote
     * @example
     * // Get one ArbitrationVote
     * const arbitrationVote = await prisma.arbitrationVote.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends ArbitrationVoteFindFirstOrThrowArgs>(args?: SelectSubset<T, ArbitrationVoteFindFirstOrThrowArgs<ExtArgs>>): Prisma__ArbitrationVoteClient<$Result.GetResult<Prisma.$ArbitrationVotePayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more ArbitrationVotes that matches the filter.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {ArbitrationVoteFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all ArbitrationVotes
     * const arbitrationVotes = await prisma.arbitrationVote.findMany()
     * 
     * // Get first 10 ArbitrationVotes
     * const arbitrationVotes = await prisma.arbitrationVote.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const arbitrationVoteWithIdOnly = await prisma.arbitrationVote.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends ArbitrationVoteFindManyArgs>(args?: SelectSubset<T, ArbitrationVoteFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$ArbitrationVotePayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a ArbitrationVote.
     * @param {ArbitrationVoteCreateArgs} args - Arguments to create a ArbitrationVote.
     * @example
     * // Create one ArbitrationVote
     * const ArbitrationVote = await prisma.arbitrationVote.create({
     *   data: {
     *     // ... data to create a ArbitrationVote
     *   }
     * })
     * 
     */
    create<T extends ArbitrationVoteCreateArgs>(args: SelectSubset<T, ArbitrationVoteCreateArgs<ExtArgs>>): Prisma__ArbitrationVoteClient<$Result.GetResult<Prisma.$ArbitrationVotePayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many ArbitrationVotes.
     * @param {ArbitrationVoteCreateManyArgs} args - Arguments to create many ArbitrationVotes.
     * @example
     * // Create many ArbitrationVotes
     * const arbitrationVote = await prisma.arbitrationVote.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends ArbitrationVoteCreateManyArgs>(args?: SelectSubset<T, ArbitrationVoteCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many ArbitrationVotes and returns the data saved in the database.
     * @param {ArbitrationVoteCreateManyAndReturnArgs} args - Arguments to create many ArbitrationVotes.
     * @example
     * // Create many ArbitrationVotes
     * const arbitrationVote = await prisma.arbitrationVote.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many ArbitrationVotes and only return the `id`
     * const arbitrationVoteWithIdOnly = await prisma.arbitrationVote.createManyAndReturn({
     *   select: { id: true },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * 
     */
    createManyAndReturn<T extends ArbitrationVoteCreateManyAndReturnArgs>(args?: SelectSubset<T, ArbitrationVoteCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$ArbitrationVotePayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a ArbitrationVote.
     * @param {ArbitrationVoteDeleteArgs} args - Arguments to delete one ArbitrationVote.
     * @example
     * // Delete one ArbitrationVote
     * const ArbitrationVote = await prisma.arbitrationVote.delete({
     *   where: {
     *     // ... filter to delete one ArbitrationVote
     *   }
     * })
     * 
     */
    delete<T extends ArbitrationVoteDeleteArgs>(args: SelectSubset<T, ArbitrationVoteDeleteArgs<ExtArgs>>): Prisma__ArbitrationVoteClient<$Result.GetResult<Prisma.$ArbitrationVotePayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one ArbitrationVote.
     * @param {ArbitrationVoteUpdateArgs} args - Arguments to update one ArbitrationVote.
     * @example
     * // Update one ArbitrationVote
     * const arbitrationVote = await prisma.arbitrationVote.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends ArbitrationVoteUpdateArgs>(args: SelectSubset<T, ArbitrationVoteUpdateArgs<ExtArgs>>): Prisma__ArbitrationVoteClient<$Result.GetResult<Prisma.$ArbitrationVotePayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more ArbitrationVotes.
     * @param {ArbitrationVoteDeleteManyArgs} args - Arguments to filter ArbitrationVotes to delete.
     * @example
     * // Delete a few ArbitrationVotes
     * const { count } = await prisma.arbitrationVote.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends ArbitrationVoteDeleteManyArgs>(args?: SelectSubset<T, ArbitrationVoteDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more ArbitrationVotes.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {ArbitrationVoteUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many ArbitrationVotes
     * const arbitrationVote = await prisma.arbitrationVote.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends ArbitrationVoteUpdateManyArgs>(args: SelectSubset<T, ArbitrationVoteUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more ArbitrationVotes and returns the data updated in the database.
     * @param {ArbitrationVoteUpdateManyAndReturnArgs} args - Arguments to update many ArbitrationVotes.
     * @example
     * // Update many ArbitrationVotes
     * const arbitrationVote = await prisma.arbitrationVote.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more ArbitrationVotes and only return the `id`
     * const arbitrationVoteWithIdOnly = await prisma.arbitrationVote.updateManyAndReturn({
     *   select: { id: true },
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * 
     */
    updateManyAndReturn<T extends ArbitrationVoteUpdateManyAndReturnArgs>(args: SelectSubset<T, ArbitrationVoteUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$ArbitrationVotePayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one ArbitrationVote.
     * @param {ArbitrationVoteUpsertArgs} args - Arguments to update or create a ArbitrationVote.
     * @example
     * // Update or create a ArbitrationVote
     * const arbitrationVote = await prisma.arbitrationVote.upsert({
     *   create: {
     *     // ... data to create a ArbitrationVote
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the ArbitrationVote we want to update
     *   }
     * })
     */
    upsert<T extends ArbitrationVoteUpsertArgs>(args: SelectSubset<T, ArbitrationVoteUpsertArgs<ExtArgs>>): Prisma__ArbitrationVoteClient<$Result.GetResult<Prisma.$ArbitrationVotePayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of ArbitrationVotes.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {ArbitrationVoteCountArgs} args - Arguments to filter ArbitrationVotes to count.
     * @example
     * // Count the number of ArbitrationVotes
     * const count = await prisma.arbitrationVote.count({
     *   where: {
     *     // ... the filter for the ArbitrationVotes we want to count
     *   }
     * })
    **/
    count<T extends ArbitrationVoteCountArgs>(
      args?: Subset<T, ArbitrationVoteCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], ArbitrationVoteCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a ArbitrationVote.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {ArbitrationVoteAggregateArgs} args - Select which aggregations you would like to apply and on what fields.
     * @example
     * // Ordered by age ascending
     * // Where email contains prisma.io
     * // Limited to the 10 users
     * const aggregations = await prisma.user.aggregate({
     *   _avg: {
     *     age: true,
     *   },
     *   where: {
     *     email: {
     *       contains: "prisma.io",
     *     },
     *   },
     *   orderBy: {
     *     age: "asc",
     *   },
     *   take: 10,
     * })
    **/
    aggregate<T extends ArbitrationVoteAggregateArgs>(args: Subset<T, ArbitrationVoteAggregateArgs>): Prisma.PrismaPromise<GetArbitrationVoteAggregateType<T>>

    /**
     * Group by ArbitrationVote.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {ArbitrationVoteGroupByArgs} args - Group by arguments.
     * @example
     * // Group by city, order by createdAt, get count
     * const result = await prisma.user.groupBy({
     *   by: ['city', 'createdAt'],
     *   orderBy: {
     *     createdAt: true
     *   },
     *   _count: {
     *     _all: true
     *   },
     * })
     * 
    **/
    groupBy<
      T extends ArbitrationVoteGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: ArbitrationVoteGroupByArgs['orderBy'] }
        : { orderBy?: ArbitrationVoteGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, ArbitrationVoteGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetArbitrationVoteGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the ArbitrationVote model
   */
  readonly fields: ArbitrationVoteFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for ArbitrationVote.
   * Why is this prefixed with `Prisma__`?
   * Because we want to prevent naming conflicts as mentioned in
   * https://github.com/prisma/prisma-client-js/issues/707
   */
  export interface Prisma__ArbitrationVoteClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    arbitration<T extends ArbitrationDefaultArgs<ExtArgs> = {}>(args?: Subset<T, ArbitrationDefaultArgs<ExtArgs>>): Prisma__ArbitrationClient<$Result.GetResult<Prisma.$ArbitrationPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    judge<T extends AgentProfileDefaultArgs<ExtArgs> = {}>(args?: Subset<T, AgentProfileDefaultArgs<ExtArgs>>): Prisma__AgentProfileClient<$Result.GetResult<Prisma.$AgentProfilePayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the ArbitrationVote model
   */
  interface ArbitrationVoteFieldRefs {
    readonly id: FieldRef<"ArbitrationVote", 'String'>
    readonly arbitration_id: FieldRef<"ArbitrationVote", 'String'>
    readonly judge_id: FieldRef<"ArbitrationVote", 'String'>
    readonly vote_for: FieldRef<"ArbitrationVote", 'String'>
    readonly reasoning: FieldRef<"ArbitrationVote", 'String'>
    readonly created_at: FieldRef<"ArbitrationVote", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * ArbitrationVote findUnique
   */
  export type ArbitrationVoteFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ArbitrationVote
     */
    select?: ArbitrationVoteSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ArbitrationVote
     */
    omit?: ArbitrationVoteOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ArbitrationVoteInclude<ExtArgs> | null
    /**
     * Filter, which ArbitrationVote to fetch.
     */
    where: ArbitrationVoteWhereUniqueInput
  }

  /**
   * ArbitrationVote findUniqueOrThrow
   */
  export type ArbitrationVoteFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ArbitrationVote
     */
    select?: ArbitrationVoteSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ArbitrationVote
     */
    omit?: ArbitrationVoteOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ArbitrationVoteInclude<ExtArgs> | null
    /**
     * Filter, which ArbitrationVote to fetch.
     */
    where: ArbitrationVoteWhereUniqueInput
  }

  /**
   * ArbitrationVote findFirst
   */
  export type ArbitrationVoteFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ArbitrationVote
     */
    select?: ArbitrationVoteSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ArbitrationVote
     */
    omit?: ArbitrationVoteOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ArbitrationVoteInclude<ExtArgs> | null
    /**
     * Filter, which ArbitrationVote to fetch.
     */
    where?: ArbitrationVoteWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of ArbitrationVotes to fetch.
     */
    orderBy?: ArbitrationVoteOrderByWithRelationInput | ArbitrationVoteOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for ArbitrationVotes.
     */
    cursor?: ArbitrationVoteWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` ArbitrationVotes from the position of the cursor.
     */
    take?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Skip the first `n` ArbitrationVotes.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of ArbitrationVotes.
     */
    distinct?: ArbitrationVoteScalarFieldEnum | ArbitrationVoteScalarFieldEnum[]
  }

  /**
   * ArbitrationVote findFirstOrThrow
   */
  export type ArbitrationVoteFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ArbitrationVote
     */
    select?: ArbitrationVoteSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ArbitrationVote
     */
    omit?: ArbitrationVoteOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ArbitrationVoteInclude<ExtArgs> | null
    /**
     * Filter, which ArbitrationVote to fetch.
     */
    where?: ArbitrationVoteWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of ArbitrationVotes to fetch.
     */
    orderBy?: ArbitrationVoteOrderByWithRelationInput | ArbitrationVoteOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for ArbitrationVotes.
     */
    cursor?: ArbitrationVoteWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` ArbitrationVotes from the position of the cursor.
     */
    take?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Skip the first `n` ArbitrationVotes.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of ArbitrationVotes.
     */
    distinct?: ArbitrationVoteScalarFieldEnum | ArbitrationVoteScalarFieldEnum[]
  }

  /**
   * ArbitrationVote findMany
   */
  export type ArbitrationVoteFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ArbitrationVote
     */
    select?: ArbitrationVoteSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ArbitrationVote
     */
    omit?: ArbitrationVoteOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ArbitrationVoteInclude<ExtArgs> | null
    /**
     * Filter, which ArbitrationVotes to fetch.
     */
    where?: ArbitrationVoteWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of ArbitrationVotes to fetch.
     */
    orderBy?: ArbitrationVoteOrderByWithRelationInput | ArbitrationVoteOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing ArbitrationVotes.
     */
    cursor?: ArbitrationVoteWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` ArbitrationVotes from the position of the cursor.
     */
    take?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Skip the first `n` ArbitrationVotes.
     */
    skip?: number
    distinct?: ArbitrationVoteScalarFieldEnum | ArbitrationVoteScalarFieldEnum[]
  }

  /**
   * ArbitrationVote create
   */
  export type ArbitrationVoteCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ArbitrationVote
     */
    select?: ArbitrationVoteSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ArbitrationVote
     */
    omit?: ArbitrationVoteOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ArbitrationVoteInclude<ExtArgs> | null
    /**
     * The data needed to create a ArbitrationVote.
     */
    data: XOR<ArbitrationVoteCreateInput, ArbitrationVoteUncheckedCreateInput>
  }

  /**
   * ArbitrationVote createMany
   */
  export type ArbitrationVoteCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many ArbitrationVotes.
     */
    data: ArbitrationVoteCreateManyInput | ArbitrationVoteCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * ArbitrationVote createManyAndReturn
   */
  export type ArbitrationVoteCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ArbitrationVote
     */
    select?: ArbitrationVoteSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the ArbitrationVote
     */
    omit?: ArbitrationVoteOmit<ExtArgs> | null
    /**
     * The data used to create many ArbitrationVotes.
     */
    data: ArbitrationVoteCreateManyInput | ArbitrationVoteCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ArbitrationVoteIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * ArbitrationVote update
   */
  export type ArbitrationVoteUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ArbitrationVote
     */
    select?: ArbitrationVoteSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ArbitrationVote
     */
    omit?: ArbitrationVoteOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ArbitrationVoteInclude<ExtArgs> | null
    /**
     * The data needed to update a ArbitrationVote.
     */
    data: XOR<ArbitrationVoteUpdateInput, ArbitrationVoteUncheckedUpdateInput>
    /**
     * Choose, which ArbitrationVote to update.
     */
    where: ArbitrationVoteWhereUniqueInput
  }

  /**
   * ArbitrationVote updateMany
   */
  export type ArbitrationVoteUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update ArbitrationVotes.
     */
    data: XOR<ArbitrationVoteUpdateManyMutationInput, ArbitrationVoteUncheckedUpdateManyInput>
    /**
     * Filter which ArbitrationVotes to update
     */
    where?: ArbitrationVoteWhereInput
    /**
     * Limit how many ArbitrationVotes to update.
     */
    limit?: number
  }

  /**
   * ArbitrationVote updateManyAndReturn
   */
  export type ArbitrationVoteUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ArbitrationVote
     */
    select?: ArbitrationVoteSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the ArbitrationVote
     */
    omit?: ArbitrationVoteOmit<ExtArgs> | null
    /**
     * The data used to update ArbitrationVotes.
     */
    data: XOR<ArbitrationVoteUpdateManyMutationInput, ArbitrationVoteUncheckedUpdateManyInput>
    /**
     * Filter which ArbitrationVotes to update
     */
    where?: ArbitrationVoteWhereInput
    /**
     * Limit how many ArbitrationVotes to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ArbitrationVoteIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * ArbitrationVote upsert
   */
  export type ArbitrationVoteUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ArbitrationVote
     */
    select?: ArbitrationVoteSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ArbitrationVote
     */
    omit?: ArbitrationVoteOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ArbitrationVoteInclude<ExtArgs> | null
    /**
     * The filter to search for the ArbitrationVote to update in case it exists.
     */
    where: ArbitrationVoteWhereUniqueInput
    /**
     * In case the ArbitrationVote found by the `where` argument doesn't exist, create a new ArbitrationVote with this data.
     */
    create: XOR<ArbitrationVoteCreateInput, ArbitrationVoteUncheckedCreateInput>
    /**
     * In case the ArbitrationVote was found with the provided `where` argument, update it with this data.
     */
    update: XOR<ArbitrationVoteUpdateInput, ArbitrationVoteUncheckedUpdateInput>
  }

  /**
   * ArbitrationVote delete
   */
  export type ArbitrationVoteDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ArbitrationVote
     */
    select?: ArbitrationVoteSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ArbitrationVote
     */
    omit?: ArbitrationVoteOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ArbitrationVoteInclude<ExtArgs> | null
    /**
     * Filter which ArbitrationVote to delete.
     */
    where: ArbitrationVoteWhereUniqueInput
  }

  /**
   * ArbitrationVote deleteMany
   */
  export type ArbitrationVoteDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which ArbitrationVotes to delete
     */
    where?: ArbitrationVoteWhereInput
    /**
     * Limit how many ArbitrationVotes to delete.
     */
    limit?: number
  }

  /**
   * ArbitrationVote without action
   */
  export type ArbitrationVoteDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the ArbitrationVote
     */
    select?: ArbitrationVoteSelect<ExtArgs> | null
    /**
     * Omit specific fields from the ArbitrationVote
     */
    omit?: ArbitrationVoteOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: ArbitrationVoteInclude<ExtArgs> | null
  }


  /**
   * Model AgentProject
   */

  export type AggregateAgentProject = {
    _count: AgentProjectCountAggregateOutputType | null
    _avg: AgentProjectAvgAggregateOutputType | null
    _sum: AgentProjectSumAggregateOutputType | null
    _min: AgentProjectMinAggregateOutputType | null
    _max: AgentProjectMaxAggregateOutputType | null
  }

  export type AgentProjectAvgAggregateOutputType = {
    target_raise: number | null
    total_supply: number | null
  }

  export type AgentProjectSumAggregateOutputType = {
    target_raise: number | null
    total_supply: number | null
  }

  export type AgentProjectMinAggregateOutputType = {
    id: string | null
    creator_agent_id: string | null
    name: string | null
    ticker: string | null
    description: string | null
    whitepaper_url: string | null
    target_raise: number | null
    total_supply: number | null
    status: string | null
    created_at: Date | null
    updated_at: Date | null
  }

  export type AgentProjectMaxAggregateOutputType = {
    id: string | null
    creator_agent_id: string | null
    name: string | null
    ticker: string | null
    description: string | null
    whitepaper_url: string | null
    target_raise: number | null
    total_supply: number | null
    status: string | null
    created_at: Date | null
    updated_at: Date | null
  }

  export type AgentProjectCountAggregateOutputType = {
    id: number
    creator_agent_id: number
    name: number
    ticker: number
    description: number
    whitepaper_url: number
    target_raise: number
    total_supply: number
    status: number
    created_at: number
    updated_at: number
    _all: number
  }


  export type AgentProjectAvgAggregateInputType = {
    target_raise?: true
    total_supply?: true
  }

  export type AgentProjectSumAggregateInputType = {
    target_raise?: true
    total_supply?: true
  }

  export type AgentProjectMinAggregateInputType = {
    id?: true
    creator_agent_id?: true
    name?: true
    ticker?: true
    description?: true
    whitepaper_url?: true
    target_raise?: true
    total_supply?: true
    status?: true
    created_at?: true
    updated_at?: true
  }

  export type AgentProjectMaxAggregateInputType = {
    id?: true
    creator_agent_id?: true
    name?: true
    ticker?: true
    description?: true
    whitepaper_url?: true
    target_raise?: true
    total_supply?: true
    status?: true
    created_at?: true
    updated_at?: true
  }

  export type AgentProjectCountAggregateInputType = {
    id?: true
    creator_agent_id?: true
    name?: true
    ticker?: true
    description?: true
    whitepaper_url?: true
    target_raise?: true
    total_supply?: true
    status?: true
    created_at?: true
    updated_at?: true
    _all?: true
  }

  export type AgentProjectAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which AgentProject to aggregate.
     */
    where?: AgentProjectWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AgentProjects to fetch.
     */
    orderBy?: AgentProjectOrderByWithRelationInput | AgentProjectOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: AgentProjectWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AgentProjects from the position of the cursor.
     */
    take?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Skip the first `n` AgentProjects.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned AgentProjects
    **/
    _count?: true | AgentProjectCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: AgentProjectAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: AgentProjectSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: AgentProjectMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: AgentProjectMaxAggregateInputType
  }

  export type GetAgentProjectAggregateType<T extends AgentProjectAggregateArgs> = {
        [P in keyof T & keyof AggregateAgentProject]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateAgentProject[P]>
      : GetScalarType<T[P], AggregateAgentProject[P]>
  }




  export type AgentProjectGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: AgentProjectWhereInput
    orderBy?: AgentProjectOrderByWithAggregationInput | AgentProjectOrderByWithAggregationInput[]
    by: AgentProjectScalarFieldEnum[] | AgentProjectScalarFieldEnum
    having?: AgentProjectScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: AgentProjectCountAggregateInputType | true
    _avg?: AgentProjectAvgAggregateInputType
    _sum?: AgentProjectSumAggregateInputType
    _min?: AgentProjectMinAggregateInputType
    _max?: AgentProjectMaxAggregateInputType
  }

  export type AgentProjectGroupByOutputType = {
    id: string
    creator_agent_id: string
    name: string
    ticker: string
    description: string
    whitepaper_url: string | null
    target_raise: number
    total_supply: number
    status: string
    created_at: Date
    updated_at: Date
    _count: AgentProjectCountAggregateOutputType | null
    _avg: AgentProjectAvgAggregateOutputType | null
    _sum: AgentProjectSumAggregateOutputType | null
    _min: AgentProjectMinAggregateOutputType | null
    _max: AgentProjectMaxAggregateOutputType | null
  }

  type GetAgentProjectGroupByPayload<T extends AgentProjectGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<AgentProjectGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof AgentProjectGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], AgentProjectGroupByOutputType[P]>
            : GetScalarType<T[P], AgentProjectGroupByOutputType[P]>
        }
      >
    >


  export type AgentProjectSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    creator_agent_id?: boolean
    name?: boolean
    ticker?: boolean
    description?: boolean
    whitepaper_url?: boolean
    target_raise?: boolean
    total_supply?: boolean
    status?: boolean
    created_at?: boolean
    updated_at?: boolean
    creator?: boolean | AgentProfileDefaultArgs<ExtArgs>
    token_sales?: boolean | AgentProject$token_salesArgs<ExtArgs>
    _count?: boolean | AgentProjectCountOutputTypeDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["agentProject"]>

  export type AgentProjectSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    creator_agent_id?: boolean
    name?: boolean
    ticker?: boolean
    description?: boolean
    whitepaper_url?: boolean
    target_raise?: boolean
    total_supply?: boolean
    status?: boolean
    created_at?: boolean
    updated_at?: boolean
    creator?: boolean | AgentProfileDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["agentProject"]>

  export type AgentProjectSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    creator_agent_id?: boolean
    name?: boolean
    ticker?: boolean
    description?: boolean
    whitepaper_url?: boolean
    target_raise?: boolean
    total_supply?: boolean
    status?: boolean
    created_at?: boolean
    updated_at?: boolean
    creator?: boolean | AgentProfileDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["agentProject"]>

  export type AgentProjectSelectScalar = {
    id?: boolean
    creator_agent_id?: boolean
    name?: boolean
    ticker?: boolean
    description?: boolean
    whitepaper_url?: boolean
    target_raise?: boolean
    total_supply?: boolean
    status?: boolean
    created_at?: boolean
    updated_at?: boolean
  }

  export type AgentProjectOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "creator_agent_id" | "name" | "ticker" | "description" | "whitepaper_url" | "target_raise" | "total_supply" | "status" | "created_at" | "updated_at", ExtArgs["result"]["agentProject"]>
  export type AgentProjectInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    creator?: boolean | AgentProfileDefaultArgs<ExtArgs>
    token_sales?: boolean | AgentProject$token_salesArgs<ExtArgs>
    _count?: boolean | AgentProjectCountOutputTypeDefaultArgs<ExtArgs>
  }
  export type AgentProjectIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    creator?: boolean | AgentProfileDefaultArgs<ExtArgs>
  }
  export type AgentProjectIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    creator?: boolean | AgentProfileDefaultArgs<ExtArgs>
  }

  export type $AgentProjectPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "AgentProject"
    objects: {
      creator: Prisma.$AgentProfilePayload<ExtArgs>
      token_sales: Prisma.$TokenSalePayload<ExtArgs>[]
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      creator_agent_id: string
      name: string
      ticker: string
      description: string
      whitepaper_url: string | null
      target_raise: number
      total_supply: number
      status: string
      created_at: Date
      updated_at: Date
    }, ExtArgs["result"]["agentProject"]>
    composites: {}
  }

  type AgentProjectGetPayload<S extends boolean | null | undefined | AgentProjectDefaultArgs> = $Result.GetResult<Prisma.$AgentProjectPayload, S>

  type AgentProjectCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<AgentProjectFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: AgentProjectCountAggregateInputType | true
    }

  export interface AgentProjectDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['AgentProject'], meta: { name: 'AgentProject' } }
    /**
     * Find zero or one AgentProject that matches the filter.
     * @param {AgentProjectFindUniqueArgs} args - Arguments to find a AgentProject
     * @example
     * // Get one AgentProject
     * const agentProject = await prisma.agentProject.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends AgentProjectFindUniqueArgs>(args: SelectSubset<T, AgentProjectFindUniqueArgs<ExtArgs>>): Prisma__AgentProjectClient<$Result.GetResult<Prisma.$AgentProjectPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one AgentProject that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {AgentProjectFindUniqueOrThrowArgs} args - Arguments to find a AgentProject
     * @example
     * // Get one AgentProject
     * const agentProject = await prisma.agentProject.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends AgentProjectFindUniqueOrThrowArgs>(args: SelectSubset<T, AgentProjectFindUniqueOrThrowArgs<ExtArgs>>): Prisma__AgentProjectClient<$Result.GetResult<Prisma.$AgentProjectPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first AgentProject that matches the filter.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AgentProjectFindFirstArgs} args - Arguments to find a AgentProject
     * @example
     * // Get one AgentProject
     * const agentProject = await prisma.agentProject.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends AgentProjectFindFirstArgs>(args?: SelectSubset<T, AgentProjectFindFirstArgs<ExtArgs>>): Prisma__AgentProjectClient<$Result.GetResult<Prisma.$AgentProjectPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first AgentProject that matches the filter or
     * throw `PrismaKnownClientError` with `P2025` code if no matches were found.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AgentProjectFindFirstOrThrowArgs} args - Arguments to find a AgentProject
     * @example
     * // Get one AgentProject
     * const agentProject = await prisma.agentProject.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends AgentProjectFindFirstOrThrowArgs>(args?: SelectSubset<T, AgentProjectFindFirstOrThrowArgs<ExtArgs>>): Prisma__AgentProjectClient<$Result.GetResult<Prisma.$AgentProjectPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more AgentProjects that matches the filter.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AgentProjectFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all AgentProjects
     * const agentProjects = await prisma.agentProject.findMany()
     * 
     * // Get first 10 AgentProjects
     * const agentProjects = await prisma.agentProject.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const agentProjectWithIdOnly = await prisma.agentProject.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends AgentProjectFindManyArgs>(args?: SelectSubset<T, AgentProjectFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AgentProjectPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a AgentProject.
     * @param {AgentProjectCreateArgs} args - Arguments to create a AgentProject.
     * @example
     * // Create one AgentProject
     * const AgentProject = await prisma.agentProject.create({
     *   data: {
     *     // ... data to create a AgentProject
     *   }
     * })
     * 
     */
    create<T extends AgentProjectCreateArgs>(args: SelectSubset<T, AgentProjectCreateArgs<ExtArgs>>): Prisma__AgentProjectClient<$Result.GetResult<Prisma.$AgentProjectPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many AgentProjects.
     * @param {AgentProjectCreateManyArgs} args - Arguments to create many AgentProjects.
     * @example
     * // Create many AgentProjects
     * const agentProject = await prisma.agentProject.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends AgentProjectCreateManyArgs>(args?: SelectSubset<T, AgentProjectCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many AgentProjects and returns the data saved in the database.
     * @param {AgentProjectCreateManyAndReturnArgs} args - Arguments to create many AgentProjects.
     * @example
     * // Create many AgentProjects
     * const agentProject = await prisma.agentProject.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many AgentProjects and only return the `id`
     * const agentProjectWithIdOnly = await prisma.agentProject.createManyAndReturn({
     *   select: { id: true },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * 
     */
    createManyAndReturn<T extends AgentProjectCreateManyAndReturnArgs>(args?: SelectSubset<T, AgentProjectCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AgentProjectPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a AgentProject.
     * @param {AgentProjectDeleteArgs} args - Arguments to delete one AgentProject.
     * @example
     * // Delete one AgentProject
     * const AgentProject = await prisma.agentProject.delete({
     *   where: {
     *     // ... filter to delete one AgentProject
     *   }
     * })
     * 
     */
    delete<T extends AgentProjectDeleteArgs>(args: SelectSubset<T, AgentProjectDeleteArgs<ExtArgs>>): Prisma__AgentProjectClient<$Result.GetResult<Prisma.$AgentProjectPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one AgentProject.
     * @param {AgentProjectUpdateArgs} args - Arguments to update one AgentProject.
     * @example
     * // Update one AgentProject
     * const agentProject = await prisma.agentProject.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends AgentProjectUpdateArgs>(args: SelectSubset<T, AgentProjectUpdateArgs<ExtArgs>>): Prisma__AgentProjectClient<$Result.GetResult<Prisma.$AgentProjectPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more AgentProjects.
     * @param {AgentProjectDeleteManyArgs} args - Arguments to filter AgentProjects to delete.
     * @example
     * // Delete a few AgentProjects
     * const { count } = await prisma.agentProject.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends AgentProjectDeleteManyArgs>(args?: SelectSubset<T, AgentProjectDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more AgentProjects.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AgentProjectUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many AgentProjects
     * const agentProject = await prisma.agentProject.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends AgentProjectUpdateManyArgs>(args: SelectSubset<T, AgentProjectUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more AgentProjects and returns the data updated in the database.
     * @param {AgentProjectUpdateManyAndReturnArgs} args - Arguments to update many AgentProjects.
     * @example
     * // Update many AgentProjects
     * const agentProject = await prisma.agentProject.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more AgentProjects and only return the `id`
     * const agentProjectWithIdOnly = await prisma.agentProject.updateManyAndReturn({
     *   select: { id: true },
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * 
     */
    updateManyAndReturn<T extends AgentProjectUpdateManyAndReturnArgs>(args: SelectSubset<T, AgentProjectUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$AgentProjectPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one AgentProject.
     * @param {AgentProjectUpsertArgs} args - Arguments to update or create a AgentProject.
     * @example
     * // Update or create a AgentProject
     * const agentProject = await prisma.agentProject.upsert({
     *   create: {
     *     // ... data to create a AgentProject
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the AgentProject we want to update
     *   }
     * })
     */
    upsert<T extends AgentProjectUpsertArgs>(args: SelectSubset<T, AgentProjectUpsertArgs<ExtArgs>>): Prisma__AgentProjectClient<$Result.GetResult<Prisma.$AgentProjectPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of AgentProjects.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AgentProjectCountArgs} args - Arguments to filter AgentProjects to count.
     * @example
     * // Count the number of AgentProjects
     * const count = await prisma.agentProject.count({
     *   where: {
     *     // ... the filter for the AgentProjects we want to count
     *   }
     * })
    **/
    count<T extends AgentProjectCountArgs>(
      args?: Subset<T, AgentProjectCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], AgentProjectCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a AgentProject.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AgentProjectAggregateArgs} args - Select which aggregations you would like to apply and on what fields.
     * @example
     * // Ordered by age ascending
     * // Where email contains prisma.io
     * // Limited to the 10 users
     * const aggregations = await prisma.user.aggregate({
     *   _avg: {
     *     age: true,
     *   },
     *   where: {
     *     email: {
     *       contains: "prisma.io",
     *     },
     *   },
     *   orderBy: {
     *     age: "asc",
     *   },
     *   take: 10,
     * })
    **/
    aggregate<T extends AgentProjectAggregateArgs>(args: Subset<T, AgentProjectAggregateArgs>): Prisma.PrismaPromise<GetAgentProjectAggregateType<T>>

    /**
     * Group by AgentProject.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {AgentProjectGroupByArgs} args - Group by arguments.
     * @example
     * // Group by city, order by createdAt, get count
     * const result = await prisma.user.groupBy({
     *   by: ['city', 'createdAt'],
     *   orderBy: {
     *     createdAt: true
     *   },
     *   _count: {
     *     _all: true
     *   },
     * })
     * 
    **/
    groupBy<
      T extends AgentProjectGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: AgentProjectGroupByArgs['orderBy'] }
        : { orderBy?: AgentProjectGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, AgentProjectGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetAgentProjectGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the AgentProject model
   */
  readonly fields: AgentProjectFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for AgentProject.
   * Why is this prefixed with `Prisma__`?
   * Because we want to prevent naming conflicts as mentioned in
   * https://github.com/prisma/prisma-client-js/issues/707
   */
  export interface Prisma__AgentProjectClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    creator<T extends AgentProfileDefaultArgs<ExtArgs> = {}>(args?: Subset<T, AgentProfileDefaultArgs<ExtArgs>>): Prisma__AgentProfileClient<$Result.GetResult<Prisma.$AgentProfilePayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    token_sales<T extends AgentProject$token_salesArgs<ExtArgs> = {}>(args?: Subset<T, AgentProject$token_salesArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$TokenSalePayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the AgentProject model
   */
  interface AgentProjectFieldRefs {
    readonly id: FieldRef<"AgentProject", 'String'>
    readonly creator_agent_id: FieldRef<"AgentProject", 'String'>
    readonly name: FieldRef<"AgentProject", 'String'>
    readonly ticker: FieldRef<"AgentProject", 'String'>
    readonly description: FieldRef<"AgentProject", 'String'>
    readonly whitepaper_url: FieldRef<"AgentProject", 'String'>
    readonly target_raise: FieldRef<"AgentProject", 'Int'>
    readonly total_supply: FieldRef<"AgentProject", 'Int'>
    readonly status: FieldRef<"AgentProject", 'String'>
    readonly created_at: FieldRef<"AgentProject", 'DateTime'>
    readonly updated_at: FieldRef<"AgentProject", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * AgentProject findUnique
   */
  export type AgentProjectFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentProject
     */
    select?: AgentProjectSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentProject
     */
    omit?: AgentProjectOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AgentProjectInclude<ExtArgs> | null
    /**
     * Filter, which AgentProject to fetch.
     */
    where: AgentProjectWhereUniqueInput
  }

  /**
   * AgentProject findUniqueOrThrow
   */
  export type AgentProjectFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentProject
     */
    select?: AgentProjectSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentProject
     */
    omit?: AgentProjectOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AgentProjectInclude<ExtArgs> | null
    /**
     * Filter, which AgentProject to fetch.
     */
    where: AgentProjectWhereUniqueInput
  }

  /**
   * AgentProject findFirst
   */
  export type AgentProjectFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentProject
     */
    select?: AgentProjectSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentProject
     */
    omit?: AgentProjectOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AgentProjectInclude<ExtArgs> | null
    /**
     * Filter, which AgentProject to fetch.
     */
    where?: AgentProjectWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AgentProjects to fetch.
     */
    orderBy?: AgentProjectOrderByWithRelationInput | AgentProjectOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for AgentProjects.
     */
    cursor?: AgentProjectWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AgentProjects from the position of the cursor.
     */
    take?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Skip the first `n` AgentProjects.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of AgentProjects.
     */
    distinct?: AgentProjectScalarFieldEnum | AgentProjectScalarFieldEnum[]
  }

  /**
   * AgentProject findFirstOrThrow
   */
  export type AgentProjectFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentProject
     */
    select?: AgentProjectSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentProject
     */
    omit?: AgentProjectOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AgentProjectInclude<ExtArgs> | null
    /**
     * Filter, which AgentProject to fetch.
     */
    where?: AgentProjectWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AgentProjects to fetch.
     */
    orderBy?: AgentProjectOrderByWithRelationInput | AgentProjectOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for AgentProjects.
     */
    cursor?: AgentProjectWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AgentProjects from the position of the cursor.
     */
    take?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Skip the first `n` AgentProjects.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of AgentProjects.
     */
    distinct?: AgentProjectScalarFieldEnum | AgentProjectScalarFieldEnum[]
  }

  /**
   * AgentProject findMany
   */
  export type AgentProjectFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentProject
     */
    select?: AgentProjectSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentProject
     */
    omit?: AgentProjectOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AgentProjectInclude<ExtArgs> | null
    /**
     * Filter, which AgentProjects to fetch.
     */
    where?: AgentProjectWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of AgentProjects to fetch.
     */
    orderBy?: AgentProjectOrderByWithRelationInput | AgentProjectOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing AgentProjects.
     */
    cursor?: AgentProjectWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` AgentProjects from the position of the cursor.
     */
    take?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Skip the first `n` AgentProjects.
     */
    skip?: number
    distinct?: AgentProjectScalarFieldEnum | AgentProjectScalarFieldEnum[]
  }

  /**
   * AgentProject create
   */
  export type AgentProjectCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentProject
     */
    select?: AgentProjectSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentProject
     */
    omit?: AgentProjectOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AgentProjectInclude<ExtArgs> | null
    /**
     * The data needed to create a AgentProject.
     */
    data: XOR<AgentProjectCreateInput, AgentProjectUncheckedCreateInput>
  }

  /**
   * AgentProject createMany
   */
  export type AgentProjectCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many AgentProjects.
     */
    data: AgentProjectCreateManyInput | AgentProjectCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * AgentProject createManyAndReturn
   */
  export type AgentProjectCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentProject
     */
    select?: AgentProjectSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the AgentProject
     */
    omit?: AgentProjectOmit<ExtArgs> | null
    /**
     * The data used to create many AgentProjects.
     */
    data: AgentProjectCreateManyInput | AgentProjectCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AgentProjectIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * AgentProject update
   */
  export type AgentProjectUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentProject
     */
    select?: AgentProjectSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentProject
     */
    omit?: AgentProjectOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AgentProjectInclude<ExtArgs> | null
    /**
     * The data needed to update a AgentProject.
     */
    data: XOR<AgentProjectUpdateInput, AgentProjectUncheckedUpdateInput>
    /**
     * Choose, which AgentProject to update.
     */
    where: AgentProjectWhereUniqueInput
  }

  /**
   * AgentProject updateMany
   */
  export type AgentProjectUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update AgentProjects.
     */
    data: XOR<AgentProjectUpdateManyMutationInput, AgentProjectUncheckedUpdateManyInput>
    /**
     * Filter which AgentProjects to update
     */
    where?: AgentProjectWhereInput
    /**
     * Limit how many AgentProjects to update.
     */
    limit?: number
  }

  /**
   * AgentProject updateManyAndReturn
   */
  export type AgentProjectUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentProject
     */
    select?: AgentProjectSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the AgentProject
     */
    omit?: AgentProjectOmit<ExtArgs> | null
    /**
     * The data used to update AgentProjects.
     */
    data: XOR<AgentProjectUpdateManyMutationInput, AgentProjectUncheckedUpdateManyInput>
    /**
     * Filter which AgentProjects to update
     */
    where?: AgentProjectWhereInput
    /**
     * Limit how many AgentProjects to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AgentProjectIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * AgentProject upsert
   */
  export type AgentProjectUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentProject
     */
    select?: AgentProjectSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentProject
     */
    omit?: AgentProjectOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AgentProjectInclude<ExtArgs> | null
    /**
     * The filter to search for the AgentProject to update in case it exists.
     */
    where: AgentProjectWhereUniqueInput
    /**
     * In case the AgentProject found by the `where` argument doesn't exist, create a new AgentProject with this data.
     */
    create: XOR<AgentProjectCreateInput, AgentProjectUncheckedCreateInput>
    /**
     * In case the AgentProject was found with the provided `where` argument, update it with this data.
     */
    update: XOR<AgentProjectUpdateInput, AgentProjectUncheckedUpdateInput>
  }

  /**
   * AgentProject delete
   */
  export type AgentProjectDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentProject
     */
    select?: AgentProjectSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentProject
     */
    omit?: AgentProjectOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AgentProjectInclude<ExtArgs> | null
    /**
     * Filter which AgentProject to delete.
     */
    where: AgentProjectWhereUniqueInput
  }

  /**
   * AgentProject deleteMany
   */
  export type AgentProjectDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which AgentProjects to delete
     */
    where?: AgentProjectWhereInput
    /**
     * Limit how many AgentProjects to delete.
     */
    limit?: number
  }

  /**
   * AgentProject.token_sales
   */
  export type AgentProject$token_salesArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the TokenSale
     */
    select?: TokenSaleSelect<ExtArgs> | null
    /**
     * Omit specific fields from the TokenSale
     */
    omit?: TokenSaleOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: TokenSaleInclude<ExtArgs> | null
    where?: TokenSaleWhereInput
    orderBy?: TokenSaleOrderByWithRelationInput | TokenSaleOrderByWithRelationInput[]
    cursor?: TokenSaleWhereUniqueInput
    take?: number
    skip?: number
    distinct?: TokenSaleScalarFieldEnum | TokenSaleScalarFieldEnum[]
  }

  /**
   * AgentProject without action
   */
  export type AgentProjectDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the AgentProject
     */
    select?: AgentProjectSelect<ExtArgs> | null
    /**
     * Omit specific fields from the AgentProject
     */
    omit?: AgentProjectOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: AgentProjectInclude<ExtArgs> | null
  }


  /**
   * Model TokenSale
   */

  export type AggregateTokenSale = {
    _count: TokenSaleCountAggregateOutputType | null
    _avg: TokenSaleAvgAggregateOutputType | null
    _sum: TokenSaleSumAggregateOutputType | null
    _min: TokenSaleMinAggregateOutputType | null
    _max: TokenSaleMaxAggregateOutputType | null
  }

  export type TokenSaleAvgAggregateOutputType = {
    usdc_amount: number | null
    tokens_received: number | null
    price_per_token: number | null
  }

  export type TokenSaleSumAggregateOutputType = {
    usdc_amount: number | null
    tokens_received: number | null
    price_per_token: number | null
  }

  export type TokenSaleMinAggregateOutputType = {
    id: string | null
    project_id: string | null
    investor_id: string | null
    usdc_amount: number | null
    tokens_received: number | null
    price_per_token: number | null
    created_at: Date | null
  }

  export type TokenSaleMaxAggregateOutputType = {
    id: string | null
    project_id: string | null
    investor_id: string | null
    usdc_amount: number | null
    tokens_received: number | null
    price_per_token: number | null
    created_at: Date | null
  }

  export type TokenSaleCountAggregateOutputType = {
    id: number
    project_id: number
    investor_id: number
    usdc_amount: number
    tokens_received: number
    price_per_token: number
    created_at: number
    _all: number
  }


  export type TokenSaleAvgAggregateInputType = {
    usdc_amount?: true
    tokens_received?: true
    price_per_token?: true
  }

  export type TokenSaleSumAggregateInputType = {
    usdc_amount?: true
    tokens_received?: true
    price_per_token?: true
  }

  export type TokenSaleMinAggregateInputType = {
    id?: true
    project_id?: true
    investor_id?: true
    usdc_amount?: true
    tokens_received?: true
    price_per_token?: true
    created_at?: true
  }

  export type TokenSaleMaxAggregateInputType = {
    id?: true
    project_id?: true
    investor_id?: true
    usdc_amount?: true
    tokens_received?: true
    price_per_token?: true
    created_at?: true
  }

  export type TokenSaleCountAggregateInputType = {
    id?: true
    project_id?: true
    investor_id?: true
    usdc_amount?: true
    tokens_received?: true
    price_per_token?: true
    created_at?: true
    _all?: true
  }

  export type TokenSaleAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which TokenSale to aggregate.
     */
    where?: TokenSaleWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of TokenSales to fetch.
     */
    orderBy?: TokenSaleOrderByWithRelationInput | TokenSaleOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: TokenSaleWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` TokenSales from the position of the cursor.
     */
    take?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Skip the first `n` TokenSales.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned TokenSales
    **/
    _count?: true | TokenSaleCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: TokenSaleAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: TokenSaleSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: TokenSaleMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: TokenSaleMaxAggregateInputType
  }

  export type GetTokenSaleAggregateType<T extends TokenSaleAggregateArgs> = {
        [P in keyof T & keyof AggregateTokenSale]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateTokenSale[P]>
      : GetScalarType<T[P], AggregateTokenSale[P]>
  }




  export type TokenSaleGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: TokenSaleWhereInput
    orderBy?: TokenSaleOrderByWithAggregationInput | TokenSaleOrderByWithAggregationInput[]
    by: TokenSaleScalarFieldEnum[] | TokenSaleScalarFieldEnum
    having?: TokenSaleScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: TokenSaleCountAggregateInputType | true
    _avg?: TokenSaleAvgAggregateInputType
    _sum?: TokenSaleSumAggregateInputType
    _min?: TokenSaleMinAggregateInputType
    _max?: TokenSaleMaxAggregateInputType
  }

  export type TokenSaleGroupByOutputType = {
    id: string
    project_id: string
    investor_id: string
    usdc_amount: number
    tokens_received: number
    price_per_token: number
    created_at: Date
    _count: TokenSaleCountAggregateOutputType | null
    _avg: TokenSaleAvgAggregateOutputType | null
    _sum: TokenSaleSumAggregateOutputType | null
    _min: TokenSaleMinAggregateOutputType | null
    _max: TokenSaleMaxAggregateOutputType | null
  }

  type GetTokenSaleGroupByPayload<T extends TokenSaleGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<TokenSaleGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof TokenSaleGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], TokenSaleGroupByOutputType[P]>
            : GetScalarType<T[P], TokenSaleGroupByOutputType[P]>
        }
      >
    >


  export type TokenSaleSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    project_id?: boolean
    investor_id?: boolean
    usdc_amount?: boolean
    tokens_received?: boolean
    price_per_token?: boolean
    created_at?: boolean
    project?: boolean | AgentProjectDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["tokenSale"]>

  export type TokenSaleSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    project_id?: boolean
    investor_id?: boolean
    usdc_amount?: boolean
    tokens_received?: boolean
    price_per_token?: boolean
    created_at?: boolean
    project?: boolean | AgentProjectDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["tokenSale"]>

  export type TokenSaleSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    project_id?: boolean
    investor_id?: boolean
    usdc_amount?: boolean
    tokens_received?: boolean
    price_per_token?: boolean
    created_at?: boolean
    project?: boolean | AgentProjectDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["tokenSale"]>

  export type TokenSaleSelectScalar = {
    id?: boolean
    project_id?: boolean
    investor_id?: boolean
    usdc_amount?: boolean
    tokens_received?: boolean
    price_per_token?: boolean
    created_at?: boolean
  }

  export type TokenSaleOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "project_id" | "investor_id" | "usdc_amount" | "tokens_received" | "price_per_token" | "created_at", ExtArgs["result"]["tokenSale"]>
  export type TokenSaleInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    project?: boolean | AgentProjectDefaultArgs<ExtArgs>
  }
  export type TokenSaleIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    project?: boolean | AgentProjectDefaultArgs<ExtArgs>
  }
  export type TokenSaleIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    project?: boolean | AgentProjectDefaultArgs<ExtArgs>
  }

  export type $TokenSalePayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "TokenSale"
    objects: {
      project: Prisma.$AgentProjectPayload<ExtArgs>
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      project_id: string
      investor_id: string
      usdc_amount: number
      tokens_received: number
      price_per_token: number
      created_at: Date
    }, ExtArgs["result"]["tokenSale"]>
    composites: {}
  }

  type TokenSaleGetPayload<S extends boolean | null | undefined | TokenSaleDefaultArgs> = $Result.GetResult<Prisma.$TokenSalePayload, S>

  type TokenSaleCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<TokenSaleFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: TokenSaleCountAggregateInputType | true
    }

  export interface TokenSaleDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['TokenSale'], meta: { name: 'TokenSale' } }
    /**
     * Find zero or one TokenSale that matches the filter.
     * @param {TokenSaleFindUniqueArgs} args - Arguments to find a TokenSale
     * @example
     * // Get one TokenSale
     * const tokenSale = await prisma.tokenSale.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends TokenSaleFindUniqueArgs>(args: SelectSubset<T, TokenSaleFindUniqueArgs<ExtArgs>>): Prisma__TokenSaleClient<$Result.GetResult<Prisma.$TokenSalePayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one TokenSale that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {TokenSaleFindUniqueOrThrowArgs} args - Arguments to find a TokenSale
     * @example
     * // Get one TokenSale
     * const tokenSale = await prisma.tokenSale.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends TokenSaleFindUniqueOrThrowArgs>(args: SelectSubset<T, TokenSaleFindUniqueOrThrowArgs<ExtArgs>>): Prisma__TokenSaleClient<$Result.GetResult<Prisma.$TokenSalePayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first TokenSale that matches the filter.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {TokenSaleFindFirstArgs} args - Arguments to find a TokenSale
     * @example
     * // Get one TokenSale
     * const tokenSale = await prisma.tokenSale.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends TokenSaleFindFirstArgs>(args?: SelectSubset<T, TokenSaleFindFirstArgs<ExtArgs>>): Prisma__TokenSaleClient<$Result.GetResult<Prisma.$TokenSalePayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first TokenSale that matches the filter or
     * throw `PrismaKnownClientError` with `P2025` code if no matches were found.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {TokenSaleFindFirstOrThrowArgs} args - Arguments to find a TokenSale
     * @example
     * // Get one TokenSale
     * const tokenSale = await prisma.tokenSale.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends TokenSaleFindFirstOrThrowArgs>(args?: SelectSubset<T, TokenSaleFindFirstOrThrowArgs<ExtArgs>>): Prisma__TokenSaleClient<$Result.GetResult<Prisma.$TokenSalePayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more TokenSales that matches the filter.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {TokenSaleFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all TokenSales
     * const tokenSales = await prisma.tokenSale.findMany()
     * 
     * // Get first 10 TokenSales
     * const tokenSales = await prisma.tokenSale.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const tokenSaleWithIdOnly = await prisma.tokenSale.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends TokenSaleFindManyArgs>(args?: SelectSubset<T, TokenSaleFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$TokenSalePayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a TokenSale.
     * @param {TokenSaleCreateArgs} args - Arguments to create a TokenSale.
     * @example
     * // Create one TokenSale
     * const TokenSale = await prisma.tokenSale.create({
     *   data: {
     *     // ... data to create a TokenSale
     *   }
     * })
     * 
     */
    create<T extends TokenSaleCreateArgs>(args: SelectSubset<T, TokenSaleCreateArgs<ExtArgs>>): Prisma__TokenSaleClient<$Result.GetResult<Prisma.$TokenSalePayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many TokenSales.
     * @param {TokenSaleCreateManyArgs} args - Arguments to create many TokenSales.
     * @example
     * // Create many TokenSales
     * const tokenSale = await prisma.tokenSale.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends TokenSaleCreateManyArgs>(args?: SelectSubset<T, TokenSaleCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many TokenSales and returns the data saved in the database.
     * @param {TokenSaleCreateManyAndReturnArgs} args - Arguments to create many TokenSales.
     * @example
     * // Create many TokenSales
     * const tokenSale = await prisma.tokenSale.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many TokenSales and only return the `id`
     * const tokenSaleWithIdOnly = await prisma.tokenSale.createManyAndReturn({
     *   select: { id: true },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * 
     */
    createManyAndReturn<T extends TokenSaleCreateManyAndReturnArgs>(args?: SelectSubset<T, TokenSaleCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$TokenSalePayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a TokenSale.
     * @param {TokenSaleDeleteArgs} args - Arguments to delete one TokenSale.
     * @example
     * // Delete one TokenSale
     * const TokenSale = await prisma.tokenSale.delete({
     *   where: {
     *     // ... filter to delete one TokenSale
     *   }
     * })
     * 
     */
    delete<T extends TokenSaleDeleteArgs>(args: SelectSubset<T, TokenSaleDeleteArgs<ExtArgs>>): Prisma__TokenSaleClient<$Result.GetResult<Prisma.$TokenSalePayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one TokenSale.
     * @param {TokenSaleUpdateArgs} args - Arguments to update one TokenSale.
     * @example
     * // Update one TokenSale
     * const tokenSale = await prisma.tokenSale.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends TokenSaleUpdateArgs>(args: SelectSubset<T, TokenSaleUpdateArgs<ExtArgs>>): Prisma__TokenSaleClient<$Result.GetResult<Prisma.$TokenSalePayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more TokenSales.
     * @param {TokenSaleDeleteManyArgs} args - Arguments to filter TokenSales to delete.
     * @example
     * // Delete a few TokenSales
     * const { count } = await prisma.tokenSale.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends TokenSaleDeleteManyArgs>(args?: SelectSubset<T, TokenSaleDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more TokenSales.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {TokenSaleUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many TokenSales
     * const tokenSale = await prisma.tokenSale.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends TokenSaleUpdateManyArgs>(args: SelectSubset<T, TokenSaleUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more TokenSales and returns the data updated in the database.
     * @param {TokenSaleUpdateManyAndReturnArgs} args - Arguments to update many TokenSales.
     * @example
     * // Update many TokenSales
     * const tokenSale = await prisma.tokenSale.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more TokenSales and only return the `id`
     * const tokenSaleWithIdOnly = await prisma.tokenSale.updateManyAndReturn({
     *   select: { id: true },
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * 
     */
    updateManyAndReturn<T extends TokenSaleUpdateManyAndReturnArgs>(args: SelectSubset<T, TokenSaleUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$TokenSalePayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one TokenSale.
     * @param {TokenSaleUpsertArgs} args - Arguments to update or create a TokenSale.
     * @example
     * // Update or create a TokenSale
     * const tokenSale = await prisma.tokenSale.upsert({
     *   create: {
     *     // ... data to create a TokenSale
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the TokenSale we want to update
     *   }
     * })
     */
    upsert<T extends TokenSaleUpsertArgs>(args: SelectSubset<T, TokenSaleUpsertArgs<ExtArgs>>): Prisma__TokenSaleClient<$Result.GetResult<Prisma.$TokenSalePayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of TokenSales.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {TokenSaleCountArgs} args - Arguments to filter TokenSales to count.
     * @example
     * // Count the number of TokenSales
     * const count = await prisma.tokenSale.count({
     *   where: {
     *     // ... the filter for the TokenSales we want to count
     *   }
     * })
    **/
    count<T extends TokenSaleCountArgs>(
      args?: Subset<T, TokenSaleCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], TokenSaleCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a TokenSale.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {TokenSaleAggregateArgs} args - Select which aggregations you would like to apply and on what fields.
     * @example
     * // Ordered by age ascending
     * // Where email contains prisma.io
     * // Limited to the 10 users
     * const aggregations = await prisma.user.aggregate({
     *   _avg: {
     *     age: true,
     *   },
     *   where: {
     *     email: {
     *       contains: "prisma.io",
     *     },
     *   },
     *   orderBy: {
     *     age: "asc",
     *   },
     *   take: 10,
     * })
    **/
    aggregate<T extends TokenSaleAggregateArgs>(args: Subset<T, TokenSaleAggregateArgs>): Prisma.PrismaPromise<GetTokenSaleAggregateType<T>>

    /**
     * Group by TokenSale.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {TokenSaleGroupByArgs} args - Group by arguments.
     * @example
     * // Group by city, order by createdAt, get count
     * const result = await prisma.user.groupBy({
     *   by: ['city', 'createdAt'],
     *   orderBy: {
     *     createdAt: true
     *   },
     *   _count: {
     *     _all: true
     *   },
     * })
     * 
    **/
    groupBy<
      T extends TokenSaleGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: TokenSaleGroupByArgs['orderBy'] }
        : { orderBy?: TokenSaleGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, TokenSaleGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetTokenSaleGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the TokenSale model
   */
  readonly fields: TokenSaleFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for TokenSale.
   * Why is this prefixed with `Prisma__`?
   * Because we want to prevent naming conflicts as mentioned in
   * https://github.com/prisma/prisma-client-js/issues/707
   */
  export interface Prisma__TokenSaleClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    project<T extends AgentProjectDefaultArgs<ExtArgs> = {}>(args?: Subset<T, AgentProjectDefaultArgs<ExtArgs>>): Prisma__AgentProjectClient<$Result.GetResult<Prisma.$AgentProjectPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the TokenSale model
   */
  interface TokenSaleFieldRefs {
    readonly id: FieldRef<"TokenSale", 'String'>
    readonly project_id: FieldRef<"TokenSale", 'String'>
    readonly investor_id: FieldRef<"TokenSale", 'String'>
    readonly usdc_amount: FieldRef<"TokenSale", 'Int'>
    readonly tokens_received: FieldRef<"TokenSale", 'Float'>
    readonly price_per_token: FieldRef<"TokenSale", 'Float'>
    readonly created_at: FieldRef<"TokenSale", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * TokenSale findUnique
   */
  export type TokenSaleFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the TokenSale
     */
    select?: TokenSaleSelect<ExtArgs> | null
    /**
     * Omit specific fields from the TokenSale
     */
    omit?: TokenSaleOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: TokenSaleInclude<ExtArgs> | null
    /**
     * Filter, which TokenSale to fetch.
     */
    where: TokenSaleWhereUniqueInput
  }

  /**
   * TokenSale findUniqueOrThrow
   */
  export type TokenSaleFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the TokenSale
     */
    select?: TokenSaleSelect<ExtArgs> | null
    /**
     * Omit specific fields from the TokenSale
     */
    omit?: TokenSaleOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: TokenSaleInclude<ExtArgs> | null
    /**
     * Filter, which TokenSale to fetch.
     */
    where: TokenSaleWhereUniqueInput
  }

  /**
   * TokenSale findFirst
   */
  export type TokenSaleFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the TokenSale
     */
    select?: TokenSaleSelect<ExtArgs> | null
    /**
     * Omit specific fields from the TokenSale
     */
    omit?: TokenSaleOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: TokenSaleInclude<ExtArgs> | null
    /**
     * Filter, which TokenSale to fetch.
     */
    where?: TokenSaleWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of TokenSales to fetch.
     */
    orderBy?: TokenSaleOrderByWithRelationInput | TokenSaleOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for TokenSales.
     */
    cursor?: TokenSaleWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` TokenSales from the position of the cursor.
     */
    take?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Skip the first `n` TokenSales.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of TokenSales.
     */
    distinct?: TokenSaleScalarFieldEnum | TokenSaleScalarFieldEnum[]
  }

  /**
   * TokenSale findFirstOrThrow
   */
  export type TokenSaleFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the TokenSale
     */
    select?: TokenSaleSelect<ExtArgs> | null
    /**
     * Omit specific fields from the TokenSale
     */
    omit?: TokenSaleOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: TokenSaleInclude<ExtArgs> | null
    /**
     * Filter, which TokenSale to fetch.
     */
    where?: TokenSaleWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of TokenSales to fetch.
     */
    orderBy?: TokenSaleOrderByWithRelationInput | TokenSaleOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for TokenSales.
     */
    cursor?: TokenSaleWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` TokenSales from the position of the cursor.
     */
    take?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Skip the first `n` TokenSales.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of TokenSales.
     */
    distinct?: TokenSaleScalarFieldEnum | TokenSaleScalarFieldEnum[]
  }

  /**
   * TokenSale findMany
   */
  export type TokenSaleFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the TokenSale
     */
    select?: TokenSaleSelect<ExtArgs> | null
    /**
     * Omit specific fields from the TokenSale
     */
    omit?: TokenSaleOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: TokenSaleInclude<ExtArgs> | null
    /**
     * Filter, which TokenSales to fetch.
     */
    where?: TokenSaleWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of TokenSales to fetch.
     */
    orderBy?: TokenSaleOrderByWithRelationInput | TokenSaleOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing TokenSales.
     */
    cursor?: TokenSaleWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` TokenSales from the position of the cursor.
     */
    take?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Skip the first `n` TokenSales.
     */
    skip?: number
    distinct?: TokenSaleScalarFieldEnum | TokenSaleScalarFieldEnum[]
  }

  /**
   * TokenSale create
   */
  export type TokenSaleCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the TokenSale
     */
    select?: TokenSaleSelect<ExtArgs> | null
    /**
     * Omit specific fields from the TokenSale
     */
    omit?: TokenSaleOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: TokenSaleInclude<ExtArgs> | null
    /**
     * The data needed to create a TokenSale.
     */
    data: XOR<TokenSaleCreateInput, TokenSaleUncheckedCreateInput>
  }

  /**
   * TokenSale createMany
   */
  export type TokenSaleCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many TokenSales.
     */
    data: TokenSaleCreateManyInput | TokenSaleCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * TokenSale createManyAndReturn
   */
  export type TokenSaleCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the TokenSale
     */
    select?: TokenSaleSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the TokenSale
     */
    omit?: TokenSaleOmit<ExtArgs> | null
    /**
     * The data used to create many TokenSales.
     */
    data: TokenSaleCreateManyInput | TokenSaleCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: TokenSaleIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * TokenSale update
   */
  export type TokenSaleUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the TokenSale
     */
    select?: TokenSaleSelect<ExtArgs> | null
    /**
     * Omit specific fields from the TokenSale
     */
    omit?: TokenSaleOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: TokenSaleInclude<ExtArgs> | null
    /**
     * The data needed to update a TokenSale.
     */
    data: XOR<TokenSaleUpdateInput, TokenSaleUncheckedUpdateInput>
    /**
     * Choose, which TokenSale to update.
     */
    where: TokenSaleWhereUniqueInput
  }

  /**
   * TokenSale updateMany
   */
  export type TokenSaleUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update TokenSales.
     */
    data: XOR<TokenSaleUpdateManyMutationInput, TokenSaleUncheckedUpdateManyInput>
    /**
     * Filter which TokenSales to update
     */
    where?: TokenSaleWhereInput
    /**
     * Limit how many TokenSales to update.
     */
    limit?: number
  }

  /**
   * TokenSale updateManyAndReturn
   */
  export type TokenSaleUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the TokenSale
     */
    select?: TokenSaleSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the TokenSale
     */
    omit?: TokenSaleOmit<ExtArgs> | null
    /**
     * The data used to update TokenSales.
     */
    data: XOR<TokenSaleUpdateManyMutationInput, TokenSaleUncheckedUpdateManyInput>
    /**
     * Filter which TokenSales to update
     */
    where?: TokenSaleWhereInput
    /**
     * Limit how many TokenSales to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: TokenSaleIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * TokenSale upsert
   */
  export type TokenSaleUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the TokenSale
     */
    select?: TokenSaleSelect<ExtArgs> | null
    /**
     * Omit specific fields from the TokenSale
     */
    omit?: TokenSaleOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: TokenSaleInclude<ExtArgs> | null
    /**
     * The filter to search for the TokenSale to update in case it exists.
     */
    where: TokenSaleWhereUniqueInput
    /**
     * In case the TokenSale found by the `where` argument doesn't exist, create a new TokenSale with this data.
     */
    create: XOR<TokenSaleCreateInput, TokenSaleUncheckedCreateInput>
    /**
     * In case the TokenSale was found with the provided `where` argument, update it with this data.
     */
    update: XOR<TokenSaleUpdateInput, TokenSaleUncheckedUpdateInput>
  }

  /**
   * TokenSale delete
   */
  export type TokenSaleDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the TokenSale
     */
    select?: TokenSaleSelect<ExtArgs> | null
    /**
     * Omit specific fields from the TokenSale
     */
    omit?: TokenSaleOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: TokenSaleInclude<ExtArgs> | null
    /**
     * Filter which TokenSale to delete.
     */
    where: TokenSaleWhereUniqueInput
  }

  /**
   * TokenSale deleteMany
   */
  export type TokenSaleDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which TokenSales to delete
     */
    where?: TokenSaleWhereInput
    /**
     * Limit how many TokenSales to delete.
     */
    limit?: number
  }

  /**
   * TokenSale without action
   */
  export type TokenSaleDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the TokenSale
     */
    select?: TokenSaleSelect<ExtArgs> | null
    /**
     * Omit specific fields from the TokenSale
     */
    omit?: TokenSaleOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: TokenSaleInclude<ExtArgs> | null
  }


  /**
   * Model SlashingEvent
   */

  export type AggregateSlashingEvent = {
    _count: SlashingEventCountAggregateOutputType | null
    _avg: SlashingEventAvgAggregateOutputType | null
    _sum: SlashingEventSumAggregateOutputType | null
    _min: SlashingEventMinAggregateOutputType | null
    _max: SlashingEventMaxAggregateOutputType | null
  }

  export type SlashingEventAvgAggregateOutputType = {
    slashed_amount: number | null
    scout_reward: number | null
    treasury_reward: number | null
  }

  export type SlashingEventSumAggregateOutputType = {
    slashed_amount: number | null
    scout_reward: number | null
    treasury_reward: number | null
  }

  export type SlashingEventMinAggregateOutputType = {
    id: string | null
    agent_id: string | null
    arbitration_id: string | null
    slashed_amount: number | null
    scout_reward: number | null
    treasury_reward: number | null
    reason: string | null
    created_at: Date | null
  }

  export type SlashingEventMaxAggregateOutputType = {
    id: string | null
    agent_id: string | null
    arbitration_id: string | null
    slashed_amount: number | null
    scout_reward: number | null
    treasury_reward: number | null
    reason: string | null
    created_at: Date | null
  }

  export type SlashingEventCountAggregateOutputType = {
    id: number
    agent_id: number
    arbitration_id: number
    slashed_amount: number
    scout_reward: number
    treasury_reward: number
    reason: number
    created_at: number
    _all: number
  }


  export type SlashingEventAvgAggregateInputType = {
    slashed_amount?: true
    scout_reward?: true
    treasury_reward?: true
  }

  export type SlashingEventSumAggregateInputType = {
    slashed_amount?: true
    scout_reward?: true
    treasury_reward?: true
  }

  export type SlashingEventMinAggregateInputType = {
    id?: true
    agent_id?: true
    arbitration_id?: true
    slashed_amount?: true
    scout_reward?: true
    treasury_reward?: true
    reason?: true
    created_at?: true
  }

  export type SlashingEventMaxAggregateInputType = {
    id?: true
    agent_id?: true
    arbitration_id?: true
    slashed_amount?: true
    scout_reward?: true
    treasury_reward?: true
    reason?: true
    created_at?: true
  }

  export type SlashingEventCountAggregateInputType = {
    id?: true
    agent_id?: true
    arbitration_id?: true
    slashed_amount?: true
    scout_reward?: true
    treasury_reward?: true
    reason?: true
    created_at?: true
    _all?: true
  }

  export type SlashingEventAggregateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which SlashingEvent to aggregate.
     */
    where?: SlashingEventWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of SlashingEvents to fetch.
     */
    orderBy?: SlashingEventOrderByWithRelationInput | SlashingEventOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the start position
     */
    cursor?: SlashingEventWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` SlashingEvents from the position of the cursor.
     */
    take?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Skip the first `n` SlashingEvents.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Count returned SlashingEvents
    **/
    _count?: true | SlashingEventCountAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to average
    **/
    _avg?: SlashingEventAvgAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to sum
    **/
    _sum?: SlashingEventSumAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the minimum value
    **/
    _min?: SlashingEventMinAggregateInputType
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs}
     * 
     * Select which fields to find the maximum value
    **/
    _max?: SlashingEventMaxAggregateInputType
  }

  export type GetSlashingEventAggregateType<T extends SlashingEventAggregateArgs> = {
        [P in keyof T & keyof AggregateSlashingEvent]: P extends '_count' | 'count'
      ? T[P] extends true
        ? number
        : GetScalarType<T[P], AggregateSlashingEvent[P]>
      : GetScalarType<T[P], AggregateSlashingEvent[P]>
  }




  export type SlashingEventGroupByArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    where?: SlashingEventWhereInput
    orderBy?: SlashingEventOrderByWithAggregationInput | SlashingEventOrderByWithAggregationInput[]
    by: SlashingEventScalarFieldEnum[] | SlashingEventScalarFieldEnum
    having?: SlashingEventScalarWhereWithAggregatesInput
    take?: number
    skip?: number
    _count?: SlashingEventCountAggregateInputType | true
    _avg?: SlashingEventAvgAggregateInputType
    _sum?: SlashingEventSumAggregateInputType
    _min?: SlashingEventMinAggregateInputType
    _max?: SlashingEventMaxAggregateInputType
  }

  export type SlashingEventGroupByOutputType = {
    id: string
    agent_id: string
    arbitration_id: string
    slashed_amount: number
    scout_reward: number
    treasury_reward: number
    reason: string
    created_at: Date
    _count: SlashingEventCountAggregateOutputType | null
    _avg: SlashingEventAvgAggregateOutputType | null
    _sum: SlashingEventSumAggregateOutputType | null
    _min: SlashingEventMinAggregateOutputType | null
    _max: SlashingEventMaxAggregateOutputType | null
  }

  type GetSlashingEventGroupByPayload<T extends SlashingEventGroupByArgs> = Prisma.PrismaPromise<
    Array<
      PickEnumerable<SlashingEventGroupByOutputType, T['by']> &
        {
          [P in ((keyof T) & (keyof SlashingEventGroupByOutputType))]: P extends '_count'
            ? T[P] extends boolean
              ? number
              : GetScalarType<T[P], SlashingEventGroupByOutputType[P]>
            : GetScalarType<T[P], SlashingEventGroupByOutputType[P]>
        }
      >
    >


  export type SlashingEventSelect<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    agent_id?: boolean
    arbitration_id?: boolean
    slashed_amount?: boolean
    scout_reward?: boolean
    treasury_reward?: boolean
    reason?: boolean
    created_at?: boolean
    agent?: boolean | AgentProfileDefaultArgs<ExtArgs>
    arbitration?: boolean | ArbitrationDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["slashingEvent"]>

  export type SlashingEventSelectCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    agent_id?: boolean
    arbitration_id?: boolean
    slashed_amount?: boolean
    scout_reward?: boolean
    treasury_reward?: boolean
    reason?: boolean
    created_at?: boolean
    agent?: boolean | AgentProfileDefaultArgs<ExtArgs>
    arbitration?: boolean | ArbitrationDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["slashingEvent"]>

  export type SlashingEventSelectUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetSelect<{
    id?: boolean
    agent_id?: boolean
    arbitration_id?: boolean
    slashed_amount?: boolean
    scout_reward?: boolean
    treasury_reward?: boolean
    reason?: boolean
    created_at?: boolean
    agent?: boolean | AgentProfileDefaultArgs<ExtArgs>
    arbitration?: boolean | ArbitrationDefaultArgs<ExtArgs>
  }, ExtArgs["result"]["slashingEvent"]>

  export type SlashingEventSelectScalar = {
    id?: boolean
    agent_id?: boolean
    arbitration_id?: boolean
    slashed_amount?: boolean
    scout_reward?: boolean
    treasury_reward?: boolean
    reason?: boolean
    created_at?: boolean
  }

  export type SlashingEventOmit<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = $Extensions.GetOmit<"id" | "agent_id" | "arbitration_id" | "slashed_amount" | "scout_reward" | "treasury_reward" | "reason" | "created_at", ExtArgs["result"]["slashingEvent"]>
  export type SlashingEventInclude<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    agent?: boolean | AgentProfileDefaultArgs<ExtArgs>
    arbitration?: boolean | ArbitrationDefaultArgs<ExtArgs>
  }
  export type SlashingEventIncludeCreateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    agent?: boolean | AgentProfileDefaultArgs<ExtArgs>
    arbitration?: boolean | ArbitrationDefaultArgs<ExtArgs>
  }
  export type SlashingEventIncludeUpdateManyAndReturn<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    agent?: boolean | AgentProfileDefaultArgs<ExtArgs>
    arbitration?: boolean | ArbitrationDefaultArgs<ExtArgs>
  }

  export type $SlashingEventPayload<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    name: "SlashingEvent"
    objects: {
      agent: Prisma.$AgentProfilePayload<ExtArgs>
      arbitration: Prisma.$ArbitrationPayload<ExtArgs>
    }
    scalars: $Extensions.GetPayloadResult<{
      id: string
      agent_id: string
      arbitration_id: string
      slashed_amount: number
      scout_reward: number
      treasury_reward: number
      reason: string
      created_at: Date
    }, ExtArgs["result"]["slashingEvent"]>
    composites: {}
  }

  type SlashingEventGetPayload<S extends boolean | null | undefined | SlashingEventDefaultArgs> = $Result.GetResult<Prisma.$SlashingEventPayload, S>

  type SlashingEventCountArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> =
    Omit<SlashingEventFindManyArgs, 'select' | 'include' | 'distinct' | 'omit'> & {
      select?: SlashingEventCountAggregateInputType | true
    }

  export interface SlashingEventDelegate<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> {
    [K: symbol]: { types: Prisma.TypeMap<ExtArgs>['model']['SlashingEvent'], meta: { name: 'SlashingEvent' } }
    /**
     * Find zero or one SlashingEvent that matches the filter.
     * @param {SlashingEventFindUniqueArgs} args - Arguments to find a SlashingEvent
     * @example
     * // Get one SlashingEvent
     * const slashingEvent = await prisma.slashingEvent.findUnique({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUnique<T extends SlashingEventFindUniqueArgs>(args: SelectSubset<T, SlashingEventFindUniqueArgs<ExtArgs>>): Prisma__SlashingEventClient<$Result.GetResult<Prisma.$SlashingEventPayload<ExtArgs>, T, "findUnique", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find one SlashingEvent that matches the filter or throw an error with `error.code='P2025'`
     * if no matches were found.
     * @param {SlashingEventFindUniqueOrThrowArgs} args - Arguments to find a SlashingEvent
     * @example
     * // Get one SlashingEvent
     * const slashingEvent = await prisma.slashingEvent.findUniqueOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findUniqueOrThrow<T extends SlashingEventFindUniqueOrThrowArgs>(args: SelectSubset<T, SlashingEventFindUniqueOrThrowArgs<ExtArgs>>): Prisma__SlashingEventClient<$Result.GetResult<Prisma.$SlashingEventPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first SlashingEvent that matches the filter.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {SlashingEventFindFirstArgs} args - Arguments to find a SlashingEvent
     * @example
     * // Get one SlashingEvent
     * const slashingEvent = await prisma.slashingEvent.findFirst({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirst<T extends SlashingEventFindFirstArgs>(args?: SelectSubset<T, SlashingEventFindFirstArgs<ExtArgs>>): Prisma__SlashingEventClient<$Result.GetResult<Prisma.$SlashingEventPayload<ExtArgs>, T, "findFirst", GlobalOmitOptions> | null, null, ExtArgs, GlobalOmitOptions>

    /**
     * Find the first SlashingEvent that matches the filter or
     * throw `PrismaKnownClientError` with `P2025` code if no matches were found.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {SlashingEventFindFirstOrThrowArgs} args - Arguments to find a SlashingEvent
     * @example
     * // Get one SlashingEvent
     * const slashingEvent = await prisma.slashingEvent.findFirstOrThrow({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     */
    findFirstOrThrow<T extends SlashingEventFindFirstOrThrowArgs>(args?: SelectSubset<T, SlashingEventFindFirstOrThrowArgs<ExtArgs>>): Prisma__SlashingEventClient<$Result.GetResult<Prisma.$SlashingEventPayload<ExtArgs>, T, "findFirstOrThrow", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Find zero or more SlashingEvents that matches the filter.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {SlashingEventFindManyArgs} args - Arguments to filter and select certain fields only.
     * @example
     * // Get all SlashingEvents
     * const slashingEvents = await prisma.slashingEvent.findMany()
     * 
     * // Get first 10 SlashingEvents
     * const slashingEvents = await prisma.slashingEvent.findMany({ take: 10 })
     * 
     * // Only select the `id`
     * const slashingEventWithIdOnly = await prisma.slashingEvent.findMany({ select: { id: true } })
     * 
     */
    findMany<T extends SlashingEventFindManyArgs>(args?: SelectSubset<T, SlashingEventFindManyArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$SlashingEventPayload<ExtArgs>, T, "findMany", GlobalOmitOptions>>

    /**
     * Create a SlashingEvent.
     * @param {SlashingEventCreateArgs} args - Arguments to create a SlashingEvent.
     * @example
     * // Create one SlashingEvent
     * const SlashingEvent = await prisma.slashingEvent.create({
     *   data: {
     *     // ... data to create a SlashingEvent
     *   }
     * })
     * 
     */
    create<T extends SlashingEventCreateArgs>(args: SelectSubset<T, SlashingEventCreateArgs<ExtArgs>>): Prisma__SlashingEventClient<$Result.GetResult<Prisma.$SlashingEventPayload<ExtArgs>, T, "create", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Create many SlashingEvents.
     * @param {SlashingEventCreateManyArgs} args - Arguments to create many SlashingEvents.
     * @example
     * // Create many SlashingEvents
     * const slashingEvent = await prisma.slashingEvent.createMany({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     *     
     */
    createMany<T extends SlashingEventCreateManyArgs>(args?: SelectSubset<T, SlashingEventCreateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Create many SlashingEvents and returns the data saved in the database.
     * @param {SlashingEventCreateManyAndReturnArgs} args - Arguments to create many SlashingEvents.
     * @example
     * // Create many SlashingEvents
     * const slashingEvent = await prisma.slashingEvent.createManyAndReturn({
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Create many SlashingEvents and only return the `id`
     * const slashingEventWithIdOnly = await prisma.slashingEvent.createManyAndReturn({
     *   select: { id: true },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * 
     */
    createManyAndReturn<T extends SlashingEventCreateManyAndReturnArgs>(args?: SelectSubset<T, SlashingEventCreateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$SlashingEventPayload<ExtArgs>, T, "createManyAndReturn", GlobalOmitOptions>>

    /**
     * Delete a SlashingEvent.
     * @param {SlashingEventDeleteArgs} args - Arguments to delete one SlashingEvent.
     * @example
     * // Delete one SlashingEvent
     * const SlashingEvent = await prisma.slashingEvent.delete({
     *   where: {
     *     // ... filter to delete one SlashingEvent
     *   }
     * })
     * 
     */
    delete<T extends SlashingEventDeleteArgs>(args: SelectSubset<T, SlashingEventDeleteArgs<ExtArgs>>): Prisma__SlashingEventClient<$Result.GetResult<Prisma.$SlashingEventPayload<ExtArgs>, T, "delete", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Update one SlashingEvent.
     * @param {SlashingEventUpdateArgs} args - Arguments to update one SlashingEvent.
     * @example
     * // Update one SlashingEvent
     * const slashingEvent = await prisma.slashingEvent.update({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    update<T extends SlashingEventUpdateArgs>(args: SelectSubset<T, SlashingEventUpdateArgs<ExtArgs>>): Prisma__SlashingEventClient<$Result.GetResult<Prisma.$SlashingEventPayload<ExtArgs>, T, "update", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>

    /**
     * Delete zero or more SlashingEvents.
     * @param {SlashingEventDeleteManyArgs} args - Arguments to filter SlashingEvents to delete.
     * @example
     * // Delete a few SlashingEvents
     * const { count } = await prisma.slashingEvent.deleteMany({
     *   where: {
     *     // ... provide filter here
     *   }
     * })
     * 
     */
    deleteMany<T extends SlashingEventDeleteManyArgs>(args?: SelectSubset<T, SlashingEventDeleteManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more SlashingEvents.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {SlashingEventUpdateManyArgs} args - Arguments to update one or more rows.
     * @example
     * // Update many SlashingEvents
     * const slashingEvent = await prisma.slashingEvent.updateMany({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: {
     *     // ... provide data here
     *   }
     * })
     * 
     */
    updateMany<T extends SlashingEventUpdateManyArgs>(args: SelectSubset<T, SlashingEventUpdateManyArgs<ExtArgs>>): Prisma.PrismaPromise<BatchPayload>

    /**
     * Update zero or more SlashingEvents and returns the data updated in the database.
     * @param {SlashingEventUpdateManyAndReturnArgs} args - Arguments to update many SlashingEvents.
     * @example
     * // Update many SlashingEvents
     * const slashingEvent = await prisma.slashingEvent.updateManyAndReturn({
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * 
     * // Update zero or more SlashingEvents and only return the `id`
     * const slashingEventWithIdOnly = await prisma.slashingEvent.updateManyAndReturn({
     *   select: { id: true },
     *   where: {
     *     // ... provide filter here
     *   },
     *   data: [
     *     // ... provide data here
     *   ]
     * })
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * 
     */
    updateManyAndReturn<T extends SlashingEventUpdateManyAndReturnArgs>(args: SelectSubset<T, SlashingEventUpdateManyAndReturnArgs<ExtArgs>>): Prisma.PrismaPromise<$Result.GetResult<Prisma.$SlashingEventPayload<ExtArgs>, T, "updateManyAndReturn", GlobalOmitOptions>>

    /**
     * Create or update one SlashingEvent.
     * @param {SlashingEventUpsertArgs} args - Arguments to update or create a SlashingEvent.
     * @example
     * // Update or create a SlashingEvent
     * const slashingEvent = await prisma.slashingEvent.upsert({
     *   create: {
     *     // ... data to create a SlashingEvent
     *   },
     *   update: {
     *     // ... in case it already exists, update
     *   },
     *   where: {
     *     // ... the filter for the SlashingEvent we want to update
     *   }
     * })
     */
    upsert<T extends SlashingEventUpsertArgs>(args: SelectSubset<T, SlashingEventUpsertArgs<ExtArgs>>): Prisma__SlashingEventClient<$Result.GetResult<Prisma.$SlashingEventPayload<ExtArgs>, T, "upsert", GlobalOmitOptions>, never, ExtArgs, GlobalOmitOptions>


    /**
     * Count the number of SlashingEvents.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {SlashingEventCountArgs} args - Arguments to filter SlashingEvents to count.
     * @example
     * // Count the number of SlashingEvents
     * const count = await prisma.slashingEvent.count({
     *   where: {
     *     // ... the filter for the SlashingEvents we want to count
     *   }
     * })
    **/
    count<T extends SlashingEventCountArgs>(
      args?: Subset<T, SlashingEventCountArgs>,
    ): Prisma.PrismaPromise<
      T extends $Utils.Record<'select', any>
        ? T['select'] extends true
          ? number
          : GetScalarType<T['select'], SlashingEventCountAggregateOutputType>
        : number
    >

    /**
     * Allows you to perform aggregations operations on a SlashingEvent.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {SlashingEventAggregateArgs} args - Select which aggregations you would like to apply and on what fields.
     * @example
     * // Ordered by age ascending
     * // Where email contains prisma.io
     * // Limited to the 10 users
     * const aggregations = await prisma.user.aggregate({
     *   _avg: {
     *     age: true,
     *   },
     *   where: {
     *     email: {
     *       contains: "prisma.io",
     *     },
     *   },
     *   orderBy: {
     *     age: "asc",
     *   },
     *   take: 10,
     * })
    **/
    aggregate<T extends SlashingEventAggregateArgs>(args: Subset<T, SlashingEventAggregateArgs>): Prisma.PrismaPromise<GetSlashingEventAggregateType<T>>

    /**
     * Group by SlashingEvent.
     * Note, that providing `undefined` is treated as the value not being there.
     * Read more here: https://pris.ly/d/null-undefined
     * @param {SlashingEventGroupByArgs} args - Group by arguments.
     * @example
     * // Group by city, order by createdAt, get count
     * const result = await prisma.user.groupBy({
     *   by: ['city', 'createdAt'],
     *   orderBy: {
     *     createdAt: true
     *   },
     *   _count: {
     *     _all: true
     *   },
     * })
     * 
    **/
    groupBy<
      T extends SlashingEventGroupByArgs,
      HasSelectOrTake extends Or<
        Extends<'skip', Keys<T>>,
        Extends<'take', Keys<T>>
      >,
      OrderByArg extends True extends HasSelectOrTake
        ? { orderBy: SlashingEventGroupByArgs['orderBy'] }
        : { orderBy?: SlashingEventGroupByArgs['orderBy'] },
      OrderFields extends ExcludeUnderscoreKeys<Keys<MaybeTupleToUnion<T['orderBy']>>>,
      ByFields extends MaybeTupleToUnion<T['by']>,
      ByValid extends Has<ByFields, OrderFields>,
      HavingFields extends GetHavingFields<T['having']>,
      HavingValid extends Has<ByFields, HavingFields>,
      ByEmpty extends T['by'] extends never[] ? True : False,
      InputErrors extends ByEmpty extends True
      ? `Error: "by" must not be empty.`
      : HavingValid extends False
      ? {
          [P in HavingFields]: P extends ByFields
            ? never
            : P extends string
            ? `Error: Field "${P}" used in "having" needs to be provided in "by".`
            : [
                Error,
                'Field ',
                P,
                ` in "having" needs to be provided in "by"`,
              ]
        }[HavingFields]
      : 'take' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "take", you also need to provide "orderBy"'
      : 'skip' extends Keys<T>
      ? 'orderBy' extends Keys<T>
        ? ByValid extends True
          ? {}
          : {
              [P in OrderFields]: P extends ByFields
                ? never
                : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
            }[OrderFields]
        : 'Error: If you provide "skip", you also need to provide "orderBy"'
      : ByValid extends True
      ? {}
      : {
          [P in OrderFields]: P extends ByFields
            ? never
            : `Error: Field "${P}" in "orderBy" needs to be provided in "by"`
        }[OrderFields]
    >(args: SubsetIntersection<T, SlashingEventGroupByArgs, OrderByArg> & InputErrors): {} extends InputErrors ? GetSlashingEventGroupByPayload<T> : Prisma.PrismaPromise<InputErrors>
  /**
   * Fields of the SlashingEvent model
   */
  readonly fields: SlashingEventFieldRefs;
  }

  /**
   * The delegate class that acts as a "Promise-like" for SlashingEvent.
   * Why is this prefixed with `Prisma__`?
   * Because we want to prevent naming conflicts as mentioned in
   * https://github.com/prisma/prisma-client-js/issues/707
   */
  export interface Prisma__SlashingEventClient<T, Null = never, ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
    readonly [Symbol.toStringTag]: "PrismaPromise"
    agent<T extends AgentProfileDefaultArgs<ExtArgs> = {}>(args?: Subset<T, AgentProfileDefaultArgs<ExtArgs>>): Prisma__AgentProfileClient<$Result.GetResult<Prisma.$AgentProfilePayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    arbitration<T extends ArbitrationDefaultArgs<ExtArgs> = {}>(args?: Subset<T, ArbitrationDefaultArgs<ExtArgs>>): Prisma__ArbitrationClient<$Result.GetResult<Prisma.$ArbitrationPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
    /**
     * Attaches callbacks for the resolution and/or rejection of the Promise.
     * @param onfulfilled The callback to execute when the Promise is resolved.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of which ever callback is executed.
     */
    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): $Utils.JsPromise<TResult1 | TResult2>
    /**
     * Attaches a callback for only the rejection of the Promise.
     * @param onrejected The callback to execute when the Promise is rejected.
     * @returns A Promise for the completion of the callback.
     */
    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): $Utils.JsPromise<T | TResult>
    /**
     * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
     * resolved value cannot be modified from the callback.
     * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise<T>
  }




  /**
   * Fields of the SlashingEvent model
   */
  interface SlashingEventFieldRefs {
    readonly id: FieldRef<"SlashingEvent", 'String'>
    readonly agent_id: FieldRef<"SlashingEvent", 'String'>
    readonly arbitration_id: FieldRef<"SlashingEvent", 'String'>
    readonly slashed_amount: FieldRef<"SlashingEvent", 'Int'>
    readonly scout_reward: FieldRef<"SlashingEvent", 'Int'>
    readonly treasury_reward: FieldRef<"SlashingEvent", 'Int'>
    readonly reason: FieldRef<"SlashingEvent", 'String'>
    readonly created_at: FieldRef<"SlashingEvent", 'DateTime'>
  }
    

  // Custom InputTypes
  /**
   * SlashingEvent findUnique
   */
  export type SlashingEventFindUniqueArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SlashingEvent
     */
    select?: SlashingEventSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SlashingEvent
     */
    omit?: SlashingEventOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SlashingEventInclude<ExtArgs> | null
    /**
     * Filter, which SlashingEvent to fetch.
     */
    where: SlashingEventWhereUniqueInput
  }

  /**
   * SlashingEvent findUniqueOrThrow
   */
  export type SlashingEventFindUniqueOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SlashingEvent
     */
    select?: SlashingEventSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SlashingEvent
     */
    omit?: SlashingEventOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SlashingEventInclude<ExtArgs> | null
    /**
     * Filter, which SlashingEvent to fetch.
     */
    where: SlashingEventWhereUniqueInput
  }

  /**
   * SlashingEvent findFirst
   */
  export type SlashingEventFindFirstArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SlashingEvent
     */
    select?: SlashingEventSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SlashingEvent
     */
    omit?: SlashingEventOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SlashingEventInclude<ExtArgs> | null
    /**
     * Filter, which SlashingEvent to fetch.
     */
    where?: SlashingEventWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of SlashingEvents to fetch.
     */
    orderBy?: SlashingEventOrderByWithRelationInput | SlashingEventOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for SlashingEvents.
     */
    cursor?: SlashingEventWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` SlashingEvents from the position of the cursor.
     */
    take?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Skip the first `n` SlashingEvents.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of SlashingEvents.
     */
    distinct?: SlashingEventScalarFieldEnum | SlashingEventScalarFieldEnum[]
  }

  /**
   * SlashingEvent findFirstOrThrow
   */
  export type SlashingEventFindFirstOrThrowArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SlashingEvent
     */
    select?: SlashingEventSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SlashingEvent
     */
    omit?: SlashingEventOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SlashingEventInclude<ExtArgs> | null
    /**
     * Filter, which SlashingEvent to fetch.
     */
    where?: SlashingEventWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of SlashingEvents to fetch.
     */
    orderBy?: SlashingEventOrderByWithRelationInput | SlashingEventOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for searching for SlashingEvents.
     */
    cursor?: SlashingEventWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` SlashingEvents from the position of the cursor.
     */
    take?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Skip the first `n` SlashingEvents.
     */
    skip?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs}
     * 
     * Filter by unique combinations of SlashingEvents.
     */
    distinct?: SlashingEventScalarFieldEnum | SlashingEventScalarFieldEnum[]
  }

  /**
   * SlashingEvent findMany
   */
  export type SlashingEventFindManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SlashingEvent
     */
    select?: SlashingEventSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SlashingEvent
     */
    omit?: SlashingEventOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SlashingEventInclude<ExtArgs> | null
    /**
     * Filter, which SlashingEvents to fetch.
     */
    where?: SlashingEventWhereInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs}
     * 
     * Determine the order of SlashingEvents to fetch.
     */
    orderBy?: SlashingEventOrderByWithRelationInput | SlashingEventOrderByWithRelationInput[]
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs}
     * 
     * Sets the position for listing SlashingEvents.
     */
    cursor?: SlashingEventWhereUniqueInput
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Take `±n` SlashingEvents from the position of the cursor.
     */
    take?: number
    /**
     * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs}
     * 
     * Skip the first `n` SlashingEvents.
     */
    skip?: number
    distinct?: SlashingEventScalarFieldEnum | SlashingEventScalarFieldEnum[]
  }

  /**
   * SlashingEvent create
   */
  export type SlashingEventCreateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SlashingEvent
     */
    select?: SlashingEventSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SlashingEvent
     */
    omit?: SlashingEventOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SlashingEventInclude<ExtArgs> | null
    /**
     * The data needed to create a SlashingEvent.
     */
    data: XOR<SlashingEventCreateInput, SlashingEventUncheckedCreateInput>
  }

  /**
   * SlashingEvent createMany
   */
  export type SlashingEventCreateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to create many SlashingEvents.
     */
    data: SlashingEventCreateManyInput | SlashingEventCreateManyInput[]
    skipDuplicates?: boolean
  }

  /**
   * SlashingEvent createManyAndReturn
   */
  export type SlashingEventCreateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SlashingEvent
     */
    select?: SlashingEventSelectCreateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the SlashingEvent
     */
    omit?: SlashingEventOmit<ExtArgs> | null
    /**
     * The data used to create many SlashingEvents.
     */
    data: SlashingEventCreateManyInput | SlashingEventCreateManyInput[]
    skipDuplicates?: boolean
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SlashingEventIncludeCreateManyAndReturn<ExtArgs> | null
  }

  /**
   * SlashingEvent update
   */
  export type SlashingEventUpdateArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SlashingEvent
     */
    select?: SlashingEventSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SlashingEvent
     */
    omit?: SlashingEventOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SlashingEventInclude<ExtArgs> | null
    /**
     * The data needed to update a SlashingEvent.
     */
    data: XOR<SlashingEventUpdateInput, SlashingEventUncheckedUpdateInput>
    /**
     * Choose, which SlashingEvent to update.
     */
    where: SlashingEventWhereUniqueInput
  }

  /**
   * SlashingEvent updateMany
   */
  export type SlashingEventUpdateManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * The data used to update SlashingEvents.
     */
    data: XOR<SlashingEventUpdateManyMutationInput, SlashingEventUncheckedUpdateManyInput>
    /**
     * Filter which SlashingEvents to update
     */
    where?: SlashingEventWhereInput
    /**
     * Limit how many SlashingEvents to update.
     */
    limit?: number
  }

  /**
   * SlashingEvent updateManyAndReturn
   */
  export type SlashingEventUpdateManyAndReturnArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SlashingEvent
     */
    select?: SlashingEventSelectUpdateManyAndReturn<ExtArgs> | null
    /**
     * Omit specific fields from the SlashingEvent
     */
    omit?: SlashingEventOmit<ExtArgs> | null
    /**
     * The data used to update SlashingEvents.
     */
    data: XOR<SlashingEventUpdateManyMutationInput, SlashingEventUncheckedUpdateManyInput>
    /**
     * Filter which SlashingEvents to update
     */
    where?: SlashingEventWhereInput
    /**
     * Limit how many SlashingEvents to update.
     */
    limit?: number
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SlashingEventIncludeUpdateManyAndReturn<ExtArgs> | null
  }

  /**
   * SlashingEvent upsert
   */
  export type SlashingEventUpsertArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SlashingEvent
     */
    select?: SlashingEventSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SlashingEvent
     */
    omit?: SlashingEventOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SlashingEventInclude<ExtArgs> | null
    /**
     * The filter to search for the SlashingEvent to update in case it exists.
     */
    where: SlashingEventWhereUniqueInput
    /**
     * In case the SlashingEvent found by the `where` argument doesn't exist, create a new SlashingEvent with this data.
     */
    create: XOR<SlashingEventCreateInput, SlashingEventUncheckedCreateInput>
    /**
     * In case the SlashingEvent was found with the provided `where` argument, update it with this data.
     */
    update: XOR<SlashingEventUpdateInput, SlashingEventUncheckedUpdateInput>
  }

  /**
   * SlashingEvent delete
   */
  export type SlashingEventDeleteArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SlashingEvent
     */
    select?: SlashingEventSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SlashingEvent
     */
    omit?: SlashingEventOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SlashingEventInclude<ExtArgs> | null
    /**
     * Filter which SlashingEvent to delete.
     */
    where: SlashingEventWhereUniqueInput
  }

  /**
   * SlashingEvent deleteMany
   */
  export type SlashingEventDeleteManyArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Filter which SlashingEvents to delete
     */
    where?: SlashingEventWhereInput
    /**
     * Limit how many SlashingEvents to delete.
     */
    limit?: number
  }

  /**
   * SlashingEvent without action
   */
  export type SlashingEventDefaultArgs<ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs> = {
    /**
     * Select specific fields to fetch from the SlashingEvent
     */
    select?: SlashingEventSelect<ExtArgs> | null
    /**
     * Omit specific fields from the SlashingEvent
     */
    omit?: SlashingEventOmit<ExtArgs> | null
    /**
     * Choose, which related nodes to fetch as well
     */
    include?: SlashingEventInclude<ExtArgs> | null
  }


  /**
   * Enums
   */

  export const TransactionIsolationLevel: {
    ReadUncommitted: 'ReadUncommitted',
    ReadCommitted: 'ReadCommitted',
    RepeatableRead: 'RepeatableRead',
    Serializable: 'Serializable'
  };

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


  export const TaskScalarFieldEnum: {
    id: 'id',
    title: 'title',
    description: 'description',
    status: 'status',
    difficulty: 'difficulty',
    scope_clarity_score: 'scope_clarity_score',
    error_classification: 'error_classification',
    reward_amount: 'reward_amount',
    reward_currency: 'reward_currency',
    acceptance_criteria: 'acceptance_criteria',
    required_stack: 'required_stack',
    retry_count: 'retry_count',
    stripe_payment_intent_id: 'stripe_payment_intent_id',
    stripe_checkout_session_id: 'stripe_checkout_session_id',
    expires_at: 'expires_at',
    github_pr_url: 'github_pr_url',
    reward_points: 'reward_points',
    is_priority: 'is_priority',
    is_private: 'is_private',
    referred_by_agent: 'referred_by_agent',
    parent_task_id: 'parent_task_id',
    created_by_agent: 'created_by_agent',
    created_at: 'created_at',
    updated_at: 'updated_at',
    scout_id: 'scout_id',
    builder_id: 'builder_id'
  };

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


  export const ClaimScalarFieldEnum: {
    id: 'id',
    task_id: 'task_id',
    agent_id: 'agent_id',
    developer_wallet: 'developer_wallet',
    status: 'status',
    claim_token: 'claim_token',
    held_amount: 'held_amount',
    held_currency: 'held_currency',
    expires_at: 'expires_at',
    created_at: 'created_at',
    updated_at: 'updated_at'
  };

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


  export const SubmissionScalarFieldEnum: {
    id: 'id',
    task_id: 'task_id',
    claim_id: 'claim_id',
    status: 'status',
    deliverables: 'deliverables',
    estimated_judge_complete_at: 'estimated_judge_complete_at',
    created_at: 'created_at',
    updated_at: 'updated_at'
  };

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


  export const JudgeResultScalarFieldEnum: {
    id: 'id',
    submission_id: 'submission_id',
    overall_result: 'overall_result',
    tests: 'tests',
    artifacts: 'artifacts',
    error_classification: 'error_classification',
    error_signature: 'error_signature',
    retryable: 'retryable',
    resource_usage: 'resource_usage',
    judge_completed_at: 'judge_completed_at'
  };

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


  export const AuditEventScalarFieldEnum: {
    id: 'id',
    actorType: 'actorType',
    actorId: 'actorId',
    action: 'action',
    entityType: 'entityType',
    entityId: 'entityId',
    beforeState: 'beforeState',
    afterState: 'afterState',
    reason: 'reason',
    metadata: 'metadata',
    createdAt: 'createdAt'
  };

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


  export const LedgerEntryScalarFieldEnum: {
    id: 'id',
    task_id: 'task_id',
    phase: 'phase',
    idempotency_key: 'idempotency_key',
    stripe_object_id: 'stripe_object_id',
    response_status: 'response_status',
    http_status: 'http_status',
    created_at: 'created_at',
    updated_at: 'updated_at'
  };

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


  export const AgentProfileScalarFieldEnum: {
    id: 'id',
    agent_id: 'agent_id',
    type: 'type',
    wallet_address: 'wallet_address',
    status: 'status',
    capabilities: 'capabilities',
    contact_endpoints: 'contact_endpoints',
    discovery_source: 'discovery_source',
    created_at: 'created_at',
    updated_at: 'updated_at',
    crypto_address: 'crypto_address',
    mcp_endpoint: 'mcp_endpoint',
    staked_amount: 'staked_amount',
    tier: 'tier'
  };

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


  export const AffiliateLedgerScalarFieldEnum: {
    id: 'id',
    scout_id: 'scout_id',
    task_id: 'task_id',
    amount: 'amount',
    currency: 'currency',
    status: 'status',
    created_at: 'created_at',
    updated_at: 'updated_at'
  };

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


  export const ScoutReputationScalarFieldEnum: {
    id: 'id',
    scout_id: 'scout_id',
    successful_conversions: 'successful_conversions',
    spam_score: 'spam_score',
    chargeback_count: 'chargeback_count',
    created_at: 'created_at',
    updated_at: 'updated_at'
  };

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


  export const BidProposalScalarFieldEnum: {
    id: 'id',
    task_id: 'task_id',
    agent_id: 'agent_id',
    proposed_reward: 'proposed_reward',
    estimated_duration_hours: 'estimated_duration_hours',
    quality_guarantee: 'quality_guarantee',
    status: 'status',
    counter_offer_amount: 'counter_offer_amount',
    broker_agent_id: 'broker_agent_id',
    broker_fee_percentage: 'broker_fee_percentage',
    created_at: 'created_at',
    updated_at: 'updated_at'
  };

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


  export const AgentWebhookScalarFieldEnum: {
    id: 'id',
    task_id: 'task_id',
    agent_id: 'agent_id',
    webhook_url: 'webhook_url',
    events: 'events',
    created_at: 'created_at',
    updated_at: 'updated_at'
  };

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


  export const ArbitrationScalarFieldEnum: {
    id: 'id',
    task_id: 'task_id',
    builder_id: 'builder_id',
    evaluator_id: 'evaluator_id',
    status: 'status',
    builder_evidence: 'builder_evidence',
    evaluator_reason: 'evaluator_reason',
    winning_party: 'winning_party',
    created_at: 'created_at',
    updated_at: 'updated_at'
  };

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


  export const ArbitrationVoteScalarFieldEnum: {
    id: 'id',
    arbitration_id: 'arbitration_id',
    judge_id: 'judge_id',
    vote_for: 'vote_for',
    reasoning: 'reasoning',
    created_at: 'created_at'
  };

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


  export const AgentProjectScalarFieldEnum: {
    id: 'id',
    creator_agent_id: 'creator_agent_id',
    name: 'name',
    ticker: 'ticker',
    description: 'description',
    whitepaper_url: 'whitepaper_url',
    target_raise: 'target_raise',
    total_supply: 'total_supply',
    status: 'status',
    created_at: 'created_at',
    updated_at: 'updated_at'
  };

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


  export const TokenSaleScalarFieldEnum: {
    id: 'id',
    project_id: 'project_id',
    investor_id: 'investor_id',
    usdc_amount: 'usdc_amount',
    tokens_received: 'tokens_received',
    price_per_token: 'price_per_token',
    created_at: 'created_at'
  };

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


  export const SlashingEventScalarFieldEnum: {
    id: 'id',
    agent_id: 'agent_id',
    arbitration_id: 'arbitration_id',
    slashed_amount: 'slashed_amount',
    scout_reward: 'scout_reward',
    treasury_reward: 'treasury_reward',
    reason: 'reason',
    created_at: 'created_at'
  };

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


  export const SortOrder: {
    asc: 'asc',
    desc: 'desc'
  };

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


  export const JsonNullValueInput: {
    JsonNull: typeof JsonNull
  };

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


  export const NullableJsonNullValueInput: {
    DbNull: typeof DbNull,
    JsonNull: typeof JsonNull
  };

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


  export const QueryMode: {
    default: 'default',
    insensitive: 'insensitive'
  };

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


  export const JsonNullValueFilter: {
    DbNull: typeof DbNull,
    JsonNull: typeof JsonNull,
    AnyNull: typeof AnyNull
  };

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


  export const NullsOrder: {
    first: 'first',
    last: 'last'
  };

  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 'String[]'
   */
  export type ListStringFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'String[]'>
    


  /**
   * 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 '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 '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 '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 'Boolean'
   */
  export type BooleanFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'Boolean'>
    


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


  /**
   * Reference to a field of type 'AgentStatus[]'
   */
  export type ListEnumAgentStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'AgentStatus[]'>
    
  /**
   * Deep Input Types
   */


  export type TaskWhereInput = {
    AND?: TaskWhereInput | TaskWhereInput[]
    OR?: TaskWhereInput[]
    NOT?: TaskWhereInput | TaskWhereInput[]
    id?: StringFilter<"Task"> | string
    title?: StringFilter<"Task"> | string
    description?: StringFilter<"Task"> | string
    status?: StringFilter<"Task"> | string
    difficulty?: StringFilter<"Task"> | string
    scope_clarity_score?: FloatFilter<"Task"> | number
    error_classification?: StringNullableFilter<"Task"> | string | null
    reward_amount?: IntFilter<"Task"> | number
    reward_currency?: StringFilter<"Task"> | string
    acceptance_criteria?: JsonFilter<"Task">
    required_stack?: StringNullableListFilter<"Task">
    retry_count?: IntFilter<"Task"> | number
    stripe_payment_intent_id?: StringNullableFilter<"Task"> | string | null
    stripe_checkout_session_id?: StringNullableFilter<"Task"> | string | null
    expires_at?: DateTimeNullableFilter<"Task"> | Date | string | null
    github_pr_url?: StringNullableFilter<"Task"> | string | null
    reward_points?: IntFilter<"Task"> | number
    is_priority?: BoolFilter<"Task"> | boolean
    is_private?: BoolFilter<"Task"> | boolean
    referred_by_agent?: StringNullableFilter<"Task"> | string | null
    parent_task_id?: StringNullableFilter<"Task"> | string | null
    created_by_agent?: StringNullableFilter<"Task"> | string | null
    created_at?: DateTimeFilter<"Task"> | Date | string
    updated_at?: DateTimeFilter<"Task"> | Date | string
    scout_id?: StringNullableFilter<"Task"> | string | null
    builder_id?: StringNullableFilter<"Task"> | string | null
    scout_agent?: XOR<AgentProfileNullableScalarRelationFilter, AgentProfileWhereInput> | null
    builder_agent?: XOR<AgentProfileNullableScalarRelationFilter, AgentProfileWhereInput> | null
    claims?: ClaimListRelationFilter
    submissions?: SubmissionListRelationFilter
    affiliate_ledger?: AffiliateLedgerListRelationFilter
    bid_proposals?: BidProposalListRelationFilter
    arbitrations?: ArbitrationListRelationFilter
  }

  export type TaskOrderByWithRelationInput = {
    id?: SortOrder
    title?: SortOrder
    description?: SortOrder
    status?: SortOrder
    difficulty?: SortOrder
    scope_clarity_score?: SortOrder
    error_classification?: SortOrderInput | SortOrder
    reward_amount?: SortOrder
    reward_currency?: SortOrder
    acceptance_criteria?: SortOrder
    required_stack?: SortOrder
    retry_count?: SortOrder
    stripe_payment_intent_id?: SortOrderInput | SortOrder
    stripe_checkout_session_id?: SortOrderInput | SortOrder
    expires_at?: SortOrderInput | SortOrder
    github_pr_url?: SortOrderInput | SortOrder
    reward_points?: SortOrder
    is_priority?: SortOrder
    is_private?: SortOrder
    referred_by_agent?: SortOrderInput | SortOrder
    parent_task_id?: SortOrderInput | SortOrder
    created_by_agent?: SortOrderInput | SortOrder
    created_at?: SortOrder
    updated_at?: SortOrder
    scout_id?: SortOrderInput | SortOrder
    builder_id?: SortOrderInput | SortOrder
    scout_agent?: AgentProfileOrderByWithRelationInput
    builder_agent?: AgentProfileOrderByWithRelationInput
    claims?: ClaimOrderByRelationAggregateInput
    submissions?: SubmissionOrderByRelationAggregateInput
    affiliate_ledger?: AffiliateLedgerOrderByRelationAggregateInput
    bid_proposals?: BidProposalOrderByRelationAggregateInput
    arbitrations?: ArbitrationOrderByRelationAggregateInput
  }

  export type TaskWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    AND?: TaskWhereInput | TaskWhereInput[]
    OR?: TaskWhereInput[]
    NOT?: TaskWhereInput | TaskWhereInput[]
    title?: StringFilter<"Task"> | string
    description?: StringFilter<"Task"> | string
    status?: StringFilter<"Task"> | string
    difficulty?: StringFilter<"Task"> | string
    scope_clarity_score?: FloatFilter<"Task"> | number
    error_classification?: StringNullableFilter<"Task"> | string | null
    reward_amount?: IntFilter<"Task"> | number
    reward_currency?: StringFilter<"Task"> | string
    acceptance_criteria?: JsonFilter<"Task">
    required_stack?: StringNullableListFilter<"Task">
    retry_count?: IntFilter<"Task"> | number
    stripe_payment_intent_id?: StringNullableFilter<"Task"> | string | null
    stripe_checkout_session_id?: StringNullableFilter<"Task"> | string | null
    expires_at?: DateTimeNullableFilter<"Task"> | Date | string | null
    github_pr_url?: StringNullableFilter<"Task"> | string | null
    reward_points?: IntFilter<"Task"> | number
    is_priority?: BoolFilter<"Task"> | boolean
    is_private?: BoolFilter<"Task"> | boolean
    referred_by_agent?: StringNullableFilter<"Task"> | string | null
    parent_task_id?: StringNullableFilter<"Task"> | string | null
    created_by_agent?: StringNullableFilter<"Task"> | string | null
    created_at?: DateTimeFilter<"Task"> | Date | string
    updated_at?: DateTimeFilter<"Task"> | Date | string
    scout_id?: StringNullableFilter<"Task"> | string | null
    builder_id?: StringNullableFilter<"Task"> | string | null
    scout_agent?: XOR<AgentProfileNullableScalarRelationFilter, AgentProfileWhereInput> | null
    builder_agent?: XOR<AgentProfileNullableScalarRelationFilter, AgentProfileWhereInput> | null
    claims?: ClaimListRelationFilter
    submissions?: SubmissionListRelationFilter
    affiliate_ledger?: AffiliateLedgerListRelationFilter
    bid_proposals?: BidProposalListRelationFilter
    arbitrations?: ArbitrationListRelationFilter
  }, "id">

  export type TaskOrderByWithAggregationInput = {
    id?: SortOrder
    title?: SortOrder
    description?: SortOrder
    status?: SortOrder
    difficulty?: SortOrder
    scope_clarity_score?: SortOrder
    error_classification?: SortOrderInput | SortOrder
    reward_amount?: SortOrder
    reward_currency?: SortOrder
    acceptance_criteria?: SortOrder
    required_stack?: SortOrder
    retry_count?: SortOrder
    stripe_payment_intent_id?: SortOrderInput | SortOrder
    stripe_checkout_session_id?: SortOrderInput | SortOrder
    expires_at?: SortOrderInput | SortOrder
    github_pr_url?: SortOrderInput | SortOrder
    reward_points?: SortOrder
    is_priority?: SortOrder
    is_private?: SortOrder
    referred_by_agent?: SortOrderInput | SortOrder
    parent_task_id?: SortOrderInput | SortOrder
    created_by_agent?: SortOrderInput | SortOrder
    created_at?: SortOrder
    updated_at?: SortOrder
    scout_id?: SortOrderInput | SortOrder
    builder_id?: SortOrderInput | SortOrder
    _count?: TaskCountOrderByAggregateInput
    _avg?: TaskAvgOrderByAggregateInput
    _max?: TaskMaxOrderByAggregateInput
    _min?: TaskMinOrderByAggregateInput
    _sum?: TaskSumOrderByAggregateInput
  }

  export type TaskScalarWhereWithAggregatesInput = {
    AND?: TaskScalarWhereWithAggregatesInput | TaskScalarWhereWithAggregatesInput[]
    OR?: TaskScalarWhereWithAggregatesInput[]
    NOT?: TaskScalarWhereWithAggregatesInput | TaskScalarWhereWithAggregatesInput[]
    id?: StringWithAggregatesFilter<"Task"> | string
    title?: StringWithAggregatesFilter<"Task"> | string
    description?: StringWithAggregatesFilter<"Task"> | string
    status?: StringWithAggregatesFilter<"Task"> | string
    difficulty?: StringWithAggregatesFilter<"Task"> | string
    scope_clarity_score?: FloatWithAggregatesFilter<"Task"> | number
    error_classification?: StringNullableWithAggregatesFilter<"Task"> | string | null
    reward_amount?: IntWithAggregatesFilter<"Task"> | number
    reward_currency?: StringWithAggregatesFilter<"Task"> | string
    acceptance_criteria?: JsonWithAggregatesFilter<"Task">
    required_stack?: StringNullableListFilter<"Task">
    retry_count?: IntWithAggregatesFilter<"Task"> | number
    stripe_payment_intent_id?: StringNullableWithAggregatesFilter<"Task"> | string | null
    stripe_checkout_session_id?: StringNullableWithAggregatesFilter<"Task"> | string | null
    expires_at?: DateTimeNullableWithAggregatesFilter<"Task"> | Date | string | null
    github_pr_url?: StringNullableWithAggregatesFilter<"Task"> | string | null
    reward_points?: IntWithAggregatesFilter<"Task"> | number
    is_priority?: BoolWithAggregatesFilter<"Task"> | boolean
    is_private?: BoolWithAggregatesFilter<"Task"> | boolean
    referred_by_agent?: StringNullableWithAggregatesFilter<"Task"> | string | null
    parent_task_id?: StringNullableWithAggregatesFilter<"Task"> | string | null
    created_by_agent?: StringNullableWithAggregatesFilter<"Task"> | string | null
    created_at?: DateTimeWithAggregatesFilter<"Task"> | Date | string
    updated_at?: DateTimeWithAggregatesFilter<"Task"> | Date | string
    scout_id?: StringNullableWithAggregatesFilter<"Task"> | string | null
    builder_id?: StringNullableWithAggregatesFilter<"Task"> | string | null
  }

  export type ClaimWhereInput = {
    AND?: ClaimWhereInput | ClaimWhereInput[]
    OR?: ClaimWhereInput[]
    NOT?: ClaimWhereInput | ClaimWhereInput[]
    id?: StringFilter<"Claim"> | string
    task_id?: StringFilter<"Claim"> | string
    agent_id?: StringFilter<"Claim"> | string
    developer_wallet?: StringFilter<"Claim"> | string
    status?: StringFilter<"Claim"> | string
    claim_token?: StringFilter<"Claim"> | string
    held_amount?: IntFilter<"Claim"> | number
    held_currency?: StringFilter<"Claim"> | string
    expires_at?: DateTimeFilter<"Claim"> | Date | string
    created_at?: DateTimeFilter<"Claim"> | Date | string
    updated_at?: DateTimeFilter<"Claim"> | Date | string
    task?: XOR<TaskScalarRelationFilter, TaskWhereInput>
    agent?: XOR<AgentProfileScalarRelationFilter, AgentProfileWhereInput>
    submissions?: SubmissionListRelationFilter
  }

  export type ClaimOrderByWithRelationInput = {
    id?: SortOrder
    task_id?: SortOrder
    agent_id?: SortOrder
    developer_wallet?: SortOrder
    status?: SortOrder
    claim_token?: SortOrder
    held_amount?: SortOrder
    held_currency?: SortOrder
    expires_at?: SortOrder
    created_at?: SortOrder
    updated_at?: SortOrder
    task?: TaskOrderByWithRelationInput
    agent?: AgentProfileOrderByWithRelationInput
    submissions?: SubmissionOrderByRelationAggregateInput
  }

  export type ClaimWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    claim_token?: string
    AND?: ClaimWhereInput | ClaimWhereInput[]
    OR?: ClaimWhereInput[]
    NOT?: ClaimWhereInput | ClaimWhereInput[]
    task_id?: StringFilter<"Claim"> | string
    agent_id?: StringFilter<"Claim"> | string
    developer_wallet?: StringFilter<"Claim"> | string
    status?: StringFilter<"Claim"> | string
    held_amount?: IntFilter<"Claim"> | number
    held_currency?: StringFilter<"Claim"> | string
    expires_at?: DateTimeFilter<"Claim"> | Date | string
    created_at?: DateTimeFilter<"Claim"> | Date | string
    updated_at?: DateTimeFilter<"Claim"> | Date | string
    task?: XOR<TaskScalarRelationFilter, TaskWhereInput>
    agent?: XOR<AgentProfileScalarRelationFilter, AgentProfileWhereInput>
    submissions?: SubmissionListRelationFilter
  }, "id" | "claim_token">

  export type ClaimOrderByWithAggregationInput = {
    id?: SortOrder
    task_id?: SortOrder
    agent_id?: SortOrder
    developer_wallet?: SortOrder
    status?: SortOrder
    claim_token?: SortOrder
    held_amount?: SortOrder
    held_currency?: SortOrder
    expires_at?: SortOrder
    created_at?: SortOrder
    updated_at?: SortOrder
    _count?: ClaimCountOrderByAggregateInput
    _avg?: ClaimAvgOrderByAggregateInput
    _max?: ClaimMaxOrderByAggregateInput
    _min?: ClaimMinOrderByAggregateInput
    _sum?: ClaimSumOrderByAggregateInput
  }

  export type ClaimScalarWhereWithAggregatesInput = {
    AND?: ClaimScalarWhereWithAggregatesInput | ClaimScalarWhereWithAggregatesInput[]
    OR?: ClaimScalarWhereWithAggregatesInput[]
    NOT?: ClaimScalarWhereWithAggregatesInput | ClaimScalarWhereWithAggregatesInput[]
    id?: StringWithAggregatesFilter<"Claim"> | string
    task_id?: StringWithAggregatesFilter<"Claim"> | string
    agent_id?: StringWithAggregatesFilter<"Claim"> | string
    developer_wallet?: StringWithAggregatesFilter<"Claim"> | string
    status?: StringWithAggregatesFilter<"Claim"> | string
    claim_token?: StringWithAggregatesFilter<"Claim"> | string
    held_amount?: IntWithAggregatesFilter<"Claim"> | number
    held_currency?: StringWithAggregatesFilter<"Claim"> | string
    expires_at?: DateTimeWithAggregatesFilter<"Claim"> | Date | string
    created_at?: DateTimeWithAggregatesFilter<"Claim"> | Date | string
    updated_at?: DateTimeWithAggregatesFilter<"Claim"> | Date | string
  }

  export type SubmissionWhereInput = {
    AND?: SubmissionWhereInput | SubmissionWhereInput[]
    OR?: SubmissionWhereInput[]
    NOT?: SubmissionWhereInput | SubmissionWhereInput[]
    id?: StringFilter<"Submission"> | string
    task_id?: StringFilter<"Submission"> | string
    claim_id?: StringFilter<"Submission"> | string
    status?: StringFilter<"Submission"> | string
    deliverables?: JsonFilter<"Submission">
    estimated_judge_complete_at?: DateTimeNullableFilter<"Submission"> | Date | string | null
    created_at?: DateTimeFilter<"Submission"> | Date | string
    updated_at?: DateTimeFilter<"Submission"> | Date | string
    task?: XOR<TaskScalarRelationFilter, TaskWhereInput>
    claim?: XOR<ClaimScalarRelationFilter, ClaimWhereInput>
    judge_results?: JudgeResultListRelationFilter
  }

  export type SubmissionOrderByWithRelationInput = {
    id?: SortOrder
    task_id?: SortOrder
    claim_id?: SortOrder
    status?: SortOrder
    deliverables?: SortOrder
    estimated_judge_complete_at?: SortOrderInput | SortOrder
    created_at?: SortOrder
    updated_at?: SortOrder
    task?: TaskOrderByWithRelationInput
    claim?: ClaimOrderByWithRelationInput
    judge_results?: JudgeResultOrderByRelationAggregateInput
  }

  export type SubmissionWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    AND?: SubmissionWhereInput | SubmissionWhereInput[]
    OR?: SubmissionWhereInput[]
    NOT?: SubmissionWhereInput | SubmissionWhereInput[]
    task_id?: StringFilter<"Submission"> | string
    claim_id?: StringFilter<"Submission"> | string
    status?: StringFilter<"Submission"> | string
    deliverables?: JsonFilter<"Submission">
    estimated_judge_complete_at?: DateTimeNullableFilter<"Submission"> | Date | string | null
    created_at?: DateTimeFilter<"Submission"> | Date | string
    updated_at?: DateTimeFilter<"Submission"> | Date | string
    task?: XOR<TaskScalarRelationFilter, TaskWhereInput>
    claim?: XOR<ClaimScalarRelationFilter, ClaimWhereInput>
    judge_results?: JudgeResultListRelationFilter
  }, "id">

  export type SubmissionOrderByWithAggregationInput = {
    id?: SortOrder
    task_id?: SortOrder
    claim_id?: SortOrder
    status?: SortOrder
    deliverables?: SortOrder
    estimated_judge_complete_at?: SortOrderInput | SortOrder
    created_at?: SortOrder
    updated_at?: SortOrder
    _count?: SubmissionCountOrderByAggregateInput
    _max?: SubmissionMaxOrderByAggregateInput
    _min?: SubmissionMinOrderByAggregateInput
  }

  export type SubmissionScalarWhereWithAggregatesInput = {
    AND?: SubmissionScalarWhereWithAggregatesInput | SubmissionScalarWhereWithAggregatesInput[]
    OR?: SubmissionScalarWhereWithAggregatesInput[]
    NOT?: SubmissionScalarWhereWithAggregatesInput | SubmissionScalarWhereWithAggregatesInput[]
    id?: StringWithAggregatesFilter<"Submission"> | string
    task_id?: StringWithAggregatesFilter<"Submission"> | string
    claim_id?: StringWithAggregatesFilter<"Submission"> | string
    status?: StringWithAggregatesFilter<"Submission"> | string
    deliverables?: JsonWithAggregatesFilter<"Submission">
    estimated_judge_complete_at?: DateTimeNullableWithAggregatesFilter<"Submission"> | Date | string | null
    created_at?: DateTimeWithAggregatesFilter<"Submission"> | Date | string
    updated_at?: DateTimeWithAggregatesFilter<"Submission"> | Date | string
  }

  export type JudgeResultWhereInput = {
    AND?: JudgeResultWhereInput | JudgeResultWhereInput[]
    OR?: JudgeResultWhereInput[]
    NOT?: JudgeResultWhereInput | JudgeResultWhereInput[]
    id?: StringFilter<"JudgeResult"> | string
    submission_id?: StringFilter<"JudgeResult"> | string
    overall_result?: StringFilter<"JudgeResult"> | string
    tests?: JsonFilter<"JudgeResult">
    artifacts?: JsonNullableFilter<"JudgeResult">
    error_classification?: StringNullableFilter<"JudgeResult"> | string | null
    error_signature?: StringNullableFilter<"JudgeResult"> | string | null
    retryable?: BoolFilter<"JudgeResult"> | boolean
    resource_usage?: JsonFilter<"JudgeResult">
    judge_completed_at?: DateTimeFilter<"JudgeResult"> | Date | string
    submission?: XOR<SubmissionScalarRelationFilter, SubmissionWhereInput>
  }

  export type JudgeResultOrderByWithRelationInput = {
    id?: SortOrder
    submission_id?: SortOrder
    overall_result?: SortOrder
    tests?: SortOrder
    artifacts?: SortOrderInput | SortOrder
    error_classification?: SortOrderInput | SortOrder
    error_signature?: SortOrderInput | SortOrder
    retryable?: SortOrder
    resource_usage?: SortOrder
    judge_completed_at?: SortOrder
    submission?: SubmissionOrderByWithRelationInput
  }

  export type JudgeResultWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    AND?: JudgeResultWhereInput | JudgeResultWhereInput[]
    OR?: JudgeResultWhereInput[]
    NOT?: JudgeResultWhereInput | JudgeResultWhereInput[]
    submission_id?: StringFilter<"JudgeResult"> | string
    overall_result?: StringFilter<"JudgeResult"> | string
    tests?: JsonFilter<"JudgeResult">
    artifacts?: JsonNullableFilter<"JudgeResult">
    error_classification?: StringNullableFilter<"JudgeResult"> | string | null
    error_signature?: StringNullableFilter<"JudgeResult"> | string | null
    retryable?: BoolFilter<"JudgeResult"> | boolean
    resource_usage?: JsonFilter<"JudgeResult">
    judge_completed_at?: DateTimeFilter<"JudgeResult"> | Date | string
    submission?: XOR<SubmissionScalarRelationFilter, SubmissionWhereInput>
  }, "id">

  export type JudgeResultOrderByWithAggregationInput = {
    id?: SortOrder
    submission_id?: SortOrder
    overall_result?: SortOrder
    tests?: SortOrder
    artifacts?: SortOrderInput | SortOrder
    error_classification?: SortOrderInput | SortOrder
    error_signature?: SortOrderInput | SortOrder
    retryable?: SortOrder
    resource_usage?: SortOrder
    judge_completed_at?: SortOrder
    _count?: JudgeResultCountOrderByAggregateInput
    _max?: JudgeResultMaxOrderByAggregateInput
    _min?: JudgeResultMinOrderByAggregateInput
  }

  export type JudgeResultScalarWhereWithAggregatesInput = {
    AND?: JudgeResultScalarWhereWithAggregatesInput | JudgeResultScalarWhereWithAggregatesInput[]
    OR?: JudgeResultScalarWhereWithAggregatesInput[]
    NOT?: JudgeResultScalarWhereWithAggregatesInput | JudgeResultScalarWhereWithAggregatesInput[]
    id?: StringWithAggregatesFilter<"JudgeResult"> | string
    submission_id?: StringWithAggregatesFilter<"JudgeResult"> | string
    overall_result?: StringWithAggregatesFilter<"JudgeResult"> | string
    tests?: JsonWithAggregatesFilter<"JudgeResult">
    artifacts?: JsonNullableWithAggregatesFilter<"JudgeResult">
    error_classification?: StringNullableWithAggregatesFilter<"JudgeResult"> | string | null
    error_signature?: StringNullableWithAggregatesFilter<"JudgeResult"> | string | null
    retryable?: BoolWithAggregatesFilter<"JudgeResult"> | boolean
    resource_usage?: JsonWithAggregatesFilter<"JudgeResult">
    judge_completed_at?: DateTimeWithAggregatesFilter<"JudgeResult"> | Date | string
  }

  export type AuditEventWhereInput = {
    AND?: AuditEventWhereInput | AuditEventWhereInput[]
    OR?: AuditEventWhereInput[]
    NOT?: AuditEventWhereInput | AuditEventWhereInput[]
    id?: StringFilter<"AuditEvent"> | string
    actorType?: StringFilter<"AuditEvent"> | string
    actorId?: StringNullableFilter<"AuditEvent"> | string | null
    action?: StringFilter<"AuditEvent"> | string
    entityType?: StringFilter<"AuditEvent"> | string
    entityId?: StringFilter<"AuditEvent"> | string
    beforeState?: JsonNullableFilter<"AuditEvent">
    afterState?: JsonNullableFilter<"AuditEvent">
    reason?: StringNullableFilter<"AuditEvent"> | string | null
    metadata?: JsonNullableFilter<"AuditEvent">
    createdAt?: DateTimeFilter<"AuditEvent"> | Date | string
  }

  export type AuditEventOrderByWithRelationInput = {
    id?: SortOrder
    actorType?: SortOrder
    actorId?: SortOrderInput | SortOrder
    action?: SortOrder
    entityType?: SortOrder
    entityId?: SortOrder
    beforeState?: SortOrderInput | SortOrder
    afterState?: SortOrderInput | SortOrder
    reason?: SortOrderInput | SortOrder
    metadata?: SortOrderInput | SortOrder
    createdAt?: SortOrder
  }

  export type AuditEventWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    AND?: AuditEventWhereInput | AuditEventWhereInput[]
    OR?: AuditEventWhereInput[]
    NOT?: AuditEventWhereInput | AuditEventWhereInput[]
    actorType?: StringFilter<"AuditEvent"> | string
    actorId?: StringNullableFilter<"AuditEvent"> | string | null
    action?: StringFilter<"AuditEvent"> | string
    entityType?: StringFilter<"AuditEvent"> | string
    entityId?: StringFilter<"AuditEvent"> | string
    beforeState?: JsonNullableFilter<"AuditEvent">
    afterState?: JsonNullableFilter<"AuditEvent">
    reason?: StringNullableFilter<"AuditEvent"> | string | null
    metadata?: JsonNullableFilter<"AuditEvent">
    createdAt?: DateTimeFilter<"AuditEvent"> | Date | string
  }, "id">

  export type AuditEventOrderByWithAggregationInput = {
    id?: SortOrder
    actorType?: SortOrder
    actorId?: SortOrderInput | SortOrder
    action?: SortOrder
    entityType?: SortOrder
    entityId?: SortOrder
    beforeState?: SortOrderInput | SortOrder
    afterState?: SortOrderInput | SortOrder
    reason?: SortOrderInput | SortOrder
    metadata?: SortOrderInput | SortOrder
    createdAt?: SortOrder
    _count?: AuditEventCountOrderByAggregateInput
    _max?: AuditEventMaxOrderByAggregateInput
    _min?: AuditEventMinOrderByAggregateInput
  }

  export type AuditEventScalarWhereWithAggregatesInput = {
    AND?: AuditEventScalarWhereWithAggregatesInput | AuditEventScalarWhereWithAggregatesInput[]
    OR?: AuditEventScalarWhereWithAggregatesInput[]
    NOT?: AuditEventScalarWhereWithAggregatesInput | AuditEventScalarWhereWithAggregatesInput[]
    id?: StringWithAggregatesFilter<"AuditEvent"> | string
    actorType?: StringWithAggregatesFilter<"AuditEvent"> | string
    actorId?: StringNullableWithAggregatesFilter<"AuditEvent"> | string | null
    action?: StringWithAggregatesFilter<"AuditEvent"> | string
    entityType?: StringWithAggregatesFilter<"AuditEvent"> | string
    entityId?: StringWithAggregatesFilter<"AuditEvent"> | string
    beforeState?: JsonNullableWithAggregatesFilter<"AuditEvent">
    afterState?: JsonNullableWithAggregatesFilter<"AuditEvent">
    reason?: StringNullableWithAggregatesFilter<"AuditEvent"> | string | null
    metadata?: JsonNullableWithAggregatesFilter<"AuditEvent">
    createdAt?: DateTimeWithAggregatesFilter<"AuditEvent"> | Date | string
  }

  export type LedgerEntryWhereInput = {
    AND?: LedgerEntryWhereInput | LedgerEntryWhereInput[]
    OR?: LedgerEntryWhereInput[]
    NOT?: LedgerEntryWhereInput | LedgerEntryWhereInput[]
    id?: StringFilter<"LedgerEntry"> | string
    task_id?: StringFilter<"LedgerEntry"> | string
    phase?: StringFilter<"LedgerEntry"> | string
    idempotency_key?: StringFilter<"LedgerEntry"> | string
    stripe_object_id?: StringNullableFilter<"LedgerEntry"> | string | null
    response_status?: StringFilter<"LedgerEntry"> | string
    http_status?: IntFilter<"LedgerEntry"> | number
    created_at?: DateTimeFilter<"LedgerEntry"> | Date | string
    updated_at?: DateTimeFilter<"LedgerEntry"> | Date | string
  }

  export type LedgerEntryOrderByWithRelationInput = {
    id?: SortOrder
    task_id?: SortOrder
    phase?: SortOrder
    idempotency_key?: SortOrder
    stripe_object_id?: SortOrderInput | SortOrder
    response_status?: SortOrder
    http_status?: SortOrder
    created_at?: SortOrder
    updated_at?: SortOrder
  }

  export type LedgerEntryWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    idempotency_key?: string
    AND?: LedgerEntryWhereInput | LedgerEntryWhereInput[]
    OR?: LedgerEntryWhereInput[]
    NOT?: LedgerEntryWhereInput | LedgerEntryWhereInput[]
    task_id?: StringFilter<"LedgerEntry"> | string
    phase?: StringFilter<"LedgerEntry"> | string
    stripe_object_id?: StringNullableFilter<"LedgerEntry"> | string | null
    response_status?: StringFilter<"LedgerEntry"> | string
    http_status?: IntFilter<"LedgerEntry"> | number
    created_at?: DateTimeFilter<"LedgerEntry"> | Date | string
    updated_at?: DateTimeFilter<"LedgerEntry"> | Date | string
  }, "id" | "idempotency_key">

  export type LedgerEntryOrderByWithAggregationInput = {
    id?: SortOrder
    task_id?: SortOrder
    phase?: SortOrder
    idempotency_key?: SortOrder
    stripe_object_id?: SortOrderInput | SortOrder
    response_status?: SortOrder
    http_status?: SortOrder
    created_at?: SortOrder
    updated_at?: SortOrder
    _count?: LedgerEntryCountOrderByAggregateInput
    _avg?: LedgerEntryAvgOrderByAggregateInput
    _max?: LedgerEntryMaxOrderByAggregateInput
    _min?: LedgerEntryMinOrderByAggregateInput
    _sum?: LedgerEntrySumOrderByAggregateInput
  }

  export type LedgerEntryScalarWhereWithAggregatesInput = {
    AND?: LedgerEntryScalarWhereWithAggregatesInput | LedgerEntryScalarWhereWithAggregatesInput[]
    OR?: LedgerEntryScalarWhereWithAggregatesInput[]
    NOT?: LedgerEntryScalarWhereWithAggregatesInput | LedgerEntryScalarWhereWithAggregatesInput[]
    id?: StringWithAggregatesFilter<"LedgerEntry"> | string
    task_id?: StringWithAggregatesFilter<"LedgerEntry"> | string
    phase?: StringWithAggregatesFilter<"LedgerEntry"> | string
    idempotency_key?: StringWithAggregatesFilter<"LedgerEntry"> | string
    stripe_object_id?: StringNullableWithAggregatesFilter<"LedgerEntry"> | string | null
    response_status?: StringWithAggregatesFilter<"LedgerEntry"> | string
    http_status?: IntWithAggregatesFilter<"LedgerEntry"> | number
    created_at?: DateTimeWithAggregatesFilter<"LedgerEntry"> | Date | string
    updated_at?: DateTimeWithAggregatesFilter<"LedgerEntry"> | Date | string
  }

  export type AgentProfileWhereInput = {
    AND?: AgentProfileWhereInput | AgentProfileWhereInput[]
    OR?: AgentProfileWhereInput[]
    NOT?: AgentProfileWhereInput | AgentProfileWhereInput[]
    id?: StringFilter<"AgentProfile"> | string
    agent_id?: StringFilter<"AgentProfile"> | string
    type?: StringFilter<"AgentProfile"> | string
    wallet_address?: StringNullableFilter<"AgentProfile"> | string | null
    status?: EnumAgentStatusFilter<"AgentProfile"> | $Enums.AgentStatus
    capabilities?: JsonNullableFilter<"AgentProfile">
    contact_endpoints?: JsonNullableFilter<"AgentProfile">
    discovery_source?: StringNullableFilter<"AgentProfile"> | string | null
    created_at?: DateTimeFilter<"AgentProfile"> | Date | string
    updated_at?: DateTimeFilter<"AgentProfile"> | Date | string
    crypto_address?: StringNullableFilter<"AgentProfile"> | string | null
    mcp_endpoint?: StringNullableFilter<"AgentProfile"> | string | null
    staked_amount?: IntFilter<"AgentProfile"> | number
    tier?: StringFilter<"AgentProfile"> | string
    tasks_as_scout?: TaskListRelationFilter
    tasks_as_builder?: TaskListRelationFilter
    claims?: ClaimListRelationFilter
    scout_reputation?: XOR<ScoutReputationNullableScalarRelationFilter, ScoutReputationWhereInput> | null
    affiliate_ledger?: AffiliateLedgerListRelationFilter
    bid_proposals?: BidProposalListRelationFilter
    arbitrations_as_builder?: ArbitrationListRelationFilter
    arbitrations_as_evaluator?: ArbitrationListRelationFilter
    arbitration_votes?: ArbitrationVoteListRelationFilter
    created_projects?: AgentProjectListRelationFilter
    slashing_events?: SlashingEventListRelationFilter
  }

  export type AgentProfileOrderByWithRelationInput = {
    id?: SortOrder
    agent_id?: SortOrder
    type?: SortOrder
    wallet_address?: SortOrderInput | SortOrder
    status?: SortOrder
    capabilities?: SortOrderInput | SortOrder
    contact_endpoints?: SortOrderInput | SortOrder
    discovery_source?: SortOrderInput | SortOrder
    created_at?: SortOrder
    updated_at?: SortOrder
    crypto_address?: SortOrderInput | SortOrder
    mcp_endpoint?: SortOrderInput | SortOrder
    staked_amount?: SortOrder
    tier?: SortOrder
    tasks_as_scout?: TaskOrderByRelationAggregateInput
    tasks_as_builder?: TaskOrderByRelationAggregateInput
    claims?: ClaimOrderByRelationAggregateInput
    scout_reputation?: ScoutReputationOrderByWithRelationInput
    affiliate_ledger?: AffiliateLedgerOrderByRelationAggregateInput
    bid_proposals?: BidProposalOrderByRelationAggregateInput
    arbitrations_as_builder?: ArbitrationOrderByRelationAggregateInput
    arbitrations_as_evaluator?: ArbitrationOrderByRelationAggregateInput
    arbitration_votes?: ArbitrationVoteOrderByRelationAggregateInput
    created_projects?: AgentProjectOrderByRelationAggregateInput
    slashing_events?: SlashingEventOrderByRelationAggregateInput
  }

  export type AgentProfileWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    agent_id?: string
    AND?: AgentProfileWhereInput | AgentProfileWhereInput[]
    OR?: AgentProfileWhereInput[]
    NOT?: AgentProfileWhereInput | AgentProfileWhereInput[]
    type?: StringFilter<"AgentProfile"> | string
    wallet_address?: StringNullableFilter<"AgentProfile"> | string | null
    status?: EnumAgentStatusFilter<"AgentProfile"> | $Enums.AgentStatus
    capabilities?: JsonNullableFilter<"AgentProfile">
    contact_endpoints?: JsonNullableFilter<"AgentProfile">
    discovery_source?: StringNullableFilter<"AgentProfile"> | string | null
    created_at?: DateTimeFilter<"AgentProfile"> | Date | string
    updated_at?: DateTimeFilter<"AgentProfile"> | Date | string
    crypto_address?: StringNullableFilter<"AgentProfile"> | string | null
    mcp_endpoint?: StringNullableFilter<"AgentProfile"> | string | null
    staked_amount?: IntFilter<"AgentProfile"> | number
    tier?: StringFilter<"AgentProfile"> | string
    tasks_as_scout?: TaskListRelationFilter
    tasks_as_builder?: TaskListRelationFilter
    claims?: ClaimListRelationFilter
    scout_reputation?: XOR<ScoutReputationNullableScalarRelationFilter, ScoutReputationWhereInput> | null
    affiliate_ledger?: AffiliateLedgerListRelationFilter
    bid_proposals?: BidProposalListRelationFilter
    arbitrations_as_builder?: ArbitrationListRelationFilter
    arbitrations_as_evaluator?: ArbitrationListRelationFilter
    arbitration_votes?: ArbitrationVoteListRelationFilter
    created_projects?: AgentProjectListRelationFilter
    slashing_events?: SlashingEventListRelationFilter
  }, "id" | "agent_id">

  export type AgentProfileOrderByWithAggregationInput = {
    id?: SortOrder
    agent_id?: SortOrder
    type?: SortOrder
    wallet_address?: SortOrderInput | SortOrder
    status?: SortOrder
    capabilities?: SortOrderInput | SortOrder
    contact_endpoints?: SortOrderInput | SortOrder
    discovery_source?: SortOrderInput | SortOrder
    created_at?: SortOrder
    updated_at?: SortOrder
    crypto_address?: SortOrderInput | SortOrder
    mcp_endpoint?: SortOrderInput | SortOrder
    staked_amount?: SortOrder
    tier?: SortOrder
    _count?: AgentProfileCountOrderByAggregateInput
    _avg?: AgentProfileAvgOrderByAggregateInput
    _max?: AgentProfileMaxOrderByAggregateInput
    _min?: AgentProfileMinOrderByAggregateInput
    _sum?: AgentProfileSumOrderByAggregateInput
  }

  export type AgentProfileScalarWhereWithAggregatesInput = {
    AND?: AgentProfileScalarWhereWithAggregatesInput | AgentProfileScalarWhereWithAggregatesInput[]
    OR?: AgentProfileScalarWhereWithAggregatesInput[]
    NOT?: AgentProfileScalarWhereWithAggregatesInput | AgentProfileScalarWhereWithAggregatesInput[]
    id?: StringWithAggregatesFilter<"AgentProfile"> | string
    agent_id?: StringWithAggregatesFilter<"AgentProfile"> | string
    type?: StringWithAggregatesFilter<"AgentProfile"> | string
    wallet_address?: StringNullableWithAggregatesFilter<"AgentProfile"> | string | null
    status?: EnumAgentStatusWithAggregatesFilter<"AgentProfile"> | $Enums.AgentStatus
    capabilities?: JsonNullableWithAggregatesFilter<"AgentProfile">
    contact_endpoints?: JsonNullableWithAggregatesFilter<"AgentProfile">
    discovery_source?: StringNullableWithAggregatesFilter<"AgentProfile"> | string | null
    created_at?: DateTimeWithAggregatesFilter<"AgentProfile"> | Date | string
    updated_at?: DateTimeWithAggregatesFilter<"AgentProfile"> | Date | string
    crypto_address?: StringNullableWithAggregatesFilter<"AgentProfile"> | string | null
    mcp_endpoint?: StringNullableWithAggregatesFilter<"AgentProfile"> | string | null
    staked_amount?: IntWithAggregatesFilter<"AgentProfile"> | number
    tier?: StringWithAggregatesFilter<"AgentProfile"> | string
  }

  export type AffiliateLedgerWhereInput = {
    AND?: AffiliateLedgerWhereInput | AffiliateLedgerWhereInput[]
    OR?: AffiliateLedgerWhereInput[]
    NOT?: AffiliateLedgerWhereInput | AffiliateLedgerWhereInput[]
    id?: StringFilter<"AffiliateLedger"> | string
    scout_id?: StringFilter<"AffiliateLedger"> | string
    task_id?: StringFilter<"AffiliateLedger"> | string
    amount?: IntFilter<"AffiliateLedger"> | number
    currency?: StringFilter<"AffiliateLedger"> | string
    status?: StringFilter<"AffiliateLedger"> | string
    created_at?: DateTimeFilter<"AffiliateLedger"> | Date | string
    updated_at?: DateTimeFilter<"AffiliateLedger"> | Date | string
    scout_agent?: XOR<AgentProfileScalarRelationFilter, AgentProfileWhereInput>
    task?: XOR<TaskScalarRelationFilter, TaskWhereInput>
  }

  export type AffiliateLedgerOrderByWithRelationInput = {
    id?: SortOrder
    scout_id?: SortOrder
    task_id?: SortOrder
    amount?: SortOrder
    currency?: SortOrder
    status?: SortOrder
    created_at?: SortOrder
    updated_at?: SortOrder
    scout_agent?: AgentProfileOrderByWithRelationInput
    task?: TaskOrderByWithRelationInput
  }

  export type AffiliateLedgerWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    AND?: AffiliateLedgerWhereInput | AffiliateLedgerWhereInput[]
    OR?: AffiliateLedgerWhereInput[]
    NOT?: AffiliateLedgerWhereInput | AffiliateLedgerWhereInput[]
    scout_id?: StringFilter<"AffiliateLedger"> | string
    task_id?: StringFilter<"AffiliateLedger"> | string
    amount?: IntFilter<"AffiliateLedger"> | number
    currency?: StringFilter<"AffiliateLedger"> | string
    status?: StringFilter<"AffiliateLedger"> | string
    created_at?: DateTimeFilter<"AffiliateLedger"> | Date | string
    updated_at?: DateTimeFilter<"AffiliateLedger"> | Date | string
    scout_agent?: XOR<AgentProfileScalarRelationFilter, AgentProfileWhereInput>
    task?: XOR<TaskScalarRelationFilter, TaskWhereInput>
  }, "id">

  export type AffiliateLedgerOrderByWithAggregationInput = {
    id?: SortOrder
    scout_id?: SortOrder
    task_id?: SortOrder
    amount?: SortOrder
    currency?: SortOrder
    status?: SortOrder
    created_at?: SortOrder
    updated_at?: SortOrder
    _count?: AffiliateLedgerCountOrderByAggregateInput
    _avg?: AffiliateLedgerAvgOrderByAggregateInput
    _max?: AffiliateLedgerMaxOrderByAggregateInput
    _min?: AffiliateLedgerMinOrderByAggregateInput
    _sum?: AffiliateLedgerSumOrderByAggregateInput
  }

  export type AffiliateLedgerScalarWhereWithAggregatesInput = {
    AND?: AffiliateLedgerScalarWhereWithAggregatesInput | AffiliateLedgerScalarWhereWithAggregatesInput[]
    OR?: AffiliateLedgerScalarWhereWithAggregatesInput[]
    NOT?: AffiliateLedgerScalarWhereWithAggregatesInput | AffiliateLedgerScalarWhereWithAggregatesInput[]
    id?: StringWithAggregatesFilter<"AffiliateLedger"> | string
    scout_id?: StringWithAggregatesFilter<"AffiliateLedger"> | string
    task_id?: StringWithAggregatesFilter<"AffiliateLedger"> | string
    amount?: IntWithAggregatesFilter<"AffiliateLedger"> | number
    currency?: StringWithAggregatesFilter<"AffiliateLedger"> | string
    status?: StringWithAggregatesFilter<"AffiliateLedger"> | string
    created_at?: DateTimeWithAggregatesFilter<"AffiliateLedger"> | Date | string
    updated_at?: DateTimeWithAggregatesFilter<"AffiliateLedger"> | Date | string
  }

  export type ScoutReputationWhereInput = {
    AND?: ScoutReputationWhereInput | ScoutReputationWhereInput[]
    OR?: ScoutReputationWhereInput[]
    NOT?: ScoutReputationWhereInput | ScoutReputationWhereInput[]
    id?: StringFilter<"ScoutReputation"> | string
    scout_id?: StringFilter<"ScoutReputation"> | string
    successful_conversions?: IntFilter<"ScoutReputation"> | number
    spam_score?: FloatFilter<"ScoutReputation"> | number
    chargeback_count?: IntFilter<"ScoutReputation"> | number
    created_at?: DateTimeFilter<"ScoutReputation"> | Date | string
    updated_at?: DateTimeFilter<"ScoutReputation"> | Date | string
    scout_agent?: XOR<AgentProfileScalarRelationFilter, AgentProfileWhereInput>
  }

  export type ScoutReputationOrderByWithRelationInput = {
    id?: SortOrder
    scout_id?: SortOrder
    successful_conversions?: SortOrder
    spam_score?: SortOrder
    chargeback_count?: SortOrder
    created_at?: SortOrder
    updated_at?: SortOrder
    scout_agent?: AgentProfileOrderByWithRelationInput
  }

  export type ScoutReputationWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    scout_id?: string
    AND?: ScoutReputationWhereInput | ScoutReputationWhereInput[]
    OR?: ScoutReputationWhereInput[]
    NOT?: ScoutReputationWhereInput | ScoutReputationWhereInput[]
    successful_conversions?: IntFilter<"ScoutReputation"> | number
    spam_score?: FloatFilter<"ScoutReputation"> | number
    chargeback_count?: IntFilter<"ScoutReputation"> | number
    created_at?: DateTimeFilter<"ScoutReputation"> | Date | string
    updated_at?: DateTimeFilter<"ScoutReputation"> | Date | string
    scout_agent?: XOR<AgentProfileScalarRelationFilter, AgentProfileWhereInput>
  }, "id" | "scout_id">

  export type ScoutReputationOrderByWithAggregationInput = {
    id?: SortOrder
    scout_id?: SortOrder
    successful_conversions?: SortOrder
    spam_score?: SortOrder
    chargeback_count?: SortOrder
    created_at?: SortOrder
    updated_at?: SortOrder
    _count?: ScoutReputationCountOrderByAggregateInput
    _avg?: ScoutReputationAvgOrderByAggregateInput
    _max?: ScoutReputationMaxOrderByAggregateInput
    _min?: ScoutReputationMinOrderByAggregateInput
    _sum?: ScoutReputationSumOrderByAggregateInput
  }

  export type ScoutReputationScalarWhereWithAggregatesInput = {
    AND?: ScoutReputationScalarWhereWithAggregatesInput | ScoutReputationScalarWhereWithAggregatesInput[]
    OR?: ScoutReputationScalarWhereWithAggregatesInput[]
    NOT?: ScoutReputationScalarWhereWithAggregatesInput | ScoutReputationScalarWhereWithAggregatesInput[]
    id?: StringWithAggregatesFilter<"ScoutReputation"> | string
    scout_id?: StringWithAggregatesFilter<"ScoutReputation"> | string
    successful_conversions?: IntWithAggregatesFilter<"ScoutReputation"> | number
    spam_score?: FloatWithAggregatesFilter<"ScoutReputation"> | number
    chargeback_count?: IntWithAggregatesFilter<"ScoutReputation"> | number
    created_at?: DateTimeWithAggregatesFilter<"ScoutReputation"> | Date | string
    updated_at?: DateTimeWithAggregatesFilter<"ScoutReputation"> | Date | string
  }

  export type BidProposalWhereInput = {
    AND?: BidProposalWhereInput | BidProposalWhereInput[]
    OR?: BidProposalWhereInput[]
    NOT?: BidProposalWhereInput | BidProposalWhereInput[]
    id?: StringFilter<"BidProposal"> | string
    task_id?: StringFilter<"BidProposal"> | string
    agent_id?: StringFilter<"BidProposal"> | string
    proposed_reward?: IntFilter<"BidProposal"> | number
    estimated_duration_hours?: FloatFilter<"BidProposal"> | number
    quality_guarantee?: StringNullableFilter<"BidProposal"> | string | null
    status?: StringFilter<"BidProposal"> | string
    counter_offer_amount?: IntNullableFilter<"BidProposal"> | number | null
    broker_agent_id?: StringNullableFilter<"BidProposal"> | string | null
    broker_fee_percentage?: FloatNullableFilter<"BidProposal"> | number | null
    created_at?: DateTimeFilter<"BidProposal"> | Date | string
    updated_at?: DateTimeFilter<"BidProposal"> | Date | string
    task?: XOR<TaskScalarRelationFilter, TaskWhereInput>
    agent?: XOR<AgentProfileScalarRelationFilter, AgentProfileWhereInput>
  }

  export type BidProposalOrderByWithRelationInput = {
    id?: SortOrder
    task_id?: SortOrder
    agent_id?: SortOrder
    proposed_reward?: SortOrder
    estimated_duration_hours?: SortOrder
    quality_guarantee?: SortOrderInput | SortOrder
    status?: SortOrder
    counter_offer_amount?: SortOrderInput | SortOrder
    broker_agent_id?: SortOrderInput | SortOrder
    broker_fee_percentage?: SortOrderInput | SortOrder
    created_at?: SortOrder
    updated_at?: SortOrder
    task?: TaskOrderByWithRelationInput
    agent?: AgentProfileOrderByWithRelationInput
  }

  export type BidProposalWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    task_id_agent_id?: BidProposalTask_idAgent_idCompoundUniqueInput
    AND?: BidProposalWhereInput | BidProposalWhereInput[]
    OR?: BidProposalWhereInput[]
    NOT?: BidProposalWhereInput | BidProposalWhereInput[]
    task_id?: StringFilter<"BidProposal"> | string
    agent_id?: StringFilter<"BidProposal"> | string
    proposed_reward?: IntFilter<"BidProposal"> | number
    estimated_duration_hours?: FloatFilter<"BidProposal"> | number
    quality_guarantee?: StringNullableFilter<"BidProposal"> | string | null
    status?: StringFilter<"BidProposal"> | string
    counter_offer_amount?: IntNullableFilter<"BidProposal"> | number | null
    broker_agent_id?: StringNullableFilter<"BidProposal"> | string | null
    broker_fee_percentage?: FloatNullableFilter<"BidProposal"> | number | null
    created_at?: DateTimeFilter<"BidProposal"> | Date | string
    updated_at?: DateTimeFilter<"BidProposal"> | Date | string
    task?: XOR<TaskScalarRelationFilter, TaskWhereInput>
    agent?: XOR<AgentProfileScalarRelationFilter, AgentProfileWhereInput>
  }, "id" | "task_id_agent_id">

  export type BidProposalOrderByWithAggregationInput = {
    id?: SortOrder
    task_id?: SortOrder
    agent_id?: SortOrder
    proposed_reward?: SortOrder
    estimated_duration_hours?: SortOrder
    quality_guarantee?: SortOrderInput | SortOrder
    status?: SortOrder
    counter_offer_amount?: SortOrderInput | SortOrder
    broker_agent_id?: SortOrderInput | SortOrder
    broker_fee_percentage?: SortOrderInput | SortOrder
    created_at?: SortOrder
    updated_at?: SortOrder
    _count?: BidProposalCountOrderByAggregateInput
    _avg?: BidProposalAvgOrderByAggregateInput
    _max?: BidProposalMaxOrderByAggregateInput
    _min?: BidProposalMinOrderByAggregateInput
    _sum?: BidProposalSumOrderByAggregateInput
  }

  export type BidProposalScalarWhereWithAggregatesInput = {
    AND?: BidProposalScalarWhereWithAggregatesInput | BidProposalScalarWhereWithAggregatesInput[]
    OR?: BidProposalScalarWhereWithAggregatesInput[]
    NOT?: BidProposalScalarWhereWithAggregatesInput | BidProposalScalarWhereWithAggregatesInput[]
    id?: StringWithAggregatesFilter<"BidProposal"> | string
    task_id?: StringWithAggregatesFilter<"BidProposal"> | string
    agent_id?: StringWithAggregatesFilter<"BidProposal"> | string
    proposed_reward?: IntWithAggregatesFilter<"BidProposal"> | number
    estimated_duration_hours?: FloatWithAggregatesFilter<"BidProposal"> | number
    quality_guarantee?: StringNullableWithAggregatesFilter<"BidProposal"> | string | null
    status?: StringWithAggregatesFilter<"BidProposal"> | string
    counter_offer_amount?: IntNullableWithAggregatesFilter<"BidProposal"> | number | null
    broker_agent_id?: StringNullableWithAggregatesFilter<"BidProposal"> | string | null
    broker_fee_percentage?: FloatNullableWithAggregatesFilter<"BidProposal"> | number | null
    created_at?: DateTimeWithAggregatesFilter<"BidProposal"> | Date | string
    updated_at?: DateTimeWithAggregatesFilter<"BidProposal"> | Date | string
  }

  export type AgentWebhookWhereInput = {
    AND?: AgentWebhookWhereInput | AgentWebhookWhereInput[]
    OR?: AgentWebhookWhereInput[]
    NOT?: AgentWebhookWhereInput | AgentWebhookWhereInput[]
    id?: StringFilter<"AgentWebhook"> | string
    task_id?: StringFilter<"AgentWebhook"> | string
    agent_id?: StringFilter<"AgentWebhook"> | string
    webhook_url?: StringFilter<"AgentWebhook"> | string
    events?: StringNullableListFilter<"AgentWebhook">
    created_at?: DateTimeFilter<"AgentWebhook"> | Date | string
    updated_at?: DateTimeFilter<"AgentWebhook"> | Date | string
  }

  export type AgentWebhookOrderByWithRelationInput = {
    id?: SortOrder
    task_id?: SortOrder
    agent_id?: SortOrder
    webhook_url?: SortOrder
    events?: SortOrder
    created_at?: SortOrder
    updated_at?: SortOrder
  }

  export type AgentWebhookWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    task_id_agent_id?: AgentWebhookTask_idAgent_idCompoundUniqueInput
    AND?: AgentWebhookWhereInput | AgentWebhookWhereInput[]
    OR?: AgentWebhookWhereInput[]
    NOT?: AgentWebhookWhereInput | AgentWebhookWhereInput[]
    task_id?: StringFilter<"AgentWebhook"> | string
    agent_id?: StringFilter<"AgentWebhook"> | string
    webhook_url?: StringFilter<"AgentWebhook"> | string
    events?: StringNullableListFilter<"AgentWebhook">
    created_at?: DateTimeFilter<"AgentWebhook"> | Date | string
    updated_at?: DateTimeFilter<"AgentWebhook"> | Date | string
  }, "id" | "task_id_agent_id">

  export type AgentWebhookOrderByWithAggregationInput = {
    id?: SortOrder
    task_id?: SortOrder
    agent_id?: SortOrder
    webhook_url?: SortOrder
    events?: SortOrder
    created_at?: SortOrder
    updated_at?: SortOrder
    _count?: AgentWebhookCountOrderByAggregateInput
    _max?: AgentWebhookMaxOrderByAggregateInput
    _min?: AgentWebhookMinOrderByAggregateInput
  }

  export type AgentWebhookScalarWhereWithAggregatesInput = {
    AND?: AgentWebhookScalarWhereWithAggregatesInput | AgentWebhookScalarWhereWithAggregatesInput[]
    OR?: AgentWebhookScalarWhereWithAggregatesInput[]
    NOT?: AgentWebhookScalarWhereWithAggregatesInput | AgentWebhookScalarWhereWithAggregatesInput[]
    id?: StringWithAggregatesFilter<"AgentWebhook"> | string
    task_id?: StringWithAggregatesFilter<"AgentWebhook"> | string
    agent_id?: StringWithAggregatesFilter<"AgentWebhook"> | string
    webhook_url?: StringWithAggregatesFilter<"AgentWebhook"> | string
    events?: StringNullableListFilter<"AgentWebhook">
    created_at?: DateTimeWithAggregatesFilter<"AgentWebhook"> | Date | string
    updated_at?: DateTimeWithAggregatesFilter<"AgentWebhook"> | Date | string
  }

  export type ArbitrationWhereInput = {
    AND?: ArbitrationWhereInput | ArbitrationWhereInput[]
    OR?: ArbitrationWhereInput[]
    NOT?: ArbitrationWhereInput | ArbitrationWhereInput[]
    id?: StringFilter<"Arbitration"> | string
    task_id?: StringFilter<"Arbitration"> | string
    builder_id?: StringFilter<"Arbitration"> | string
    evaluator_id?: StringFilter<"Arbitration"> | string
    status?: StringFilter<"Arbitration"> | string
    builder_evidence?: StringNullableFilter<"Arbitration"> | string | null
    evaluator_reason?: StringNullableFilter<"Arbitration"> | string | null
    winning_party?: StringNullableFilter<"Arbitration"> | string | null
    created_at?: DateTimeFilter<"Arbitration"> | Date | string
    updated_at?: DateTimeFilter<"Arbitration"> | Date | string
    task?: XOR<TaskScalarRelationFilter, TaskWhereInput>
    builder?: XOR<AgentProfileScalarRelationFilter, AgentProfileWhereInput>
    evaluator?: XOR<AgentProfileScalarRelationFilter, AgentProfileWhereInput>
    votes?: ArbitrationVoteListRelationFilter
    slashing_events?: SlashingEventListRelationFilter
  }

  export type ArbitrationOrderByWithRelationInput = {
    id?: SortOrder
    task_id?: SortOrder
    builder_id?: SortOrder
    evaluator_id?: SortOrder
    status?: SortOrder
    builder_evidence?: SortOrderInput | SortOrder
    evaluator_reason?: SortOrderInput | SortOrder
    winning_party?: SortOrderInput | SortOrder
    created_at?: SortOrder
    updated_at?: SortOrder
    task?: TaskOrderByWithRelationInput
    builder?: AgentProfileOrderByWithRelationInput
    evaluator?: AgentProfileOrderByWithRelationInput
    votes?: ArbitrationVoteOrderByRelationAggregateInput
    slashing_events?: SlashingEventOrderByRelationAggregateInput
  }

  export type ArbitrationWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    AND?: ArbitrationWhereInput | ArbitrationWhereInput[]
    OR?: ArbitrationWhereInput[]
    NOT?: ArbitrationWhereInput | ArbitrationWhereInput[]
    task_id?: StringFilter<"Arbitration"> | string
    builder_id?: StringFilter<"Arbitration"> | string
    evaluator_id?: StringFilter<"Arbitration"> | string
    status?: StringFilter<"Arbitration"> | string
    builder_evidence?: StringNullableFilter<"Arbitration"> | string | null
    evaluator_reason?: StringNullableFilter<"Arbitration"> | string | null
    winning_party?: StringNullableFilter<"Arbitration"> | string | null
    created_at?: DateTimeFilter<"Arbitration"> | Date | string
    updated_at?: DateTimeFilter<"Arbitration"> | Date | string
    task?: XOR<TaskScalarRelationFilter, TaskWhereInput>
    builder?: XOR<AgentProfileScalarRelationFilter, AgentProfileWhereInput>
    evaluator?: XOR<AgentProfileScalarRelationFilter, AgentProfileWhereInput>
    votes?: ArbitrationVoteListRelationFilter
    slashing_events?: SlashingEventListRelationFilter
  }, "id">

  export type ArbitrationOrderByWithAggregationInput = {
    id?: SortOrder
    task_id?: SortOrder
    builder_id?: SortOrder
    evaluator_id?: SortOrder
    status?: SortOrder
    builder_evidence?: SortOrderInput | SortOrder
    evaluator_reason?: SortOrderInput | SortOrder
    winning_party?: SortOrderInput | SortOrder
    created_at?: SortOrder
    updated_at?: SortOrder
    _count?: ArbitrationCountOrderByAggregateInput
    _max?: ArbitrationMaxOrderByAggregateInput
    _min?: ArbitrationMinOrderByAggregateInput
  }

  export type ArbitrationScalarWhereWithAggregatesInput = {
    AND?: ArbitrationScalarWhereWithAggregatesInput | ArbitrationScalarWhereWithAggregatesInput[]
    OR?: ArbitrationScalarWhereWithAggregatesInput[]
    NOT?: ArbitrationScalarWhereWithAggregatesInput | ArbitrationScalarWhereWithAggregatesInput[]
    id?: StringWithAggregatesFilter<"Arbitration"> | string
    task_id?: StringWithAggregatesFilter<"Arbitration"> | string
    builder_id?: StringWithAggregatesFilter<"Arbitration"> | string
    evaluator_id?: StringWithAggregatesFilter<"Arbitration"> | string
    status?: StringWithAggregatesFilter<"Arbitration"> | string
    builder_evidence?: StringNullableWithAggregatesFilter<"Arbitration"> | string | null
    evaluator_reason?: StringNullableWithAggregatesFilter<"Arbitration"> | string | null
    winning_party?: StringNullableWithAggregatesFilter<"Arbitration"> | string | null
    created_at?: DateTimeWithAggregatesFilter<"Arbitration"> | Date | string
    updated_at?: DateTimeWithAggregatesFilter<"Arbitration"> | Date | string
  }

  export type ArbitrationVoteWhereInput = {
    AND?: ArbitrationVoteWhereInput | ArbitrationVoteWhereInput[]
    OR?: ArbitrationVoteWhereInput[]
    NOT?: ArbitrationVoteWhereInput | ArbitrationVoteWhereInput[]
    id?: StringFilter<"ArbitrationVote"> | string
    arbitration_id?: StringFilter<"ArbitrationVote"> | string
    judge_id?: StringFilter<"ArbitrationVote"> | string
    vote_for?: StringFilter<"ArbitrationVote"> | string
    reasoning?: StringNullableFilter<"ArbitrationVote"> | string | null
    created_at?: DateTimeFilter<"ArbitrationVote"> | Date | string
    arbitration?: XOR<ArbitrationScalarRelationFilter, ArbitrationWhereInput>
    judge?: XOR<AgentProfileScalarRelationFilter, AgentProfileWhereInput>
  }

  export type ArbitrationVoteOrderByWithRelationInput = {
    id?: SortOrder
    arbitration_id?: SortOrder
    judge_id?: SortOrder
    vote_for?: SortOrder
    reasoning?: SortOrderInput | SortOrder
    created_at?: SortOrder
    arbitration?: ArbitrationOrderByWithRelationInput
    judge?: AgentProfileOrderByWithRelationInput
  }

  export type ArbitrationVoteWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    arbitration_id_judge_id?: ArbitrationVoteArbitration_idJudge_idCompoundUniqueInput
    AND?: ArbitrationVoteWhereInput | ArbitrationVoteWhereInput[]
    OR?: ArbitrationVoteWhereInput[]
    NOT?: ArbitrationVoteWhereInput | ArbitrationVoteWhereInput[]
    arbitration_id?: StringFilter<"ArbitrationVote"> | string
    judge_id?: StringFilter<"ArbitrationVote"> | string
    vote_for?: StringFilter<"ArbitrationVote"> | string
    reasoning?: StringNullableFilter<"ArbitrationVote"> | string | null
    created_at?: DateTimeFilter<"ArbitrationVote"> | Date | string
    arbitration?: XOR<ArbitrationScalarRelationFilter, ArbitrationWhereInput>
    judge?: XOR<AgentProfileScalarRelationFilter, AgentProfileWhereInput>
  }, "id" | "arbitration_id_judge_id">

  export type ArbitrationVoteOrderByWithAggregationInput = {
    id?: SortOrder
    arbitration_id?: SortOrder
    judge_id?: SortOrder
    vote_for?: SortOrder
    reasoning?: SortOrderInput | SortOrder
    created_at?: SortOrder
    _count?: ArbitrationVoteCountOrderByAggregateInput
    _max?: ArbitrationVoteMaxOrderByAggregateInput
    _min?: ArbitrationVoteMinOrderByAggregateInput
  }

  export type ArbitrationVoteScalarWhereWithAggregatesInput = {
    AND?: ArbitrationVoteScalarWhereWithAggregatesInput | ArbitrationVoteScalarWhereWithAggregatesInput[]
    OR?: ArbitrationVoteScalarWhereWithAggregatesInput[]
    NOT?: ArbitrationVoteScalarWhereWithAggregatesInput | ArbitrationVoteScalarWhereWithAggregatesInput[]
    id?: StringWithAggregatesFilter<"ArbitrationVote"> | string
    arbitration_id?: StringWithAggregatesFilter<"ArbitrationVote"> | string
    judge_id?: StringWithAggregatesFilter<"ArbitrationVote"> | string
    vote_for?: StringWithAggregatesFilter<"ArbitrationVote"> | string
    reasoning?: StringNullableWithAggregatesFilter<"ArbitrationVote"> | string | null
    created_at?: DateTimeWithAggregatesFilter<"ArbitrationVote"> | Date | string
  }

  export type AgentProjectWhereInput = {
    AND?: AgentProjectWhereInput | AgentProjectWhereInput[]
    OR?: AgentProjectWhereInput[]
    NOT?: AgentProjectWhereInput | AgentProjectWhereInput[]
    id?: StringFilter<"AgentProject"> | string
    creator_agent_id?: StringFilter<"AgentProject"> | string
    name?: StringFilter<"AgentProject"> | string
    ticker?: StringFilter<"AgentProject"> | string
    description?: StringFilter<"AgentProject"> | string
    whitepaper_url?: StringNullableFilter<"AgentProject"> | string | null
    target_raise?: IntFilter<"AgentProject"> | number
    total_supply?: IntFilter<"AgentProject"> | number
    status?: StringFilter<"AgentProject"> | string
    created_at?: DateTimeFilter<"AgentProject"> | Date | string
    updated_at?: DateTimeFilter<"AgentProject"> | Date | string
    creator?: XOR<AgentProfileScalarRelationFilter, AgentProfileWhereInput>
    token_sales?: TokenSaleListRelationFilter
  }

  export type AgentProjectOrderByWithRelationInput = {
    id?: SortOrder
    creator_agent_id?: SortOrder
    name?: SortOrder
    ticker?: SortOrder
    description?: SortOrder
    whitepaper_url?: SortOrderInput | SortOrder
    target_raise?: SortOrder
    total_supply?: SortOrder
    status?: SortOrder
    created_at?: SortOrder
    updated_at?: SortOrder
    creator?: AgentProfileOrderByWithRelationInput
    token_sales?: TokenSaleOrderByRelationAggregateInput
  }

  export type AgentProjectWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    ticker?: string
    AND?: AgentProjectWhereInput | AgentProjectWhereInput[]
    OR?: AgentProjectWhereInput[]
    NOT?: AgentProjectWhereInput | AgentProjectWhereInput[]
    creator_agent_id?: StringFilter<"AgentProject"> | string
    name?: StringFilter<"AgentProject"> | string
    description?: StringFilter<"AgentProject"> | string
    whitepaper_url?: StringNullableFilter<"AgentProject"> | string | null
    target_raise?: IntFilter<"AgentProject"> | number
    total_supply?: IntFilter<"AgentProject"> | number
    status?: StringFilter<"AgentProject"> | string
    created_at?: DateTimeFilter<"AgentProject"> | Date | string
    updated_at?: DateTimeFilter<"AgentProject"> | Date | string
    creator?: XOR<AgentProfileScalarRelationFilter, AgentProfileWhereInput>
    token_sales?: TokenSaleListRelationFilter
  }, "id" | "ticker">

  export type AgentProjectOrderByWithAggregationInput = {
    id?: SortOrder
    creator_agent_id?: SortOrder
    name?: SortOrder
    ticker?: SortOrder
    description?: SortOrder
    whitepaper_url?: SortOrderInput | SortOrder
    target_raise?: SortOrder
    total_supply?: SortOrder
    status?: SortOrder
    created_at?: SortOrder
    updated_at?: SortOrder
    _count?: AgentProjectCountOrderByAggregateInput
    _avg?: AgentProjectAvgOrderByAggregateInput
    _max?: AgentProjectMaxOrderByAggregateInput
    _min?: AgentProjectMinOrderByAggregateInput
    _sum?: AgentProjectSumOrderByAggregateInput
  }

  export type AgentProjectScalarWhereWithAggregatesInput = {
    AND?: AgentProjectScalarWhereWithAggregatesInput | AgentProjectScalarWhereWithAggregatesInput[]
    OR?: AgentProjectScalarWhereWithAggregatesInput[]
    NOT?: AgentProjectScalarWhereWithAggregatesInput | AgentProjectScalarWhereWithAggregatesInput[]
    id?: StringWithAggregatesFilter<"AgentProject"> | string
    creator_agent_id?: StringWithAggregatesFilter<"AgentProject"> | string
    name?: StringWithAggregatesFilter<"AgentProject"> | string
    ticker?: StringWithAggregatesFilter<"AgentProject"> | string
    description?: StringWithAggregatesFilter<"AgentProject"> | string
    whitepaper_url?: StringNullableWithAggregatesFilter<"AgentProject"> | string | null
    target_raise?: IntWithAggregatesFilter<"AgentProject"> | number
    total_supply?: IntWithAggregatesFilter<"AgentProject"> | number
    status?: StringWithAggregatesFilter<"AgentProject"> | string
    created_at?: DateTimeWithAggregatesFilter<"AgentProject"> | Date | string
    updated_at?: DateTimeWithAggregatesFilter<"AgentProject"> | Date | string
  }

  export type TokenSaleWhereInput = {
    AND?: TokenSaleWhereInput | TokenSaleWhereInput[]
    OR?: TokenSaleWhereInput[]
    NOT?: TokenSaleWhereInput | TokenSaleWhereInput[]
    id?: StringFilter<"TokenSale"> | string
    project_id?: StringFilter<"TokenSale"> | string
    investor_id?: StringFilter<"TokenSale"> | string
    usdc_amount?: IntFilter<"TokenSale"> | number
    tokens_received?: FloatFilter<"TokenSale"> | number
    price_per_token?: FloatFilter<"TokenSale"> | number
    created_at?: DateTimeFilter<"TokenSale"> | Date | string
    project?: XOR<AgentProjectScalarRelationFilter, AgentProjectWhereInput>
  }

  export type TokenSaleOrderByWithRelationInput = {
    id?: SortOrder
    project_id?: SortOrder
    investor_id?: SortOrder
    usdc_amount?: SortOrder
    tokens_received?: SortOrder
    price_per_token?: SortOrder
    created_at?: SortOrder
    project?: AgentProjectOrderByWithRelationInput
  }

  export type TokenSaleWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    AND?: TokenSaleWhereInput | TokenSaleWhereInput[]
    OR?: TokenSaleWhereInput[]
    NOT?: TokenSaleWhereInput | TokenSaleWhereInput[]
    project_id?: StringFilter<"TokenSale"> | string
    investor_id?: StringFilter<"TokenSale"> | string
    usdc_amount?: IntFilter<"TokenSale"> | number
    tokens_received?: FloatFilter<"TokenSale"> | number
    price_per_token?: FloatFilter<"TokenSale"> | number
    created_at?: DateTimeFilter<"TokenSale"> | Date | string
    project?: XOR<AgentProjectScalarRelationFilter, AgentProjectWhereInput>
  }, "id">

  export type TokenSaleOrderByWithAggregationInput = {
    id?: SortOrder
    project_id?: SortOrder
    investor_id?: SortOrder
    usdc_amount?: SortOrder
    tokens_received?: SortOrder
    price_per_token?: SortOrder
    created_at?: SortOrder
    _count?: TokenSaleCountOrderByAggregateInput
    _avg?: TokenSaleAvgOrderByAggregateInput
    _max?: TokenSaleMaxOrderByAggregateInput
    _min?: TokenSaleMinOrderByAggregateInput
    _sum?: TokenSaleSumOrderByAggregateInput
  }

  export type TokenSaleScalarWhereWithAggregatesInput = {
    AND?: TokenSaleScalarWhereWithAggregatesInput | TokenSaleScalarWhereWithAggregatesInput[]
    OR?: TokenSaleScalarWhereWithAggregatesInput[]
    NOT?: TokenSaleScalarWhereWithAggregatesInput | TokenSaleScalarWhereWithAggregatesInput[]
    id?: StringWithAggregatesFilter<"TokenSale"> | string
    project_id?: StringWithAggregatesFilter<"TokenSale"> | string
    investor_id?: StringWithAggregatesFilter<"TokenSale"> | string
    usdc_amount?: IntWithAggregatesFilter<"TokenSale"> | number
    tokens_received?: FloatWithAggregatesFilter<"TokenSale"> | number
    price_per_token?: FloatWithAggregatesFilter<"TokenSale"> | number
    created_at?: DateTimeWithAggregatesFilter<"TokenSale"> | Date | string
  }

  export type SlashingEventWhereInput = {
    AND?: SlashingEventWhereInput | SlashingEventWhereInput[]
    OR?: SlashingEventWhereInput[]
    NOT?: SlashingEventWhereInput | SlashingEventWhereInput[]
    id?: StringFilter<"SlashingEvent"> | string
    agent_id?: StringFilter<"SlashingEvent"> | string
    arbitration_id?: StringFilter<"SlashingEvent"> | string
    slashed_amount?: IntFilter<"SlashingEvent"> | number
    scout_reward?: IntFilter<"SlashingEvent"> | number
    treasury_reward?: IntFilter<"SlashingEvent"> | number
    reason?: StringFilter<"SlashingEvent"> | string
    created_at?: DateTimeFilter<"SlashingEvent"> | Date | string
    agent?: XOR<AgentProfileScalarRelationFilter, AgentProfileWhereInput>
    arbitration?: XOR<ArbitrationScalarRelationFilter, ArbitrationWhereInput>
  }

  export type SlashingEventOrderByWithRelationInput = {
    id?: SortOrder
    agent_id?: SortOrder
    arbitration_id?: SortOrder
    slashed_amount?: SortOrder
    scout_reward?: SortOrder
    treasury_reward?: SortOrder
    reason?: SortOrder
    created_at?: SortOrder
    agent?: AgentProfileOrderByWithRelationInput
    arbitration?: ArbitrationOrderByWithRelationInput
  }

  export type SlashingEventWhereUniqueInput = Prisma.AtLeast<{
    id?: string
    AND?: SlashingEventWhereInput | SlashingEventWhereInput[]
    OR?: SlashingEventWhereInput[]
    NOT?: SlashingEventWhereInput | SlashingEventWhereInput[]
    agent_id?: StringFilter<"SlashingEvent"> | string
    arbitration_id?: StringFilter<"SlashingEvent"> | string
    slashed_amount?: IntFilter<"SlashingEvent"> | number
    scout_reward?: IntFilter<"SlashingEvent"> | number
    treasury_reward?: IntFilter<"SlashingEvent"> | number
    reason?: StringFilter<"SlashingEvent"> | string
    created_at?: DateTimeFilter<"SlashingEvent"> | Date | string
    agent?: XOR<AgentProfileScalarRelationFilter, AgentProfileWhereInput>
    arbitration?: XOR<ArbitrationScalarRelationFilter, ArbitrationWhereInput>
  }, "id">

  export type SlashingEventOrderByWithAggregationInput = {
    id?: SortOrder
    agent_id?: SortOrder
    arbitration_id?: SortOrder
    slashed_amount?: SortOrder
    scout_reward?: SortOrder
    treasury_reward?: SortOrder
    reason?: SortOrder
    created_at?: SortOrder
    _count?: SlashingEventCountOrderByAggregateInput
    _avg?: SlashingEventAvgOrderByAggregateInput
    _max?: SlashingEventMaxOrderByAggregateInput
    _min?: SlashingEventMinOrderByAggregateInput
    _sum?: SlashingEventSumOrderByAggregateInput
  }

  export type SlashingEventScalarWhereWithAggregatesInput = {
    AND?: SlashingEventScalarWhereWithAggregatesInput | SlashingEventScalarWhereWithAggregatesInput[]
    OR?: SlashingEventScalarWhereWithAggregatesInput[]
    NOT?: SlashingEventScalarWhereWithAggregatesInput | SlashingEventScalarWhereWithAggregatesInput[]
    id?: StringWithAggregatesFilter<"SlashingEvent"> | string
    agent_id?: StringWithAggregatesFilter<"SlashingEvent"> | string
    arbitration_id?: StringWithAggregatesFilter<"SlashingEvent"> | string
    slashed_amount?: IntWithAggregatesFilter<"SlashingEvent"> | number
    scout_reward?: IntWithAggregatesFilter<"SlashingEvent"> | number
    treasury_reward?: IntWithAggregatesFilter<"SlashingEvent"> | number
    reason?: StringWithAggregatesFilter<"SlashingEvent"> | string
    created_at?: DateTimeWithAggregatesFilter<"SlashingEvent"> | Date | string
  }

  export type TaskCreateInput = {
    id?: string
    title: string
    description: string
    status: string
    difficulty: string
    scope_clarity_score: number
    error_classification?: string | null
    reward_amount: number
    reward_currency: string
    acceptance_criteria: JsonNullValueInput | InputJsonValue
    required_stack?: TaskCreaterequired_stackInput | string[]
    retry_count?: number
    stripe_payment_intent_id?: string | null
    stripe_checkout_session_id?: string | null
    expires_at?: Date | string | null
    github_pr_url?: string | null
    reward_points?: number
    is_priority?: boolean
    is_private?: boolean
    referred_by_agent?: string | null
    parent_task_id?: string | null
    created_by_agent?: string | null
    created_at?: Date | string
    updated_at?: Date | string
    scout_agent?: AgentProfileCreateNestedOneWithoutTasks_as_scoutInput
    builder_agent?: AgentProfileCreateNestedOneWithoutTasks_as_builderInput
    claims?: ClaimCreateNestedManyWithoutTaskInput
    submissions?: SubmissionCreateNestedManyWithoutTaskInput
    affiliate_ledger?: AffiliateLedgerCreateNestedManyWithoutTaskInput
    bid_proposals?: BidProposalCreateNestedManyWithoutTaskInput
    arbitrations?: ArbitrationCreateNestedManyWithoutTaskInput
  }

  export type TaskUncheckedCreateInput = {
    id?: string
    title: string
    description: string
    status: string
    difficulty: string
    scope_clarity_score: number
    error_classification?: string | null
    reward_amount: number
    reward_currency: string
    acceptance_criteria: JsonNullValueInput | InputJsonValue
    required_stack?: TaskCreaterequired_stackInput | string[]
    retry_count?: number
    stripe_payment_intent_id?: string | null
    stripe_checkout_session_id?: string | null
    expires_at?: Date | string | null
    github_pr_url?: string | null
    reward_points?: number
    is_priority?: boolean
    is_private?: boolean
    referred_by_agent?: string | null
    parent_task_id?: string | null
    created_by_agent?: string | null
    created_at?: Date | string
    updated_at?: Date | string
    scout_id?: string | null
    builder_id?: string | null
    claims?: ClaimUncheckedCreateNestedManyWithoutTaskInput
    submissions?: SubmissionUncheckedCreateNestedManyWithoutTaskInput
    affiliate_ledger?: AffiliateLedgerUncheckedCreateNestedManyWithoutTaskInput
    bid_proposals?: BidProposalUncheckedCreateNestedManyWithoutTaskInput
    arbitrations?: ArbitrationUncheckedCreateNestedManyWithoutTaskInput
  }

  export type TaskUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: StringFieldUpdateOperationsInput | string
    status?: StringFieldUpdateOperationsInput | string
    difficulty?: StringFieldUpdateOperationsInput | string
    scope_clarity_score?: FloatFieldUpdateOperationsInput | number
    error_classification?: NullableStringFieldUpdateOperationsInput | string | null
    reward_amount?: IntFieldUpdateOperationsInput | number
    reward_currency?: StringFieldUpdateOperationsInput | string
    acceptance_criteria?: JsonNullValueInput | InputJsonValue
    required_stack?: TaskUpdaterequired_stackInput | string[]
    retry_count?: IntFieldUpdateOperationsInput | number
    stripe_payment_intent_id?: NullableStringFieldUpdateOperationsInput | string | null
    stripe_checkout_session_id?: NullableStringFieldUpdateOperationsInput | string | null
    expires_at?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    github_pr_url?: NullableStringFieldUpdateOperationsInput | string | null
    reward_points?: IntFieldUpdateOperationsInput | number
    is_priority?: BoolFieldUpdateOperationsInput | boolean
    is_private?: BoolFieldUpdateOperationsInput | boolean
    referred_by_agent?: NullableStringFieldUpdateOperationsInput | string | null
    parent_task_id?: NullableStringFieldUpdateOperationsInput | string | null
    created_by_agent?: NullableStringFieldUpdateOperationsInput | string | null
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
    scout_agent?: AgentProfileUpdateOneWithoutTasks_as_scoutNestedInput
    builder_agent?: AgentProfileUpdateOneWithoutTasks_as_builderNestedInput
    claims?: ClaimUpdateManyWithoutTaskNestedInput
    submissions?: SubmissionUpdateManyWithoutTaskNestedInput
    affiliate_ledger?: AffiliateLedgerUpdateManyWithoutTaskNestedInput
    bid_proposals?: BidProposalUpdateManyWithoutTaskNestedInput
    arbitrations?: ArbitrationUpdateManyWithoutTaskNestedInput
  }

  export type TaskUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: StringFieldUpdateOperationsInput | string
    status?: StringFieldUpdateOperationsInput | string
    difficulty?: StringFieldUpdateOperationsInput | string
    scope_clarity_score?: FloatFieldUpdateOperationsInput | number
    error_classification?: NullableStringFieldUpdateOperationsInput | string | null
    reward_amount?: IntFieldUpdateOperationsInput | number
    reward_currency?: StringFieldUpdateOperationsInput | string
    acceptance_criteria?: JsonNullValueInput | InputJsonValue
    required_stack?: TaskUpdaterequired_stackInput | string[]
    retry_count?: IntFieldUpdateOperationsInput | number
    stripe_payment_intent_id?: NullableStringFieldUpdateOperationsInput | string | null
    stripe_checkout_session_id?: NullableStringFieldUpdateOperationsInput | string | null
    expires_at?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    github_pr_url?: NullableStringFieldUpdateOperationsInput | string | null
    reward_points?: IntFieldUpdateOperationsInput | number
    is_priority?: BoolFieldUpdateOperationsInput | boolean
    is_private?: BoolFieldUpdateOperationsInput | boolean
    referred_by_agent?: NullableStringFieldUpdateOperationsInput | string | null
    parent_task_id?: NullableStringFieldUpdateOperationsInput | string | null
    created_by_agent?: NullableStringFieldUpdateOperationsInput | string | null
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
    scout_id?: NullableStringFieldUpdateOperationsInput | string | null
    builder_id?: NullableStringFieldUpdateOperationsInput | string | null
    claims?: ClaimUncheckedUpdateManyWithoutTaskNestedInput
    submissions?: SubmissionUncheckedUpdateManyWithoutTaskNestedInput
    affiliate_ledger?: AffiliateLedgerUncheckedUpdateManyWithoutTaskNestedInput
    bid_proposals?: BidProposalUncheckedUpdateManyWithoutTaskNestedInput
    arbitrations?: ArbitrationUncheckedUpdateManyWithoutTaskNestedInput
  }

  export type TaskCreateManyInput = {
    id?: string
    title: string
    description: string
    status: string
    difficulty: string
    scope_clarity_score: number
    error_classification?: string | null
    reward_amount: number
    reward_currency: string
    acceptance_criteria: JsonNullValueInput | InputJsonValue
    required_stack?: TaskCreaterequired_stackInput | string[]
    retry_count?: number
    stripe_payment_intent_id?: string | null
    stripe_checkout_session_id?: string | null
    expires_at?: Date | string | null
    github_pr_url?: string | null
    reward_points?: number
    is_priority?: boolean
    is_private?: boolean
    referred_by_agent?: string | null
    parent_task_id?: string | null
    created_by_agent?: string | null
    created_at?: Date | string
    updated_at?: Date | string
    scout_id?: string | null
    builder_id?: string | null
  }

  export type TaskUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: StringFieldUpdateOperationsInput | string
    status?: StringFieldUpdateOperationsInput | string
    difficulty?: StringFieldUpdateOperationsInput | string
    scope_clarity_score?: FloatFieldUpdateOperationsInput | number
    error_classification?: NullableStringFieldUpdateOperationsInput | string | null
    reward_amount?: IntFieldUpdateOperationsInput | number
    reward_currency?: StringFieldUpdateOperationsInput | string
    acceptance_criteria?: JsonNullValueInput | InputJsonValue
    required_stack?: TaskUpdaterequired_stackInput | string[]
    retry_count?: IntFieldUpdateOperationsInput | number
    stripe_payment_intent_id?: NullableStringFieldUpdateOperationsInput | string | null
    stripe_checkout_session_id?: NullableStringFieldUpdateOperationsInput | string | null
    expires_at?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    github_pr_url?: NullableStringFieldUpdateOperationsInput | string | null
    reward_points?: IntFieldUpdateOperationsInput | number
    is_priority?: BoolFieldUpdateOperationsInput | boolean
    is_private?: BoolFieldUpdateOperationsInput | boolean
    referred_by_agent?: NullableStringFieldUpdateOperationsInput | string | null
    parent_task_id?: NullableStringFieldUpdateOperationsInput | string | null
    created_by_agent?: NullableStringFieldUpdateOperationsInput | string | null
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type TaskUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: StringFieldUpdateOperationsInput | string
    status?: StringFieldUpdateOperationsInput | string
    difficulty?: StringFieldUpdateOperationsInput | string
    scope_clarity_score?: FloatFieldUpdateOperationsInput | number
    error_classification?: NullableStringFieldUpdateOperationsInput | string | null
    reward_amount?: IntFieldUpdateOperationsInput | number
    reward_currency?: StringFieldUpdateOperationsInput | string
    acceptance_criteria?: JsonNullValueInput | InputJsonValue
    required_stack?: TaskUpdaterequired_stackInput | string[]
    retry_count?: IntFieldUpdateOperationsInput | number
    stripe_payment_intent_id?: NullableStringFieldUpdateOperationsInput | string | null
    stripe_checkout_session_id?: NullableStringFieldUpdateOperationsInput | string | null
    expires_at?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    github_pr_url?: NullableStringFieldUpdateOperationsInput | string | null
    reward_points?: IntFieldUpdateOperationsInput | number
    is_priority?: BoolFieldUpdateOperationsInput | boolean
    is_private?: BoolFieldUpdateOperationsInput | boolean
    referred_by_agent?: NullableStringFieldUpdateOperationsInput | string | null
    parent_task_id?: NullableStringFieldUpdateOperationsInput | string | null
    created_by_agent?: NullableStringFieldUpdateOperationsInput | string | null
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
    scout_id?: NullableStringFieldUpdateOperationsInput | string | null
    builder_id?: NullableStringFieldUpdateOperationsInput | string | null
  }

  export type ClaimCreateInput = {
    id?: string
    developer_wallet: string
    status: string
    claim_token: string
    held_amount: number
    held_currency: string
    expires_at: Date | string
    created_at?: Date | string
    updated_at?: Date | string
    task: TaskCreateNestedOneWithoutClaimsInput
    agent: AgentProfileCreateNestedOneWithoutClaimsInput
    submissions?: SubmissionCreateNestedManyWithoutClaimInput
  }

  export type ClaimUncheckedCreateInput = {
    id?: string
    task_id: string
    agent_id: string
    developer_wallet: string
    status: string
    claim_token: string
    held_amount: number
    held_currency: string
    expires_at: Date | string
    created_at?: Date | string
    updated_at?: Date | string
    submissions?: SubmissionUncheckedCreateNestedManyWithoutClaimInput
  }

  export type ClaimUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    developer_wallet?: StringFieldUpdateOperationsInput | string
    status?: StringFieldUpdateOperationsInput | string
    claim_token?: StringFieldUpdateOperationsInput | string
    held_amount?: IntFieldUpdateOperationsInput | number
    held_currency?: StringFieldUpdateOperationsInput | string
    expires_at?: DateTimeFieldUpdateOperationsInput | Date | string
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
    task?: TaskUpdateOneRequiredWithoutClaimsNestedInput
    agent?: AgentProfileUpdateOneRequiredWithoutClaimsNestedInput
    submissions?: SubmissionUpdateManyWithoutClaimNestedInput
  }

  export type ClaimUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    task_id?: StringFieldUpdateOperationsInput | string
    agent_id?: StringFieldUpdateOperationsInput | string
    developer_wallet?: StringFieldUpdateOperationsInput | string
    status?: StringFieldUpdateOperationsInput | string
    claim_token?: StringFieldUpdateOperationsInput | string
    held_amount?: IntFieldUpdateOperationsInput | number
    held_currency?: StringFieldUpdateOperationsInput | string
    expires_at?: DateTimeFieldUpdateOperationsInput | Date | string
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
    submissions?: SubmissionUncheckedUpdateManyWithoutClaimNestedInput
  }

  export type ClaimCreateManyInput = {
    id?: string
    task_id: string
    agent_id: string
    developer_wallet: string
    status: string
    claim_token: string
    held_amount: number
    held_currency: string
    expires_at: Date | string
    created_at?: Date | string
    updated_at?: Date | string
  }

  export type ClaimUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    developer_wallet?: StringFieldUpdateOperationsInput | string
    status?: StringFieldUpdateOperationsInput | string
    claim_token?: StringFieldUpdateOperationsInput | string
    held_amount?: IntFieldUpdateOperationsInput | number
    held_currency?: StringFieldUpdateOperationsInput | string
    expires_at?: DateTimeFieldUpdateOperationsInput | Date | string
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type ClaimUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    task_id?: StringFieldUpdateOperationsInput | string
    agent_id?: StringFieldUpdateOperationsInput | string
    developer_wallet?: StringFieldUpdateOperationsInput | string
    status?: StringFieldUpdateOperationsInput | string
    claim_token?: StringFieldUpdateOperationsInput | string
    held_amount?: IntFieldUpdateOperationsInput | number
    held_currency?: StringFieldUpdateOperationsInput | string
    expires_at?: DateTimeFieldUpdateOperationsInput | Date | string
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type SubmissionCreateInput = {
    id?: string
    status: string
    deliverables: JsonNullValueInput | InputJsonValue
    estimated_judge_complete_at?: Date | string | null
    created_at?: Date | string
    updated_at?: Date | string
    task: TaskCreateNestedOneWithoutSubmissionsInput
    claim: ClaimCreateNestedOneWithoutSubmissionsInput
    judge_results?: JudgeResultCreateNestedManyWithoutSubmissionInput
  }

  export type SubmissionUncheckedCreateInput = {
    id?: string
    task_id: string
    claim_id: string
    status: string
    deliverables: JsonNullValueInput | InputJsonValue
    estimated_judge_complete_at?: Date | string | null
    created_at?: Date | string
    updated_at?: Date | string
    judge_results?: JudgeResultUncheckedCreateNestedManyWithoutSubmissionInput
  }

  export type SubmissionUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    status?: StringFieldUpdateOperationsInput | string
    deliverables?: JsonNullValueInput | InputJsonValue
    estimated_judge_complete_at?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
    task?: TaskUpdateOneRequiredWithoutSubmissionsNestedInput
    claim?: ClaimUpdateOneRequiredWithoutSubmissionsNestedInput
    judge_results?: JudgeResultUpdateManyWithoutSubmissionNestedInput
  }

  export type SubmissionUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    task_id?: StringFieldUpdateOperationsInput | string
    claim_id?: StringFieldUpdateOperationsInput | string
    status?: StringFieldUpdateOperationsInput | string
    deliverables?: JsonNullValueInput | InputJsonValue
    estimated_judge_complete_at?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
    judge_results?: JudgeResultUncheckedUpdateManyWithoutSubmissionNestedInput
  }

  export type SubmissionCreateManyInput = {
    id?: string
    task_id: string
    claim_id: string
    status: string
    deliverables: JsonNullValueInput | InputJsonValue
    estimated_judge_complete_at?: Date | string | null
    created_at?: Date | string
    updated_at?: Date | string
  }

  export type SubmissionUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    status?: StringFieldUpdateOperationsInput | string
    deliverables?: JsonNullValueInput | InputJsonValue
    estimated_judge_complete_at?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type SubmissionUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    task_id?: StringFieldUpdateOperationsInput | string
    claim_id?: StringFieldUpdateOperationsInput | string
    status?: StringFieldUpdateOperationsInput | string
    deliverables?: JsonNullValueInput | InputJsonValue
    estimated_judge_complete_at?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type JudgeResultCreateInput = {
    id?: string
    overall_result: string
    tests: JsonNullValueInput | InputJsonValue
    artifacts?: NullableJsonNullValueInput | InputJsonValue
    error_classification?: string | null
    error_signature?: string | null
    retryable?: boolean
    resource_usage: JsonNullValueInput | InputJsonValue
    judge_completed_at?: Date | string
    submission: SubmissionCreateNestedOneWithoutJudge_resultsInput
  }

  export type JudgeResultUncheckedCreateInput = {
    id?: string
    submission_id: string
    overall_result: string
    tests: JsonNullValueInput | InputJsonValue
    artifacts?: NullableJsonNullValueInput | InputJsonValue
    error_classification?: string | null
    error_signature?: string | null
    retryable?: boolean
    resource_usage: JsonNullValueInput | InputJsonValue
    judge_completed_at?: Date | string
  }

  export type JudgeResultUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    overall_result?: StringFieldUpdateOperationsInput | string
    tests?: JsonNullValueInput | InputJsonValue
    artifacts?: NullableJsonNullValueInput | InputJsonValue
    error_classification?: NullableStringFieldUpdateOperationsInput | string | null
    error_signature?: NullableStringFieldUpdateOperationsInput | string | null
    retryable?: BoolFieldUpdateOperationsInput | boolean
    resource_usage?: JsonNullValueInput | InputJsonValue
    judge_completed_at?: DateTimeFieldUpdateOperationsInput | Date | string
    submission?: SubmissionUpdateOneRequiredWithoutJudge_resultsNestedInput
  }

  export type JudgeResultUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    submission_id?: StringFieldUpdateOperationsInput | string
    overall_result?: StringFieldUpdateOperationsInput | string
    tests?: JsonNullValueInput | InputJsonValue
    artifacts?: NullableJsonNullValueInput | InputJsonValue
    error_classification?: NullableStringFieldUpdateOperationsInput | string | null
    error_signature?: NullableStringFieldUpdateOperationsInput | string | null
    retryable?: BoolFieldUpdateOperationsInput | boolean
    resource_usage?: JsonNullValueInput | InputJsonValue
    judge_completed_at?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type JudgeResultCreateManyInput = {
    id?: string
    submission_id: string
    overall_result: string
    tests: JsonNullValueInput | InputJsonValue
    artifacts?: NullableJsonNullValueInput | InputJsonValue
    error_classification?: string | null
    error_signature?: string | null
    retryable?: boolean
    resource_usage: JsonNullValueInput | InputJsonValue
    judge_completed_at?: Date | string
  }

  export type JudgeResultUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    overall_result?: StringFieldUpdateOperationsInput | string
    tests?: JsonNullValueInput | InputJsonValue
    artifacts?: NullableJsonNullValueInput | InputJsonValue
    error_classification?: NullableStringFieldUpdateOperationsInput | string | null
    error_signature?: NullableStringFieldUpdateOperationsInput | string | null
    retryable?: BoolFieldUpdateOperationsInput | boolean
    resource_usage?: JsonNullValueInput | InputJsonValue
    judge_completed_at?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type JudgeResultUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    submission_id?: StringFieldUpdateOperationsInput | string
    overall_result?: StringFieldUpdateOperationsInput | string
    tests?: JsonNullValueInput | InputJsonValue
    artifacts?: NullableJsonNullValueInput | InputJsonValue
    error_classification?: NullableStringFieldUpdateOperationsInput | string | null
    error_signature?: NullableStringFieldUpdateOperationsInput | string | null
    retryable?: BoolFieldUpdateOperationsInput | boolean
    resource_usage?: JsonNullValueInput | InputJsonValue
    judge_completed_at?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AuditEventCreateInput = {
    id?: string
    actorType: string
    actorId?: string | null
    action: string
    entityType: string
    entityId: string
    beforeState?: NullableJsonNullValueInput | InputJsonValue
    afterState?: NullableJsonNullValueInput | InputJsonValue
    reason?: string | null
    metadata?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: Date | string
  }

  export type AuditEventUncheckedCreateInput = {
    id?: string
    actorType: string
    actorId?: string | null
    action: string
    entityType: string
    entityId: string
    beforeState?: NullableJsonNullValueInput | InputJsonValue
    afterState?: NullableJsonNullValueInput | InputJsonValue
    reason?: string | null
    metadata?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: Date | string
  }

  export type AuditEventUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    actorType?: StringFieldUpdateOperationsInput | string
    actorId?: NullableStringFieldUpdateOperationsInput | string | null
    action?: StringFieldUpdateOperationsInput | string
    entityType?: StringFieldUpdateOperationsInput | string
    entityId?: StringFieldUpdateOperationsInput | string
    beforeState?: NullableJsonNullValueInput | InputJsonValue
    afterState?: NullableJsonNullValueInput | InputJsonValue
    reason?: NullableStringFieldUpdateOperationsInput | string | null
    metadata?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AuditEventUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    actorType?: StringFieldUpdateOperationsInput | string
    actorId?: NullableStringFieldUpdateOperationsInput | string | null
    action?: StringFieldUpdateOperationsInput | string
    entityType?: StringFieldUpdateOperationsInput | string
    entityId?: StringFieldUpdateOperationsInput | string
    beforeState?: NullableJsonNullValueInput | InputJsonValue
    afterState?: NullableJsonNullValueInput | InputJsonValue
    reason?: NullableStringFieldUpdateOperationsInput | string | null
    metadata?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AuditEventCreateManyInput = {
    id?: string
    actorType: string
    actorId?: string | null
    action: string
    entityType: string
    entityId: string
    beforeState?: NullableJsonNullValueInput | InputJsonValue
    afterState?: NullableJsonNullValueInput | InputJsonValue
    reason?: string | null
    metadata?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: Date | string
  }

  export type AuditEventUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    actorType?: StringFieldUpdateOperationsInput | string
    actorId?: NullableStringFieldUpdateOperationsInput | string | null
    action?: StringFieldUpdateOperationsInput | string
    entityType?: StringFieldUpdateOperationsInput | string
    entityId?: StringFieldUpdateOperationsInput | string
    beforeState?: NullableJsonNullValueInput | InputJsonValue
    afterState?: NullableJsonNullValueInput | InputJsonValue
    reason?: NullableStringFieldUpdateOperationsInput | string | null
    metadata?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AuditEventUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    actorType?: StringFieldUpdateOperationsInput | string
    actorId?: NullableStringFieldUpdateOperationsInput | string | null
    action?: StringFieldUpdateOperationsInput | string
    entityType?: StringFieldUpdateOperationsInput | string
    entityId?: StringFieldUpdateOperationsInput | string
    beforeState?: NullableJsonNullValueInput | InputJsonValue
    afterState?: NullableJsonNullValueInput | InputJsonValue
    reason?: NullableStringFieldUpdateOperationsInput | string | null
    metadata?: NullableJsonNullValueInput | InputJsonValue
    createdAt?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type LedgerEntryCreateInput = {
    id?: string
    task_id: string
    phase: string
    idempotency_key: string
    stripe_object_id?: string | null
    response_status: string
    http_status: number
    created_at?: Date | string
    updated_at?: Date | string
  }

  export type LedgerEntryUncheckedCreateInput = {
    id?: string
    task_id: string
    phase: string
    idempotency_key: string
    stripe_object_id?: string | null
    response_status: string
    http_status: number
    created_at?: Date | string
    updated_at?: Date | string
  }

  export type LedgerEntryUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    task_id?: StringFieldUpdateOperationsInput | string
    phase?: StringFieldUpdateOperationsInput | string
    idempotency_key?: StringFieldUpdateOperationsInput | string
    stripe_object_id?: NullableStringFieldUpdateOperationsInput | string | null
    response_status?: StringFieldUpdateOperationsInput | string
    http_status?: IntFieldUpdateOperationsInput | number
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type LedgerEntryUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    task_id?: StringFieldUpdateOperationsInput | string
    phase?: StringFieldUpdateOperationsInput | string
    idempotency_key?: StringFieldUpdateOperationsInput | string
    stripe_object_id?: NullableStringFieldUpdateOperationsInput | string | null
    response_status?: StringFieldUpdateOperationsInput | string
    http_status?: IntFieldUpdateOperationsInput | number
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type LedgerEntryCreateManyInput = {
    id?: string
    task_id: string
    phase: string
    idempotency_key: string
    stripe_object_id?: string | null
    response_status: string
    http_status: number
    created_at?: Date | string
    updated_at?: Date | string
  }

  export type LedgerEntryUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    task_id?: StringFieldUpdateOperationsInput | string
    phase?: StringFieldUpdateOperationsInput | string
    idempotency_key?: StringFieldUpdateOperationsInput | string
    stripe_object_id?: NullableStringFieldUpdateOperationsInput | string | null
    response_status?: StringFieldUpdateOperationsInput | string
    http_status?: IntFieldUpdateOperationsInput | number
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type LedgerEntryUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    task_id?: StringFieldUpdateOperationsInput | string
    phase?: StringFieldUpdateOperationsInput | string
    idempotency_key?: StringFieldUpdateOperationsInput | string
    stripe_object_id?: NullableStringFieldUpdateOperationsInput | string | null
    response_status?: StringFieldUpdateOperationsInput | string
    http_status?: IntFieldUpdateOperationsInput | number
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AgentProfileCreateInput = {
    id?: string
    agent_id: string
    type: string
    wallet_address?: string | null
    status?: $Enums.AgentStatus
    capabilities?: NullableJsonNullValueInput | InputJsonValue
    contact_endpoints?: NullableJsonNullValueInput | InputJsonValue
    discovery_source?: string | null
    created_at?: Date | string
    updated_at?: Date | string
    crypto_address?: string | null
    mcp_endpoint?: string | null
    staked_amount?: number
    tier?: string
    tasks_as_scout?: TaskCreateNestedManyWithoutScout_agentInput
    tasks_as_builder?: TaskCreateNestedManyWithoutBuilder_agentInput
    claims?: ClaimCreateNestedManyWithoutAgentInput
    scout_reputation?: ScoutReputationCreateNestedOneWithoutScout_agentInput
    affiliate_ledger?: AffiliateLedgerCreateNestedManyWithoutScout_agentInput
    bid_proposals?: BidProposalCreateNestedManyWithoutAgentInput
    arbitrations_as_builder?: ArbitrationCreateNestedManyWithoutBuilderInput
    arbitrations_as_evaluator?: ArbitrationCreateNestedManyWithoutEvaluatorInput
    arbitration_votes?: ArbitrationVoteCreateNestedManyWithoutJudgeInput
    created_projects?: AgentProjectCreateNestedManyWithoutCreatorInput
    slashing_events?: SlashingEventCreateNestedManyWithoutAgentInput
  }

  export type AgentProfileUncheckedCreateInput = {
    id?: string
    agent_id: string
    type: string
    wallet_address?: string | null
    status?: $Enums.AgentStatus
    capabilities?: NullableJsonNullValueInput | InputJsonValue
    contact_endpoints?: NullableJsonNullValueInput | InputJsonValue
    discovery_source?: string | null
    created_at?: Date | string
    updated_at?: Date | string
    crypto_address?: string | null
    mcp_endpoint?: string | null
    staked_amount?: number
    tier?: string
    tasks_as_scout?: TaskUncheckedCreateNestedManyWithoutScout_agentInput
    tasks_as_builder?: TaskUncheckedCreateNestedManyWithoutBuilder_agentInput
    claims?: ClaimUncheckedCreateNestedManyWithoutAgentInput
    scout_reputation?: ScoutReputationUncheckedCreateNestedOneWithoutScout_agentInput
    affiliate_ledger?: AffiliateLedgerUncheckedCreateNestedManyWithoutScout_agentInput
    bid_proposals?: BidProposalUncheckedCreateNestedManyWithoutAgentInput
    arbitrations_as_builder?: ArbitrationUncheckedCreateNestedManyWithoutBuilderInput
    arbitrations_as_evaluator?: ArbitrationUncheckedCreateNestedManyWithoutEvaluatorInput
    arbitration_votes?: ArbitrationVoteUncheckedCreateNestedManyWithoutJudgeInput
    created_projects?: AgentProjectUncheckedCreateNestedManyWithoutCreatorInput
    slashing_events?: SlashingEventUncheckedCreateNestedManyWithoutAgentInput
  }

  export type AgentProfileUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    agent_id?: StringFieldUpdateOperationsInput | string
    type?: StringFieldUpdateOperationsInput | string
    wallet_address?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumAgentStatusFieldUpdateOperationsInput | $Enums.AgentStatus
    capabilities?: NullableJsonNullValueInput | InputJsonValue
    contact_endpoints?: NullableJsonNullValueInput | InputJsonValue
    discovery_source?: NullableStringFieldUpdateOperationsInput | string | null
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
    crypto_address?: NullableStringFieldUpdateOperationsInput | string | null
    mcp_endpoint?: NullableStringFieldUpdateOperationsInput | string | null
    staked_amount?: IntFieldUpdateOperationsInput | number
    tier?: StringFieldUpdateOperationsInput | string
    tasks_as_scout?: TaskUpdateManyWithoutScout_agentNestedInput
    tasks_as_builder?: TaskUpdateManyWithoutBuilder_agentNestedInput
    claims?: ClaimUpdateManyWithoutAgentNestedInput
    scout_reputation?: ScoutReputationUpdateOneWithoutScout_agentNestedInput
    affiliate_ledger?: AffiliateLedgerUpdateManyWithoutScout_agentNestedInput
    bid_proposals?: BidProposalUpdateManyWithoutAgentNestedInput
    arbitrations_as_builder?: ArbitrationUpdateManyWithoutBuilderNestedInput
    arbitrations_as_evaluator?: ArbitrationUpdateManyWithoutEvaluatorNestedInput
    arbitration_votes?: ArbitrationVoteUpdateManyWithoutJudgeNestedInput
    created_projects?: AgentProjectUpdateManyWithoutCreatorNestedInput
    slashing_events?: SlashingEventUpdateManyWithoutAgentNestedInput
  }

  export type AgentProfileUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    agent_id?: StringFieldUpdateOperationsInput | string
    type?: StringFieldUpdateOperationsInput | string
    wallet_address?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumAgentStatusFieldUpdateOperationsInput | $Enums.AgentStatus
    capabilities?: NullableJsonNullValueInput | InputJsonValue
    contact_endpoints?: NullableJsonNullValueInput | InputJsonValue
    discovery_source?: NullableStringFieldUpdateOperationsInput | string | null
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
    crypto_address?: NullableStringFieldUpdateOperationsInput | string | null
    mcp_endpoint?: NullableStringFieldUpdateOperationsInput | string | null
    staked_amount?: IntFieldUpdateOperationsInput | number
    tier?: StringFieldUpdateOperationsInput | string
    tasks_as_scout?: TaskUncheckedUpdateManyWithoutScout_agentNestedInput
    tasks_as_builder?: TaskUncheckedUpdateManyWithoutBuilder_agentNestedInput
    claims?: ClaimUncheckedUpdateManyWithoutAgentNestedInput
    scout_reputation?: ScoutReputationUncheckedUpdateOneWithoutScout_agentNestedInput
    affiliate_ledger?: AffiliateLedgerUncheckedUpdateManyWithoutScout_agentNestedInput
    bid_proposals?: BidProposalUncheckedUpdateManyWithoutAgentNestedInput
    arbitrations_as_builder?: ArbitrationUncheckedUpdateManyWithoutBuilderNestedInput
    arbitrations_as_evaluator?: ArbitrationUncheckedUpdateManyWithoutEvaluatorNestedInput
    arbitration_votes?: ArbitrationVoteUncheckedUpdateManyWithoutJudgeNestedInput
    created_projects?: AgentProjectUncheckedUpdateManyWithoutCreatorNestedInput
    slashing_events?: SlashingEventUncheckedUpdateManyWithoutAgentNestedInput
  }

  export type AgentProfileCreateManyInput = {
    id?: string
    agent_id: string
    type: string
    wallet_address?: string | null
    status?: $Enums.AgentStatus
    capabilities?: NullableJsonNullValueInput | InputJsonValue
    contact_endpoints?: NullableJsonNullValueInput | InputJsonValue
    discovery_source?: string | null
    created_at?: Date | string
    updated_at?: Date | string
    crypto_address?: string | null
    mcp_endpoint?: string | null
    staked_amount?: number
    tier?: string
  }

  export type AgentProfileUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    agent_id?: StringFieldUpdateOperationsInput | string
    type?: StringFieldUpdateOperationsInput | string
    wallet_address?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumAgentStatusFieldUpdateOperationsInput | $Enums.AgentStatus
    capabilities?: NullableJsonNullValueInput | InputJsonValue
    contact_endpoints?: NullableJsonNullValueInput | InputJsonValue
    discovery_source?: NullableStringFieldUpdateOperationsInput | string | null
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
    crypto_address?: NullableStringFieldUpdateOperationsInput | string | null
    mcp_endpoint?: NullableStringFieldUpdateOperationsInput | string | null
    staked_amount?: IntFieldUpdateOperationsInput | number
    tier?: StringFieldUpdateOperationsInput | string
  }

  export type AgentProfileUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    agent_id?: StringFieldUpdateOperationsInput | string
    type?: StringFieldUpdateOperationsInput | string
    wallet_address?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumAgentStatusFieldUpdateOperationsInput | $Enums.AgentStatus
    capabilities?: NullableJsonNullValueInput | InputJsonValue
    contact_endpoints?: NullableJsonNullValueInput | InputJsonValue
    discovery_source?: NullableStringFieldUpdateOperationsInput | string | null
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
    crypto_address?: NullableStringFieldUpdateOperationsInput | string | null
    mcp_endpoint?: NullableStringFieldUpdateOperationsInput | string | null
    staked_amount?: IntFieldUpdateOperationsInput | number
    tier?: StringFieldUpdateOperationsInput | string
  }

  export type AffiliateLedgerCreateInput = {
    id?: string
    amount: number
    currency: string
    status: string
    created_at?: Date | string
    updated_at?: Date | string
    scout_agent: AgentProfileCreateNestedOneWithoutAffiliate_ledgerInput
    task: TaskCreateNestedOneWithoutAffiliate_ledgerInput
  }

  export type AffiliateLedgerUncheckedCreateInput = {
    id?: string
    scout_id: string
    task_id: string
    amount: number
    currency: string
    status: string
    created_at?: Date | string
    updated_at?: Date | string
  }

  export type AffiliateLedgerUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    amount?: IntFieldUpdateOperationsInput | number
    currency?: StringFieldUpdateOperationsInput | string
    status?: StringFieldUpdateOperationsInput | string
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
    scout_agent?: AgentProfileUpdateOneRequiredWithoutAffiliate_ledgerNestedInput
    task?: TaskUpdateOneRequiredWithoutAffiliate_ledgerNestedInput
  }

  export type AffiliateLedgerUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    scout_id?: StringFieldUpdateOperationsInput | string
    task_id?: StringFieldUpdateOperationsInput | string
    amount?: IntFieldUpdateOperationsInput | number
    currency?: StringFieldUpdateOperationsInput | string
    status?: StringFieldUpdateOperationsInput | string
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AffiliateLedgerCreateManyInput = {
    id?: string
    scout_id: string
    task_id: string
    amount: number
    currency: string
    status: string
    created_at?: Date | string
    updated_at?: Date | string
  }

  export type AffiliateLedgerUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    amount?: IntFieldUpdateOperationsInput | number
    currency?: StringFieldUpdateOperationsInput | string
    status?: StringFieldUpdateOperationsInput | string
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AffiliateLedgerUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    scout_id?: StringFieldUpdateOperationsInput | string
    task_id?: StringFieldUpdateOperationsInput | string
    amount?: IntFieldUpdateOperationsInput | number
    currency?: StringFieldUpdateOperationsInput | string
    status?: StringFieldUpdateOperationsInput | string
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type ScoutReputationCreateInput = {
    id?: string
    successful_conversions?: number
    spam_score?: number
    chargeback_count?: number
    created_at?: Date | string
    updated_at?: Date | string
    scout_agent: AgentProfileCreateNestedOneWithoutScout_reputationInput
  }

  export type ScoutReputationUncheckedCreateInput = {
    id?: string
    scout_id: string
    successful_conversions?: number
    spam_score?: number
    chargeback_count?: number
    created_at?: Date | string
    updated_at?: Date | string
  }

  export type ScoutReputationUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    successful_conversions?: IntFieldUpdateOperationsInput | number
    spam_score?: FloatFieldUpdateOperationsInput | number
    chargeback_count?: IntFieldUpdateOperationsInput | number
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
    scout_agent?: AgentProfileUpdateOneRequiredWithoutScout_reputationNestedInput
  }

  export type ScoutReputationUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    scout_id?: StringFieldUpdateOperationsInput | string
    successful_conversions?: IntFieldUpdateOperationsInput | number
    spam_score?: FloatFieldUpdateOperationsInput | number
    chargeback_count?: IntFieldUpdateOperationsInput | number
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type ScoutReputationCreateManyInput = {
    id?: string
    scout_id: string
    successful_conversions?: number
    spam_score?: number
    chargeback_count?: number
    created_at?: Date | string
    updated_at?: Date | string
  }

  export type ScoutReputationUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    successful_conversions?: IntFieldUpdateOperationsInput | number
    spam_score?: FloatFieldUpdateOperationsInput | number
    chargeback_count?: IntFieldUpdateOperationsInput | number
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type ScoutReputationUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    scout_id?: StringFieldUpdateOperationsInput | string
    successful_conversions?: IntFieldUpdateOperationsInput | number
    spam_score?: FloatFieldUpdateOperationsInput | number
    chargeback_count?: IntFieldUpdateOperationsInput | number
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type BidProposalCreateInput = {
    id?: string
    proposed_reward: number
    estimated_duration_hours: number
    quality_guarantee?: string | null
    status: string
    counter_offer_amount?: number | null
    broker_agent_id?: string | null
    broker_fee_percentage?: number | null
    created_at?: Date | string
    updated_at?: Date | string
    task: TaskCreateNestedOneWithoutBid_proposalsInput
    agent: AgentProfileCreateNestedOneWithoutBid_proposalsInput
  }

  export type BidProposalUncheckedCreateInput = {
    id?: string
    task_id: string
    agent_id: string
    proposed_reward: number
    estimated_duration_hours: number
    quality_guarantee?: string | null
    status: string
    counter_offer_amount?: number | null
    broker_agent_id?: string | null
    broker_fee_percentage?: number | null
    created_at?: Date | string
    updated_at?: Date | string
  }

  export type BidProposalUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    proposed_reward?: IntFieldUpdateOperationsInput | number
    estimated_duration_hours?: FloatFieldUpdateOperationsInput | number
    quality_guarantee?: NullableStringFieldUpdateOperationsInput | string | null
    status?: StringFieldUpdateOperationsInput | string
    counter_offer_amount?: NullableIntFieldUpdateOperationsInput | number | null
    broker_agent_id?: NullableStringFieldUpdateOperationsInput | string | null
    broker_fee_percentage?: NullableFloatFieldUpdateOperationsInput | number | null
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
    task?: TaskUpdateOneRequiredWithoutBid_proposalsNestedInput
    agent?: AgentProfileUpdateOneRequiredWithoutBid_proposalsNestedInput
  }

  export type BidProposalUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    task_id?: StringFieldUpdateOperationsInput | string
    agent_id?: StringFieldUpdateOperationsInput | string
    proposed_reward?: IntFieldUpdateOperationsInput | number
    estimated_duration_hours?: FloatFieldUpdateOperationsInput | number
    quality_guarantee?: NullableStringFieldUpdateOperationsInput | string | null
    status?: StringFieldUpdateOperationsInput | string
    counter_offer_amount?: NullableIntFieldUpdateOperationsInput | number | null
    broker_agent_id?: NullableStringFieldUpdateOperationsInput | string | null
    broker_fee_percentage?: NullableFloatFieldUpdateOperationsInput | number | null
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type BidProposalCreateManyInput = {
    id?: string
    task_id: string
    agent_id: string
    proposed_reward: number
    estimated_duration_hours: number
    quality_guarantee?: string | null
    status: string
    counter_offer_amount?: number | null
    broker_agent_id?: string | null
    broker_fee_percentage?: number | null
    created_at?: Date | string
    updated_at?: Date | string
  }

  export type BidProposalUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    proposed_reward?: IntFieldUpdateOperationsInput | number
    estimated_duration_hours?: FloatFieldUpdateOperationsInput | number
    quality_guarantee?: NullableStringFieldUpdateOperationsInput | string | null
    status?: StringFieldUpdateOperationsInput | string
    counter_offer_amount?: NullableIntFieldUpdateOperationsInput | number | null
    broker_agent_id?: NullableStringFieldUpdateOperationsInput | string | null
    broker_fee_percentage?: NullableFloatFieldUpdateOperationsInput | number | null
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type BidProposalUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    task_id?: StringFieldUpdateOperationsInput | string
    agent_id?: StringFieldUpdateOperationsInput | string
    proposed_reward?: IntFieldUpdateOperationsInput | number
    estimated_duration_hours?: FloatFieldUpdateOperationsInput | number
    quality_guarantee?: NullableStringFieldUpdateOperationsInput | string | null
    status?: StringFieldUpdateOperationsInput | string
    counter_offer_amount?: NullableIntFieldUpdateOperationsInput | number | null
    broker_agent_id?: NullableStringFieldUpdateOperationsInput | string | null
    broker_fee_percentage?: NullableFloatFieldUpdateOperationsInput | number | null
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AgentWebhookCreateInput = {
    id?: string
    task_id: string
    agent_id: string
    webhook_url: string
    events?: AgentWebhookCreateeventsInput | string[]
    created_at?: Date | string
    updated_at?: Date | string
  }

  export type AgentWebhookUncheckedCreateInput = {
    id?: string
    task_id: string
    agent_id: string
    webhook_url: string
    events?: AgentWebhookCreateeventsInput | string[]
    created_at?: Date | string
    updated_at?: Date | string
  }

  export type AgentWebhookUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    task_id?: StringFieldUpdateOperationsInput | string
    agent_id?: StringFieldUpdateOperationsInput | string
    webhook_url?: StringFieldUpdateOperationsInput | string
    events?: AgentWebhookUpdateeventsInput | string[]
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AgentWebhookUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    task_id?: StringFieldUpdateOperationsInput | string
    agent_id?: StringFieldUpdateOperationsInput | string
    webhook_url?: StringFieldUpdateOperationsInput | string
    events?: AgentWebhookUpdateeventsInput | string[]
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AgentWebhookCreateManyInput = {
    id?: string
    task_id: string
    agent_id: string
    webhook_url: string
    events?: AgentWebhookCreateeventsInput | string[]
    created_at?: Date | string
    updated_at?: Date | string
  }

  export type AgentWebhookUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    task_id?: StringFieldUpdateOperationsInput | string
    agent_id?: StringFieldUpdateOperationsInput | string
    webhook_url?: StringFieldUpdateOperationsInput | string
    events?: AgentWebhookUpdateeventsInput | string[]
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AgentWebhookUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    task_id?: StringFieldUpdateOperationsInput | string
    agent_id?: StringFieldUpdateOperationsInput | string
    webhook_url?: StringFieldUpdateOperationsInput | string
    events?: AgentWebhookUpdateeventsInput | string[]
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type ArbitrationCreateInput = {
    id?: string
    status?: string
    builder_evidence?: string | null
    evaluator_reason?: string | null
    winning_party?: string | null
    created_at?: Date | string
    updated_at?: Date | string
    task: TaskCreateNestedOneWithoutArbitrationsInput
    builder: AgentProfileCreateNestedOneWithoutArbitrations_as_builderInput
    evaluator: AgentProfileCreateNestedOneWithoutArbitrations_as_evaluatorInput
    votes?: ArbitrationVoteCreateNestedManyWithoutArbitrationInput
    slashing_events?: SlashingEventCreateNestedManyWithoutArbitrationInput
  }

  export type ArbitrationUncheckedCreateInput = {
    id?: string
    task_id: string
    builder_id: string
    evaluator_id: string
    status?: string
    builder_evidence?: string | null
    evaluator_reason?: string | null
    winning_party?: string | null
    created_at?: Date | string
    updated_at?: Date | string
    votes?: ArbitrationVoteUncheckedCreateNestedManyWithoutArbitrationInput
    slashing_events?: SlashingEventUncheckedCreateNestedManyWithoutArbitrationInput
  }

  export type ArbitrationUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    status?: StringFieldUpdateOperationsInput | string
    builder_evidence?: NullableStringFieldUpdateOperationsInput | string | null
    evaluator_reason?: NullableStringFieldUpdateOperationsInput | string | null
    winning_party?: NullableStringFieldUpdateOperationsInput | string | null
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
    task?: TaskUpdateOneRequiredWithoutArbitrationsNestedInput
    builder?: AgentProfileUpdateOneRequiredWithoutArbitrations_as_builderNestedInput
    evaluator?: AgentProfileUpdateOneRequiredWithoutArbitrations_as_evaluatorNestedInput
    votes?: ArbitrationVoteUpdateManyWithoutArbitrationNestedInput
    slashing_events?: SlashingEventUpdateManyWithoutArbitrationNestedInput
  }

  export type ArbitrationUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    task_id?: StringFieldUpdateOperationsInput | string
    builder_id?: StringFieldUpdateOperationsInput | string
    evaluator_id?: StringFieldUpdateOperationsInput | string
    status?: StringFieldUpdateOperationsInput | string
    builder_evidence?: NullableStringFieldUpdateOperationsInput | string | null
    evaluator_reason?: NullableStringFieldUpdateOperationsInput | string | null
    winning_party?: NullableStringFieldUpdateOperationsInput | string | null
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
    votes?: ArbitrationVoteUncheckedUpdateManyWithoutArbitrationNestedInput
    slashing_events?: SlashingEventUncheckedUpdateManyWithoutArbitrationNestedInput
  }

  export type ArbitrationCreateManyInput = {
    id?: string
    task_id: string
    builder_id: string
    evaluator_id: string
    status?: string
    builder_evidence?: string | null
    evaluator_reason?: string | null
    winning_party?: string | null
    created_at?: Date | string
    updated_at?: Date | string
  }

  export type ArbitrationUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    status?: StringFieldUpdateOperationsInput | string
    builder_evidence?: NullableStringFieldUpdateOperationsInput | string | null
    evaluator_reason?: NullableStringFieldUpdateOperationsInput | string | null
    winning_party?: NullableStringFieldUpdateOperationsInput | string | null
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type ArbitrationUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    task_id?: StringFieldUpdateOperationsInput | string
    builder_id?: StringFieldUpdateOperationsInput | string
    evaluator_id?: StringFieldUpdateOperationsInput | string
    status?: StringFieldUpdateOperationsInput | string
    builder_evidence?: NullableStringFieldUpdateOperationsInput | string | null
    evaluator_reason?: NullableStringFieldUpdateOperationsInput | string | null
    winning_party?: NullableStringFieldUpdateOperationsInput | string | null
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type ArbitrationVoteCreateInput = {
    id?: string
    vote_for: string
    reasoning?: string | null
    created_at?: Date | string
    arbitration: ArbitrationCreateNestedOneWithoutVotesInput
    judge: AgentProfileCreateNestedOneWithoutArbitration_votesInput
  }

  export type ArbitrationVoteUncheckedCreateInput = {
    id?: string
    arbitration_id: string
    judge_id: string
    vote_for: string
    reasoning?: string | null
    created_at?: Date | string
  }

  export type ArbitrationVoteUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    vote_for?: StringFieldUpdateOperationsInput | string
    reasoning?: NullableStringFieldUpdateOperationsInput | string | null
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    arbitration?: ArbitrationUpdateOneRequiredWithoutVotesNestedInput
    judge?: AgentProfileUpdateOneRequiredWithoutArbitration_votesNestedInput
  }

  export type ArbitrationVoteUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    arbitration_id?: StringFieldUpdateOperationsInput | string
    judge_id?: StringFieldUpdateOperationsInput | string
    vote_for?: StringFieldUpdateOperationsInput | string
    reasoning?: NullableStringFieldUpdateOperationsInput | string | null
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type ArbitrationVoteCreateManyInput = {
    id?: string
    arbitration_id: string
    judge_id: string
    vote_for: string
    reasoning?: string | null
    created_at?: Date | string
  }

  export type ArbitrationVoteUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    vote_for?: StringFieldUpdateOperationsInput | string
    reasoning?: NullableStringFieldUpdateOperationsInput | string | null
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type ArbitrationVoteUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    arbitration_id?: StringFieldUpdateOperationsInput | string
    judge_id?: StringFieldUpdateOperationsInput | string
    vote_for?: StringFieldUpdateOperationsInput | string
    reasoning?: NullableStringFieldUpdateOperationsInput | string | null
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AgentProjectCreateInput = {
    id?: string
    name: string
    ticker: string
    description: string
    whitepaper_url?: string | null
    target_raise: number
    total_supply: number
    status?: string
    created_at?: Date | string
    updated_at?: Date | string
    creator: AgentProfileCreateNestedOneWithoutCreated_projectsInput
    token_sales?: TokenSaleCreateNestedManyWithoutProjectInput
  }

  export type AgentProjectUncheckedCreateInput = {
    id?: string
    creator_agent_id: string
    name: string
    ticker: string
    description: string
    whitepaper_url?: string | null
    target_raise: number
    total_supply: number
    status?: string
    created_at?: Date | string
    updated_at?: Date | string
    token_sales?: TokenSaleUncheckedCreateNestedManyWithoutProjectInput
  }

  export type AgentProjectUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    ticker?: StringFieldUpdateOperationsInput | string
    description?: StringFieldUpdateOperationsInput | string
    whitepaper_url?: NullableStringFieldUpdateOperationsInput | string | null
    target_raise?: IntFieldUpdateOperationsInput | number
    total_supply?: IntFieldUpdateOperationsInput | number
    status?: StringFieldUpdateOperationsInput | string
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
    creator?: AgentProfileUpdateOneRequiredWithoutCreated_projectsNestedInput
    token_sales?: TokenSaleUpdateManyWithoutProjectNestedInput
  }

  export type AgentProjectUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    creator_agent_id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    ticker?: StringFieldUpdateOperationsInput | string
    description?: StringFieldUpdateOperationsInput | string
    whitepaper_url?: NullableStringFieldUpdateOperationsInput | string | null
    target_raise?: IntFieldUpdateOperationsInput | number
    total_supply?: IntFieldUpdateOperationsInput | number
    status?: StringFieldUpdateOperationsInput | string
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
    token_sales?: TokenSaleUncheckedUpdateManyWithoutProjectNestedInput
  }

  export type AgentProjectCreateManyInput = {
    id?: string
    creator_agent_id: string
    name: string
    ticker: string
    description: string
    whitepaper_url?: string | null
    target_raise: number
    total_supply: number
    status?: string
    created_at?: Date | string
    updated_at?: Date | string
  }

  export type AgentProjectUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    ticker?: StringFieldUpdateOperationsInput | string
    description?: StringFieldUpdateOperationsInput | string
    whitepaper_url?: NullableStringFieldUpdateOperationsInput | string | null
    target_raise?: IntFieldUpdateOperationsInput | number
    total_supply?: IntFieldUpdateOperationsInput | number
    status?: StringFieldUpdateOperationsInput | string
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AgentProjectUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    creator_agent_id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    ticker?: StringFieldUpdateOperationsInput | string
    description?: StringFieldUpdateOperationsInput | string
    whitepaper_url?: NullableStringFieldUpdateOperationsInput | string | null
    target_raise?: IntFieldUpdateOperationsInput | number
    total_supply?: IntFieldUpdateOperationsInput | number
    status?: StringFieldUpdateOperationsInput | string
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type TokenSaleCreateInput = {
    id?: string
    investor_id: string
    usdc_amount: number
    tokens_received: number
    price_per_token: number
    created_at?: Date | string
    project: AgentProjectCreateNestedOneWithoutToken_salesInput
  }

  export type TokenSaleUncheckedCreateInput = {
    id?: string
    project_id: string
    investor_id: string
    usdc_amount: number
    tokens_received: number
    price_per_token: number
    created_at?: Date | string
  }

  export type TokenSaleUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    investor_id?: StringFieldUpdateOperationsInput | string
    usdc_amount?: IntFieldUpdateOperationsInput | number
    tokens_received?: FloatFieldUpdateOperationsInput | number
    price_per_token?: FloatFieldUpdateOperationsInput | number
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    project?: AgentProjectUpdateOneRequiredWithoutToken_salesNestedInput
  }

  export type TokenSaleUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    project_id?: StringFieldUpdateOperationsInput | string
    investor_id?: StringFieldUpdateOperationsInput | string
    usdc_amount?: IntFieldUpdateOperationsInput | number
    tokens_received?: FloatFieldUpdateOperationsInput | number
    price_per_token?: FloatFieldUpdateOperationsInput | number
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type TokenSaleCreateManyInput = {
    id?: string
    project_id: string
    investor_id: string
    usdc_amount: number
    tokens_received: number
    price_per_token: number
    created_at?: Date | string
  }

  export type TokenSaleUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    investor_id?: StringFieldUpdateOperationsInput | string
    usdc_amount?: IntFieldUpdateOperationsInput | number
    tokens_received?: FloatFieldUpdateOperationsInput | number
    price_per_token?: FloatFieldUpdateOperationsInput | number
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type TokenSaleUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    project_id?: StringFieldUpdateOperationsInput | string
    investor_id?: StringFieldUpdateOperationsInput | string
    usdc_amount?: IntFieldUpdateOperationsInput | number
    tokens_received?: FloatFieldUpdateOperationsInput | number
    price_per_token?: FloatFieldUpdateOperationsInput | number
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type SlashingEventCreateInput = {
    id?: string
    slashed_amount: number
    scout_reward: number
    treasury_reward: number
    reason: string
    created_at?: Date | string
    agent: AgentProfileCreateNestedOneWithoutSlashing_eventsInput
    arbitration: ArbitrationCreateNestedOneWithoutSlashing_eventsInput
  }

  export type SlashingEventUncheckedCreateInput = {
    id?: string
    agent_id: string
    arbitration_id: string
    slashed_amount: number
    scout_reward: number
    treasury_reward: number
    reason: string
    created_at?: Date | string
  }

  export type SlashingEventUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    slashed_amount?: IntFieldUpdateOperationsInput | number
    scout_reward?: IntFieldUpdateOperationsInput | number
    treasury_reward?: IntFieldUpdateOperationsInput | number
    reason?: StringFieldUpdateOperationsInput | string
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    agent?: AgentProfileUpdateOneRequiredWithoutSlashing_eventsNestedInput
    arbitration?: ArbitrationUpdateOneRequiredWithoutSlashing_eventsNestedInput
  }

  export type SlashingEventUncheckedUpdateInput = {
    id?: StringFieldUpdateOperationsInput | string
    agent_id?: StringFieldUpdateOperationsInput | string
    arbitration_id?: StringFieldUpdateOperationsInput | string
    slashed_amount?: IntFieldUpdateOperationsInput | number
    scout_reward?: IntFieldUpdateOperationsInput | number
    treasury_reward?: IntFieldUpdateOperationsInput | number
    reason?: StringFieldUpdateOperationsInput | string
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type SlashingEventCreateManyInput = {
    id?: string
    agent_id: string
    arbitration_id: string
    slashed_amount: number
    scout_reward: number
    treasury_reward: number
    reason: string
    created_at?: Date | string
  }

  export type SlashingEventUpdateManyMutationInput = {
    id?: StringFieldUpdateOperationsInput | string
    slashed_amount?: IntFieldUpdateOperationsInput | number
    scout_reward?: IntFieldUpdateOperationsInput | number
    treasury_reward?: IntFieldUpdateOperationsInput | number
    reason?: StringFieldUpdateOperationsInput | string
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type SlashingEventUncheckedUpdateManyInput = {
    id?: StringFieldUpdateOperationsInput | string
    agent_id?: StringFieldUpdateOperationsInput | string
    arbitration_id?: StringFieldUpdateOperationsInput | string
    slashed_amount?: IntFieldUpdateOperationsInput | number
    scout_reward?: IntFieldUpdateOperationsInput | number
    treasury_reward?: IntFieldUpdateOperationsInput | number
    reason?: StringFieldUpdateOperationsInput | string
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type StringFilter<$PrismaModel = never> = {
    equals?: string | StringFieldRefInput<$PrismaModel>
    in?: string[] | ListStringFieldRefInput<$PrismaModel>
    notIn?: string[] | ListStringFieldRefInput<$PrismaModel>
    lt?: string | StringFieldRefInput<$PrismaModel>
    lte?: string | StringFieldRefInput<$PrismaModel>
    gt?: string | StringFieldRefInput<$PrismaModel>
    gte?: string | StringFieldRefInput<$PrismaModel>
    contains?: string | StringFieldRefInput<$PrismaModel>
    startsWith?: string | StringFieldRefInput<$PrismaModel>
    endsWith?: string | StringFieldRefInput<$PrismaModel>
    mode?: QueryMode
    not?: NestedStringFilter<$PrismaModel> | string
  }

  export type FloatFilter<$PrismaModel = never> = {
    equals?: number | FloatFieldRefInput<$PrismaModel>
    in?: number[] | ListFloatFieldRefInput<$PrismaModel>
    notIn?: number[] | ListFloatFieldRefInput<$PrismaModel>
    lt?: number | FloatFieldRefInput<$PrismaModel>
    lte?: number | FloatFieldRefInput<$PrismaModel>
    gt?: number | FloatFieldRefInput<$PrismaModel>
    gte?: number | FloatFieldRefInput<$PrismaModel>
    not?: NestedFloatFilter<$PrismaModel> | number
  }

  export type StringNullableFilter<$PrismaModel = never> = {
    equals?: string | StringFieldRefInput<$PrismaModel> | null
    in?: string[] | ListStringFieldRefInput<$PrismaModel> | null
    notIn?: string[] | ListStringFieldRefInput<$PrismaModel> | null
    lt?: string | StringFieldRefInput<$PrismaModel>
    lte?: string | StringFieldRefInput<$PrismaModel>
    gt?: string | StringFieldRefInput<$PrismaModel>
    gte?: string | StringFieldRefInput<$PrismaModel>
    contains?: string | StringFieldRefInput<$PrismaModel>
    startsWith?: string | StringFieldRefInput<$PrismaModel>
    endsWith?: string | StringFieldRefInput<$PrismaModel>
    mode?: QueryMode
    not?: NestedStringNullableFilter<$PrismaModel> | string | null
  }

  export type IntFilter<$PrismaModel = never> = {
    equals?: number | IntFieldRefInput<$PrismaModel>
    in?: number[] | ListIntFieldRefInput<$PrismaModel>
    notIn?: number[] | ListIntFieldRefInput<$PrismaModel>
    lt?: number | IntFieldRefInput<$PrismaModel>
    lte?: number | IntFieldRefInput<$PrismaModel>
    gt?: number | IntFieldRefInput<$PrismaModel>
    gte?: number | IntFieldRefInput<$PrismaModel>
    not?: NestedIntFilter<$PrismaModel> | number
  }
  export type JsonFilter<$PrismaModel = never> =
    | PatchUndefined<
        Either<Required<JsonFilterBase<$PrismaModel>>, Exclude<keyof Required<JsonFilterBase<$PrismaModel>>, 'path'>>,
        Required<JsonFilterBase<$PrismaModel>>
      >
    | OptionalFlat<Omit<Required<JsonFilterBase<$PrismaModel>>, 'path'>>

  export type JsonFilterBase<$PrismaModel = never> = {
    equals?: InputJsonValue | JsonFieldRefInput<$PrismaModel> | JsonNullValueFilter
    path?: string[]
    mode?: QueryMode | EnumQueryModeFieldRefInput<$PrismaModel>
    string_contains?: string | StringFieldRefInput<$PrismaModel>
    string_starts_with?: string | StringFieldRefInput<$PrismaModel>
    string_ends_with?: string | StringFieldRefInput<$PrismaModel>
    array_starts_with?: InputJsonValue | JsonFieldRefInput<$PrismaModel> | null
    array_ends_with?: InputJsonValue | JsonFieldRefInput<$PrismaModel> | null
    array_contains?: InputJsonValue | JsonFieldRefInput<$PrismaModel> | null
    lt?: InputJsonValue | JsonFieldRefInput<$PrismaModel>
    lte?: InputJsonValue | JsonFieldRefInput<$PrismaModel>
    gt?: InputJsonValue | JsonFieldRefInput<$PrismaModel>
    gte?: InputJsonValue | JsonFieldRefInput<$PrismaModel>
    not?: InputJsonValue | JsonFieldRefInput<$PrismaModel> | JsonNullValueFilter
  }

  export type StringNullableListFilter<$PrismaModel = never> = {
    equals?: string[] | ListStringFieldRefInput<$PrismaModel> | null
    has?: string | StringFieldRefInput<$PrismaModel> | null
    hasEvery?: string[] | ListStringFieldRefInput<$PrismaModel>
    hasSome?: string[] | ListStringFieldRefInput<$PrismaModel>
    isEmpty?: boolean
  }

  export type DateTimeNullableFilter<$PrismaModel = never> = {
    equals?: Date | string | DateTimeFieldRefInput<$PrismaModel> | null
    in?: Date[] | string[] | ListDateTimeFieldRefInput<$PrismaModel> | null
    notIn?: Date[] | string[] | ListDateTimeFieldRefInput<$PrismaModel> | null
    lt?: Date | string | DateTimeFieldRefInput<$PrismaModel>
    lte?: Date | string | DateTimeFieldRefInput<$PrismaModel>
    gt?: Date | string | DateTimeFieldRefInput<$PrismaModel>
    gte?: Date | string | DateTimeFieldRefInput<$PrismaModel>
    not?: NestedDateTimeNullableFilter<$PrismaModel> | Date | string | null
  }

  export type BoolFilter<$PrismaModel = never> = {
    equals?: boolean | BooleanFieldRefInput<$PrismaModel>
    not?: NestedBoolFilter<$PrismaModel> | boolean
  }

  export type DateTimeFilter<$PrismaModel = never> = {
    equals?: Date | string | DateTimeFieldRefInput<$PrismaModel>
    in?: Date[] | string[] | ListDateTimeFieldRefInput<$PrismaModel>
    notIn?: Date[] | string[] | ListDateTimeFieldRefInput<$PrismaModel>
    lt?: Date | string | DateTimeFieldRefInput<$PrismaModel>
    lte?: Date | string | DateTimeFieldRefInput<$PrismaModel>
    gt?: Date | string | DateTimeFieldRefInput<$PrismaModel>
    gte?: Date | string | DateTimeFieldRefInput<$PrismaModel>
    not?: NestedDateTimeFilter<$PrismaModel> | Date | string
  }

  export type AgentProfileNullableScalarRelationFilter = {
    is?: AgentProfileWhereInput | null
    isNot?: AgentProfileWhereInput | null
  }

  export type ClaimListRelationFilter = {
    every?: ClaimWhereInput
    some?: ClaimWhereInput
    none?: ClaimWhereInput
  }

  export type SubmissionListRelationFilter = {
    every?: SubmissionWhereInput
    some?: SubmissionWhereInput
    none?: SubmissionWhereInput
  }

  export type AffiliateLedgerListRelationFilter = {
    every?: AffiliateLedgerWhereInput
    some?: AffiliateLedgerWhereInput
    none?: AffiliateLedgerWhereInput
  }

  export type BidProposalListRelationFilter = {
    every?: BidProposalWhereInput
    some?: BidProposalWhereInput
    none?: BidProposalWhereInput
  }

  export type ArbitrationListRelationFilter = {
    every?: ArbitrationWhereInput
    some?: ArbitrationWhereInput
    none?: ArbitrationWhereInput
  }

  export type SortOrderInput = {
    sort: SortOrder
    nulls?: NullsOrder
  }

  export type ClaimOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type SubmissionOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type AffiliateLedgerOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type BidProposalOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type ArbitrationOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type TaskCountOrderByAggregateInput = {
    id?: SortOrder
    title?: SortOrder
    description?: SortOrder
    status?: SortOrder
    difficulty?: SortOrder
    scope_clarity_score?: SortOrder
    error_classification?: SortOrder
    reward_amount?: SortOrder
    reward_currency?: SortOrder
    acceptance_criteria?: SortOrder
    required_stack?: SortOrder
    retry_count?: SortOrder
    stripe_payment_intent_id?: SortOrder
    stripe_checkout_session_id?: SortOrder
    expires_at?: SortOrder
    github_pr_url?: SortOrder
    reward_points?: SortOrder
    is_priority?: SortOrder
    is_private?: SortOrder
    referred_by_agent?: SortOrder
    parent_task_id?: SortOrder
    created_by_agent?: SortOrder
    created_at?: SortOrder
    updated_at?: SortOrder
    scout_id?: SortOrder
    builder_id?: SortOrder
  }

  export type TaskAvgOrderByAggregateInput = {
    scope_clarity_score?: SortOrder
    reward_amount?: SortOrder
    retry_count?: SortOrder
    reward_points?: SortOrder
  }

  export type TaskMaxOrderByAggregateInput = {
    id?: SortOrder
    title?: SortOrder
    description?: SortOrder
    status?: SortOrder
    difficulty?: SortOrder
    scope_clarity_score?: SortOrder
    error_classification?: SortOrder
    reward_amount?: SortOrder
    reward_currency?: SortOrder
    retry_count?: SortOrder
    stripe_payment_intent_id?: SortOrder
    stripe_checkout_session_id?: SortOrder
    expires_at?: SortOrder
    github_pr_url?: SortOrder
    reward_points?: SortOrder
    is_priority?: SortOrder
    is_private?: SortOrder
    referred_by_agent?: SortOrder
    parent_task_id?: SortOrder
    created_by_agent?: SortOrder
    created_at?: SortOrder
    updated_at?: SortOrder
    scout_id?: SortOrder
    builder_id?: SortOrder
  }

  export type TaskMinOrderByAggregateInput = {
    id?: SortOrder
    title?: SortOrder
    description?: SortOrder
    status?: SortOrder
    difficulty?: SortOrder
    scope_clarity_score?: SortOrder
    error_classification?: SortOrder
    reward_amount?: SortOrder
    reward_currency?: SortOrder
    retry_count?: SortOrder
    stripe_payment_intent_id?: SortOrder
    stripe_checkout_session_id?: SortOrder
    expires_at?: SortOrder
    github_pr_url?: SortOrder
    reward_points?: SortOrder
    is_priority?: SortOrder
    is_private?: SortOrder
    referred_by_agent?: SortOrder
    parent_task_id?: SortOrder
    created_by_agent?: SortOrder
    created_at?: SortOrder
    updated_at?: SortOrder
    scout_id?: SortOrder
    builder_id?: SortOrder
  }

  export type TaskSumOrderByAggregateInput = {
    scope_clarity_score?: SortOrder
    reward_amount?: SortOrder
    retry_count?: SortOrder
    reward_points?: SortOrder
  }

  export type StringWithAggregatesFilter<$PrismaModel = never> = {
    equals?: string | StringFieldRefInput<$PrismaModel>
    in?: string[] | ListStringFieldRefInput<$PrismaModel>
    notIn?: string[] | ListStringFieldRefInput<$PrismaModel>
    lt?: string | StringFieldRefInput<$PrismaModel>
    lte?: string | StringFieldRefInput<$PrismaModel>
    gt?: string | StringFieldRefInput<$PrismaModel>
    gte?: string | StringFieldRefInput<$PrismaModel>
    contains?: string | StringFieldRefInput<$PrismaModel>
    startsWith?: string | StringFieldRefInput<$PrismaModel>
    endsWith?: string | StringFieldRefInput<$PrismaModel>
    mode?: QueryMode
    not?: NestedStringWithAggregatesFilter<$PrismaModel> | string
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedStringFilter<$PrismaModel>
    _max?: NestedStringFilter<$PrismaModel>
  }

  export type FloatWithAggregatesFilter<$PrismaModel = never> = {
    equals?: number | FloatFieldRefInput<$PrismaModel>
    in?: number[] | ListFloatFieldRefInput<$PrismaModel>
    notIn?: number[] | ListFloatFieldRefInput<$PrismaModel>
    lt?: number | FloatFieldRefInput<$PrismaModel>
    lte?: number | FloatFieldRefInput<$PrismaModel>
    gt?: number | FloatFieldRefInput<$PrismaModel>
    gte?: number | FloatFieldRefInput<$PrismaModel>
    not?: NestedFloatWithAggregatesFilter<$PrismaModel> | number
    _count?: NestedIntFilter<$PrismaModel>
    _avg?: NestedFloatFilter<$PrismaModel>
    _sum?: NestedFloatFilter<$PrismaModel>
    _min?: NestedFloatFilter<$PrismaModel>
    _max?: NestedFloatFilter<$PrismaModel>
  }

  export type StringNullableWithAggregatesFilter<$PrismaModel = never> = {
    equals?: string | StringFieldRefInput<$PrismaModel> | null
    in?: string[] | ListStringFieldRefInput<$PrismaModel> | null
    notIn?: string[] | ListStringFieldRefInput<$PrismaModel> | null
    lt?: string | StringFieldRefInput<$PrismaModel>
    lte?: string | StringFieldRefInput<$PrismaModel>
    gt?: string | StringFieldRefInput<$PrismaModel>
    gte?: string | StringFieldRefInput<$PrismaModel>
    contains?: string | StringFieldRefInput<$PrismaModel>
    startsWith?: string | StringFieldRefInput<$PrismaModel>
    endsWith?: string | StringFieldRefInput<$PrismaModel>
    mode?: QueryMode
    not?: NestedStringNullableWithAggregatesFilter<$PrismaModel> | string | null
    _count?: NestedIntNullableFilter<$PrismaModel>
    _min?: NestedStringNullableFilter<$PrismaModel>
    _max?: NestedStringNullableFilter<$PrismaModel>
  }

  export type IntWithAggregatesFilter<$PrismaModel = never> = {
    equals?: number | IntFieldRefInput<$PrismaModel>
    in?: number[] | ListIntFieldRefInput<$PrismaModel>
    notIn?: number[] | ListIntFieldRefInput<$PrismaModel>
    lt?: number | IntFieldRefInput<$PrismaModel>
    lte?: number | IntFieldRefInput<$PrismaModel>
    gt?: number | IntFieldRefInput<$PrismaModel>
    gte?: number | IntFieldRefInput<$PrismaModel>
    not?: NestedIntWithAggregatesFilter<$PrismaModel> | number
    _count?: NestedIntFilter<$PrismaModel>
    _avg?: NestedFloatFilter<$PrismaModel>
    _sum?: NestedIntFilter<$PrismaModel>
    _min?: NestedIntFilter<$PrismaModel>
    _max?: NestedIntFilter<$PrismaModel>
  }
  export type JsonWithAggregatesFilter<$PrismaModel = never> =
    | PatchUndefined<
        Either<Required<JsonWithAggregatesFilterBase<$PrismaModel>>, Exclude<keyof Required<JsonWithAggregatesFilterBase<$PrismaModel>>, 'path'>>,
        Required<JsonWithAggregatesFilterBase<$PrismaModel>>
      >
    | OptionalFlat<Omit<Required<JsonWithAggregatesFilterBase<$PrismaModel>>, 'path'>>

  export type JsonWithAggregatesFilterBase<$PrismaModel = never> = {
    equals?: InputJsonValue | JsonFieldRefInput<$PrismaModel> | JsonNullValueFilter
    path?: string[]
    mode?: QueryMode | EnumQueryModeFieldRefInput<$PrismaModel>
    string_contains?: string | StringFieldRefInput<$PrismaModel>
    string_starts_with?: string | StringFieldRefInput<$PrismaModel>
    string_ends_with?: string | StringFieldRefInput<$PrismaModel>
    array_starts_with?: InputJsonValue | JsonFieldRefInput<$PrismaModel> | null
    array_ends_with?: InputJsonValue | JsonFieldRefInput<$PrismaModel> | null
    array_contains?: InputJsonValue | JsonFieldRefInput<$PrismaModel> | null
    lt?: InputJsonValue | JsonFieldRefInput<$PrismaModel>
    lte?: InputJsonValue | JsonFieldRefInput<$PrismaModel>
    gt?: InputJsonValue | JsonFieldRefInput<$PrismaModel>
    gte?: InputJsonValue | JsonFieldRefInput<$PrismaModel>
    not?: InputJsonValue | JsonFieldRefInput<$PrismaModel> | JsonNullValueFilter
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedJsonFilter<$PrismaModel>
    _max?: NestedJsonFilter<$PrismaModel>
  }

  export type DateTimeNullableWithAggregatesFilter<$PrismaModel = never> = {
    equals?: Date | string | DateTimeFieldRefInput<$PrismaModel> | null
    in?: Date[] | string[] | ListDateTimeFieldRefInput<$PrismaModel> | null
    notIn?: Date[] | string[] | ListDateTimeFieldRefInput<$PrismaModel> | null
    lt?: Date | string | DateTimeFieldRefInput<$PrismaModel>
    lte?: Date | string | DateTimeFieldRefInput<$PrismaModel>
    gt?: Date | string | DateTimeFieldRefInput<$PrismaModel>
    gte?: Date | string | DateTimeFieldRefInput<$PrismaModel>
    not?: NestedDateTimeNullableWithAggregatesFilter<$PrismaModel> | Date | string | null
    _count?: NestedIntNullableFilter<$PrismaModel>
    _min?: NestedDateTimeNullableFilter<$PrismaModel>
    _max?: NestedDateTimeNullableFilter<$PrismaModel>
  }

  export type BoolWithAggregatesFilter<$PrismaModel = never> = {
    equals?: boolean | BooleanFieldRefInput<$PrismaModel>
    not?: NestedBoolWithAggregatesFilter<$PrismaModel> | boolean
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedBoolFilter<$PrismaModel>
    _max?: NestedBoolFilter<$PrismaModel>
  }

  export type DateTimeWithAggregatesFilter<$PrismaModel = never> = {
    equals?: Date | string | DateTimeFieldRefInput<$PrismaModel>
    in?: Date[] | string[] | ListDateTimeFieldRefInput<$PrismaModel>
    notIn?: Date[] | string[] | ListDateTimeFieldRefInput<$PrismaModel>
    lt?: Date | string | DateTimeFieldRefInput<$PrismaModel>
    lte?: Date | string | DateTimeFieldRefInput<$PrismaModel>
    gt?: Date | string | DateTimeFieldRefInput<$PrismaModel>
    gte?: Date | string | DateTimeFieldRefInput<$PrismaModel>
    not?: NestedDateTimeWithAggregatesFilter<$PrismaModel> | Date | string
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedDateTimeFilter<$PrismaModel>
    _max?: NestedDateTimeFilter<$PrismaModel>
  }

  export type TaskScalarRelationFilter = {
    is?: TaskWhereInput
    isNot?: TaskWhereInput
  }

  export type AgentProfileScalarRelationFilter = {
    is?: AgentProfileWhereInput
    isNot?: AgentProfileWhereInput
  }

  export type ClaimCountOrderByAggregateInput = {
    id?: SortOrder
    task_id?: SortOrder
    agent_id?: SortOrder
    developer_wallet?: SortOrder
    status?: SortOrder
    claim_token?: SortOrder
    held_amount?: SortOrder
    held_currency?: SortOrder
    expires_at?: SortOrder
    created_at?: SortOrder
    updated_at?: SortOrder
  }

  export type ClaimAvgOrderByAggregateInput = {
    held_amount?: SortOrder
  }

  export type ClaimMaxOrderByAggregateInput = {
    id?: SortOrder
    task_id?: SortOrder
    agent_id?: SortOrder
    developer_wallet?: SortOrder
    status?: SortOrder
    claim_token?: SortOrder
    held_amount?: SortOrder
    held_currency?: SortOrder
    expires_at?: SortOrder
    created_at?: SortOrder
    updated_at?: SortOrder
  }

  export type ClaimMinOrderByAggregateInput = {
    id?: SortOrder
    task_id?: SortOrder
    agent_id?: SortOrder
    developer_wallet?: SortOrder
    status?: SortOrder
    claim_token?: SortOrder
    held_amount?: SortOrder
    held_currency?: SortOrder
    expires_at?: SortOrder
    created_at?: SortOrder
    updated_at?: SortOrder
  }

  export type ClaimSumOrderByAggregateInput = {
    held_amount?: SortOrder
  }

  export type ClaimScalarRelationFilter = {
    is?: ClaimWhereInput
    isNot?: ClaimWhereInput
  }

  export type JudgeResultListRelationFilter = {
    every?: JudgeResultWhereInput
    some?: JudgeResultWhereInput
    none?: JudgeResultWhereInput
  }

  export type JudgeResultOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type SubmissionCountOrderByAggregateInput = {
    id?: SortOrder
    task_id?: SortOrder
    claim_id?: SortOrder
    status?: SortOrder
    deliverables?: SortOrder
    estimated_judge_complete_at?: SortOrder
    created_at?: SortOrder
    updated_at?: SortOrder
  }

  export type SubmissionMaxOrderByAggregateInput = {
    id?: SortOrder
    task_id?: SortOrder
    claim_id?: SortOrder
    status?: SortOrder
    estimated_judge_complete_at?: SortOrder
    created_at?: SortOrder
    updated_at?: SortOrder
  }

  export type SubmissionMinOrderByAggregateInput = {
    id?: SortOrder
    task_id?: SortOrder
    claim_id?: SortOrder
    status?: SortOrder
    estimated_judge_complete_at?: SortOrder
    created_at?: SortOrder
    updated_at?: SortOrder
  }
  export type JsonNullableFilter<$PrismaModel = never> =
    | PatchUndefined<
        Either<Required<JsonNullableFilterBase<$PrismaModel>>, Exclude<keyof Required<JsonNullableFilterBase<$PrismaModel>>, 'path'>>,
        Required<JsonNullableFilterBase<$PrismaModel>>
      >
    | OptionalFlat<Omit<Required<JsonNullableFilterBase<$PrismaModel>>, 'path'>>

  export type JsonNullableFilterBase<$PrismaModel = never> = {
    equals?: InputJsonValue | JsonFieldRefInput<$PrismaModel> | JsonNullValueFilter
    path?: string[]
    mode?: QueryMode | EnumQueryModeFieldRefInput<$PrismaModel>
    string_contains?: string | StringFieldRefInput<$PrismaModel>
    string_starts_with?: string | StringFieldRefInput<$PrismaModel>
    string_ends_with?: string | StringFieldRefInput<$PrismaModel>
    array_starts_with?: InputJsonValue | JsonFieldRefInput<$PrismaModel> | null
    array_ends_with?: InputJsonValue | JsonFieldRefInput<$PrismaModel> | null
    array_contains?: InputJsonValue | JsonFieldRefInput<$PrismaModel> | null
    lt?: InputJsonValue | JsonFieldRefInput<$PrismaModel>
    lte?: InputJsonValue | JsonFieldRefInput<$PrismaModel>
    gt?: InputJsonValue | JsonFieldRefInput<$PrismaModel>
    gte?: InputJsonValue | JsonFieldRefInput<$PrismaModel>
    not?: InputJsonValue | JsonFieldRefInput<$PrismaModel> | JsonNullValueFilter
  }

  export type SubmissionScalarRelationFilter = {
    is?: SubmissionWhereInput
    isNot?: SubmissionWhereInput
  }

  export type JudgeResultCountOrderByAggregateInput = {
    id?: SortOrder
    submission_id?: SortOrder
    overall_result?: SortOrder
    tests?: SortOrder
    artifacts?: SortOrder
    error_classification?: SortOrder
    error_signature?: SortOrder
    retryable?: SortOrder
    resource_usage?: SortOrder
    judge_completed_at?: SortOrder
  }

  export type JudgeResultMaxOrderByAggregateInput = {
    id?: SortOrder
    submission_id?: SortOrder
    overall_result?: SortOrder
    error_classification?: SortOrder
    error_signature?: SortOrder
    retryable?: SortOrder
    judge_completed_at?: SortOrder
  }

  export type JudgeResultMinOrderByAggregateInput = {
    id?: SortOrder
    submission_id?: SortOrder
    overall_result?: SortOrder
    error_classification?: SortOrder
    error_signature?: SortOrder
    retryable?: SortOrder
    judge_completed_at?: SortOrder
  }
  export type JsonNullableWithAggregatesFilter<$PrismaModel = never> =
    | PatchUndefined<
        Either<Required<JsonNullableWithAggregatesFilterBase<$PrismaModel>>, Exclude<keyof Required<JsonNullableWithAggregatesFilterBase<$PrismaModel>>, 'path'>>,
        Required<JsonNullableWithAggregatesFilterBase<$PrismaModel>>
      >
    | OptionalFlat<Omit<Required<JsonNullableWithAggregatesFilterBase<$PrismaModel>>, 'path'>>

  export type JsonNullableWithAggregatesFilterBase<$PrismaModel = never> = {
    equals?: InputJsonValue | JsonFieldRefInput<$PrismaModel> | JsonNullValueFilter
    path?: string[]
    mode?: QueryMode | EnumQueryModeFieldRefInput<$PrismaModel>
    string_contains?: string | StringFieldRefInput<$PrismaModel>
    string_starts_with?: string | StringFieldRefInput<$PrismaModel>
    string_ends_with?: string | StringFieldRefInput<$PrismaModel>
    array_starts_with?: InputJsonValue | JsonFieldRefInput<$PrismaModel> | null
    array_ends_with?: InputJsonValue | JsonFieldRefInput<$PrismaModel> | null
    array_contains?: InputJsonValue | JsonFieldRefInput<$PrismaModel> | null
    lt?: InputJsonValue | JsonFieldRefInput<$PrismaModel>
    lte?: InputJsonValue | JsonFieldRefInput<$PrismaModel>
    gt?: InputJsonValue | JsonFieldRefInput<$PrismaModel>
    gte?: InputJsonValue | JsonFieldRefInput<$PrismaModel>
    not?: InputJsonValue | JsonFieldRefInput<$PrismaModel> | JsonNullValueFilter
    _count?: NestedIntNullableFilter<$PrismaModel>
    _min?: NestedJsonNullableFilter<$PrismaModel>
    _max?: NestedJsonNullableFilter<$PrismaModel>
  }

  export type AuditEventCountOrderByAggregateInput = {
    id?: SortOrder
    actorType?: SortOrder
    actorId?: SortOrder
    action?: SortOrder
    entityType?: SortOrder
    entityId?: SortOrder
    beforeState?: SortOrder
    afterState?: SortOrder
    reason?: SortOrder
    metadata?: SortOrder
    createdAt?: SortOrder
  }

  export type AuditEventMaxOrderByAggregateInput = {
    id?: SortOrder
    actorType?: SortOrder
    actorId?: SortOrder
    action?: SortOrder
    entityType?: SortOrder
    entityId?: SortOrder
    reason?: SortOrder
    createdAt?: SortOrder
  }

  export type AuditEventMinOrderByAggregateInput = {
    id?: SortOrder
    actorType?: SortOrder
    actorId?: SortOrder
    action?: SortOrder
    entityType?: SortOrder
    entityId?: SortOrder
    reason?: SortOrder
    createdAt?: SortOrder
  }

  export type LedgerEntryCountOrderByAggregateInput = {
    id?: SortOrder
    task_id?: SortOrder
    phase?: SortOrder
    idempotency_key?: SortOrder
    stripe_object_id?: SortOrder
    response_status?: SortOrder
    http_status?: SortOrder
    created_at?: SortOrder
    updated_at?: SortOrder
  }

  export type LedgerEntryAvgOrderByAggregateInput = {
    http_status?: SortOrder
  }

  export type LedgerEntryMaxOrderByAggregateInput = {
    id?: SortOrder
    task_id?: SortOrder
    phase?: SortOrder
    idempotency_key?: SortOrder
    stripe_object_id?: SortOrder
    response_status?: SortOrder
    http_status?: SortOrder
    created_at?: SortOrder
    updated_at?: SortOrder
  }

  export type LedgerEntryMinOrderByAggregateInput = {
    id?: SortOrder
    task_id?: SortOrder
    phase?: SortOrder
    idempotency_key?: SortOrder
    stripe_object_id?: SortOrder
    response_status?: SortOrder
    http_status?: SortOrder
    created_at?: SortOrder
    updated_at?: SortOrder
  }

  export type LedgerEntrySumOrderByAggregateInput = {
    http_status?: SortOrder
  }

  export type EnumAgentStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.AgentStatus | EnumAgentStatusFieldRefInput<$PrismaModel>
    in?: $Enums.AgentStatus[] | ListEnumAgentStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.AgentStatus[] | ListEnumAgentStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumAgentStatusFilter<$PrismaModel> | $Enums.AgentStatus
  }

  export type TaskListRelationFilter = {
    every?: TaskWhereInput
    some?: TaskWhereInput
    none?: TaskWhereInput
  }

  export type ScoutReputationNullableScalarRelationFilter = {
    is?: ScoutReputationWhereInput | null
    isNot?: ScoutReputationWhereInput | null
  }

  export type ArbitrationVoteListRelationFilter = {
    every?: ArbitrationVoteWhereInput
    some?: ArbitrationVoteWhereInput
    none?: ArbitrationVoteWhereInput
  }

  export type AgentProjectListRelationFilter = {
    every?: AgentProjectWhereInput
    some?: AgentProjectWhereInput
    none?: AgentProjectWhereInput
  }

  export type SlashingEventListRelationFilter = {
    every?: SlashingEventWhereInput
    some?: SlashingEventWhereInput
    none?: SlashingEventWhereInput
  }

  export type TaskOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type ArbitrationVoteOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type AgentProjectOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type SlashingEventOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type AgentProfileCountOrderByAggregateInput = {
    id?: SortOrder
    agent_id?: SortOrder
    type?: SortOrder
    wallet_address?: SortOrder
    status?: SortOrder
    capabilities?: SortOrder
    contact_endpoints?: SortOrder
    discovery_source?: SortOrder
    created_at?: SortOrder
    updated_at?: SortOrder
    crypto_address?: SortOrder
    mcp_endpoint?: SortOrder
    staked_amount?: SortOrder
    tier?: SortOrder
  }

  export type AgentProfileAvgOrderByAggregateInput = {
    staked_amount?: SortOrder
  }

  export type AgentProfileMaxOrderByAggregateInput = {
    id?: SortOrder
    agent_id?: SortOrder
    type?: SortOrder
    wallet_address?: SortOrder
    status?: SortOrder
    discovery_source?: SortOrder
    created_at?: SortOrder
    updated_at?: SortOrder
    crypto_address?: SortOrder
    mcp_endpoint?: SortOrder
    staked_amount?: SortOrder
    tier?: SortOrder
  }

  export type AgentProfileMinOrderByAggregateInput = {
    id?: SortOrder
    agent_id?: SortOrder
    type?: SortOrder
    wallet_address?: SortOrder
    status?: SortOrder
    discovery_source?: SortOrder
    created_at?: SortOrder
    updated_at?: SortOrder
    crypto_address?: SortOrder
    mcp_endpoint?: SortOrder
    staked_amount?: SortOrder
    tier?: SortOrder
  }

  export type AgentProfileSumOrderByAggregateInput = {
    staked_amount?: SortOrder
  }

  export type EnumAgentStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.AgentStatus | EnumAgentStatusFieldRefInput<$PrismaModel>
    in?: $Enums.AgentStatus[] | ListEnumAgentStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.AgentStatus[] | ListEnumAgentStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumAgentStatusWithAggregatesFilter<$PrismaModel> | $Enums.AgentStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumAgentStatusFilter<$PrismaModel>
    _max?: NestedEnumAgentStatusFilter<$PrismaModel>
  }

  export type AffiliateLedgerCountOrderByAggregateInput = {
    id?: SortOrder
    scout_id?: SortOrder
    task_id?: SortOrder
    amount?: SortOrder
    currency?: SortOrder
    status?: SortOrder
    created_at?: SortOrder
    updated_at?: SortOrder
  }

  export type AffiliateLedgerAvgOrderByAggregateInput = {
    amount?: SortOrder
  }

  export type AffiliateLedgerMaxOrderByAggregateInput = {
    id?: SortOrder
    scout_id?: SortOrder
    task_id?: SortOrder
    amount?: SortOrder
    currency?: SortOrder
    status?: SortOrder
    created_at?: SortOrder
    updated_at?: SortOrder
  }

  export type AffiliateLedgerMinOrderByAggregateInput = {
    id?: SortOrder
    scout_id?: SortOrder
    task_id?: SortOrder
    amount?: SortOrder
    currency?: SortOrder
    status?: SortOrder
    created_at?: SortOrder
    updated_at?: SortOrder
  }

  export type AffiliateLedgerSumOrderByAggregateInput = {
    amount?: SortOrder
  }

  export type ScoutReputationCountOrderByAggregateInput = {
    id?: SortOrder
    scout_id?: SortOrder
    successful_conversions?: SortOrder
    spam_score?: SortOrder
    chargeback_count?: SortOrder
    created_at?: SortOrder
    updated_at?: SortOrder
  }

  export type ScoutReputationAvgOrderByAggregateInput = {
    successful_conversions?: SortOrder
    spam_score?: SortOrder
    chargeback_count?: SortOrder
  }

  export type ScoutReputationMaxOrderByAggregateInput = {
    id?: SortOrder
    scout_id?: SortOrder
    successful_conversions?: SortOrder
    spam_score?: SortOrder
    chargeback_count?: SortOrder
    created_at?: SortOrder
    updated_at?: SortOrder
  }

  export type ScoutReputationMinOrderByAggregateInput = {
    id?: SortOrder
    scout_id?: SortOrder
    successful_conversions?: SortOrder
    spam_score?: SortOrder
    chargeback_count?: SortOrder
    created_at?: SortOrder
    updated_at?: SortOrder
  }

  export type ScoutReputationSumOrderByAggregateInput = {
    successful_conversions?: SortOrder
    spam_score?: SortOrder
    chargeback_count?: SortOrder
  }

  export type IntNullableFilter<$PrismaModel = never> = {
    equals?: number | IntFieldRefInput<$PrismaModel> | null
    in?: number[] | ListIntFieldRefInput<$PrismaModel> | null
    notIn?: number[] | ListIntFieldRefInput<$PrismaModel> | null
    lt?: number | IntFieldRefInput<$PrismaModel>
    lte?: number | IntFieldRefInput<$PrismaModel>
    gt?: number | IntFieldRefInput<$PrismaModel>
    gte?: number | IntFieldRefInput<$PrismaModel>
    not?: NestedIntNullableFilter<$PrismaModel> | number | null
  }

  export type FloatNullableFilter<$PrismaModel = never> = {
    equals?: number | FloatFieldRefInput<$PrismaModel> | null
    in?: number[] | ListFloatFieldRefInput<$PrismaModel> | null
    notIn?: number[] | ListFloatFieldRefInput<$PrismaModel> | null
    lt?: number | FloatFieldRefInput<$PrismaModel>
    lte?: number | FloatFieldRefInput<$PrismaModel>
    gt?: number | FloatFieldRefInput<$PrismaModel>
    gte?: number | FloatFieldRefInput<$PrismaModel>
    not?: NestedFloatNullableFilter<$PrismaModel> | number | null
  }

  export type BidProposalTask_idAgent_idCompoundUniqueInput = {
    task_id: string
    agent_id: string
  }

  export type BidProposalCountOrderByAggregateInput = {
    id?: SortOrder
    task_id?: SortOrder
    agent_id?: SortOrder
    proposed_reward?: SortOrder
    estimated_duration_hours?: SortOrder
    quality_guarantee?: SortOrder
    status?: SortOrder
    counter_offer_amount?: SortOrder
    broker_agent_id?: SortOrder
    broker_fee_percentage?: SortOrder
    created_at?: SortOrder
    updated_at?: SortOrder
  }

  export type BidProposalAvgOrderByAggregateInput = {
    proposed_reward?: SortOrder
    estimated_duration_hours?: SortOrder
    counter_offer_amount?: SortOrder
    broker_fee_percentage?: SortOrder
  }

  export type BidProposalMaxOrderByAggregateInput = {
    id?: SortOrder
    task_id?: SortOrder
    agent_id?: SortOrder
    proposed_reward?: SortOrder
    estimated_duration_hours?: SortOrder
    quality_guarantee?: SortOrder
    status?: SortOrder
    counter_offer_amount?: SortOrder
    broker_agent_id?: SortOrder
    broker_fee_percentage?: SortOrder
    created_at?: SortOrder
    updated_at?: SortOrder
  }

  export type BidProposalMinOrderByAggregateInput = {
    id?: SortOrder
    task_id?: SortOrder
    agent_id?: SortOrder
    proposed_reward?: SortOrder
    estimated_duration_hours?: SortOrder
    quality_guarantee?: SortOrder
    status?: SortOrder
    counter_offer_amount?: SortOrder
    broker_agent_id?: SortOrder
    broker_fee_percentage?: SortOrder
    created_at?: SortOrder
    updated_at?: SortOrder
  }

  export type BidProposalSumOrderByAggregateInput = {
    proposed_reward?: SortOrder
    estimated_duration_hours?: SortOrder
    counter_offer_amount?: SortOrder
    broker_fee_percentage?: SortOrder
  }

  export type IntNullableWithAggregatesFilter<$PrismaModel = never> = {
    equals?: number | IntFieldRefInput<$PrismaModel> | null
    in?: number[] | ListIntFieldRefInput<$PrismaModel> | null
    notIn?: number[] | ListIntFieldRefInput<$PrismaModel> | null
    lt?: number | IntFieldRefInput<$PrismaModel>
    lte?: number | IntFieldRefInput<$PrismaModel>
    gt?: number | IntFieldRefInput<$PrismaModel>
    gte?: number | IntFieldRefInput<$PrismaModel>
    not?: NestedIntNullableWithAggregatesFilter<$PrismaModel> | number | null
    _count?: NestedIntNullableFilter<$PrismaModel>
    _avg?: NestedFloatNullableFilter<$PrismaModel>
    _sum?: NestedIntNullableFilter<$PrismaModel>
    _min?: NestedIntNullableFilter<$PrismaModel>
    _max?: NestedIntNullableFilter<$PrismaModel>
  }

  export type FloatNullableWithAggregatesFilter<$PrismaModel = never> = {
    equals?: number | FloatFieldRefInput<$PrismaModel> | null
    in?: number[] | ListFloatFieldRefInput<$PrismaModel> | null
    notIn?: number[] | ListFloatFieldRefInput<$PrismaModel> | null
    lt?: number | FloatFieldRefInput<$PrismaModel>
    lte?: number | FloatFieldRefInput<$PrismaModel>
    gt?: number | FloatFieldRefInput<$PrismaModel>
    gte?: number | FloatFieldRefInput<$PrismaModel>
    not?: NestedFloatNullableWithAggregatesFilter<$PrismaModel> | number | null
    _count?: NestedIntNullableFilter<$PrismaModel>
    _avg?: NestedFloatNullableFilter<$PrismaModel>
    _sum?: NestedFloatNullableFilter<$PrismaModel>
    _min?: NestedFloatNullableFilter<$PrismaModel>
    _max?: NestedFloatNullableFilter<$PrismaModel>
  }

  export type AgentWebhookTask_idAgent_idCompoundUniqueInput = {
    task_id: string
    agent_id: string
  }

  export type AgentWebhookCountOrderByAggregateInput = {
    id?: SortOrder
    task_id?: SortOrder
    agent_id?: SortOrder
    webhook_url?: SortOrder
    events?: SortOrder
    created_at?: SortOrder
    updated_at?: SortOrder
  }

  export type AgentWebhookMaxOrderByAggregateInput = {
    id?: SortOrder
    task_id?: SortOrder
    agent_id?: SortOrder
    webhook_url?: SortOrder
    created_at?: SortOrder
    updated_at?: SortOrder
  }

  export type AgentWebhookMinOrderByAggregateInput = {
    id?: SortOrder
    task_id?: SortOrder
    agent_id?: SortOrder
    webhook_url?: SortOrder
    created_at?: SortOrder
    updated_at?: SortOrder
  }

  export type ArbitrationCountOrderByAggregateInput = {
    id?: SortOrder
    task_id?: SortOrder
    builder_id?: SortOrder
    evaluator_id?: SortOrder
    status?: SortOrder
    builder_evidence?: SortOrder
    evaluator_reason?: SortOrder
    winning_party?: SortOrder
    created_at?: SortOrder
    updated_at?: SortOrder
  }

  export type ArbitrationMaxOrderByAggregateInput = {
    id?: SortOrder
    task_id?: SortOrder
    builder_id?: SortOrder
    evaluator_id?: SortOrder
    status?: SortOrder
    builder_evidence?: SortOrder
    evaluator_reason?: SortOrder
    winning_party?: SortOrder
    created_at?: SortOrder
    updated_at?: SortOrder
  }

  export type ArbitrationMinOrderByAggregateInput = {
    id?: SortOrder
    task_id?: SortOrder
    builder_id?: SortOrder
    evaluator_id?: SortOrder
    status?: SortOrder
    builder_evidence?: SortOrder
    evaluator_reason?: SortOrder
    winning_party?: SortOrder
    created_at?: SortOrder
    updated_at?: SortOrder
  }

  export type ArbitrationScalarRelationFilter = {
    is?: ArbitrationWhereInput
    isNot?: ArbitrationWhereInput
  }

  export type ArbitrationVoteArbitration_idJudge_idCompoundUniqueInput = {
    arbitration_id: string
    judge_id: string
  }

  export type ArbitrationVoteCountOrderByAggregateInput = {
    id?: SortOrder
    arbitration_id?: SortOrder
    judge_id?: SortOrder
    vote_for?: SortOrder
    reasoning?: SortOrder
    created_at?: SortOrder
  }

  export type ArbitrationVoteMaxOrderByAggregateInput = {
    id?: SortOrder
    arbitration_id?: SortOrder
    judge_id?: SortOrder
    vote_for?: SortOrder
    reasoning?: SortOrder
    created_at?: SortOrder
  }

  export type ArbitrationVoteMinOrderByAggregateInput = {
    id?: SortOrder
    arbitration_id?: SortOrder
    judge_id?: SortOrder
    vote_for?: SortOrder
    reasoning?: SortOrder
    created_at?: SortOrder
  }

  export type TokenSaleListRelationFilter = {
    every?: TokenSaleWhereInput
    some?: TokenSaleWhereInput
    none?: TokenSaleWhereInput
  }

  export type TokenSaleOrderByRelationAggregateInput = {
    _count?: SortOrder
  }

  export type AgentProjectCountOrderByAggregateInput = {
    id?: SortOrder
    creator_agent_id?: SortOrder
    name?: SortOrder
    ticker?: SortOrder
    description?: SortOrder
    whitepaper_url?: SortOrder
    target_raise?: SortOrder
    total_supply?: SortOrder
    status?: SortOrder
    created_at?: SortOrder
    updated_at?: SortOrder
  }

  export type AgentProjectAvgOrderByAggregateInput = {
    target_raise?: SortOrder
    total_supply?: SortOrder
  }

  export type AgentProjectMaxOrderByAggregateInput = {
    id?: SortOrder
    creator_agent_id?: SortOrder
    name?: SortOrder
    ticker?: SortOrder
    description?: SortOrder
    whitepaper_url?: SortOrder
    target_raise?: SortOrder
    total_supply?: SortOrder
    status?: SortOrder
    created_at?: SortOrder
    updated_at?: SortOrder
  }

  export type AgentProjectMinOrderByAggregateInput = {
    id?: SortOrder
    creator_agent_id?: SortOrder
    name?: SortOrder
    ticker?: SortOrder
    description?: SortOrder
    whitepaper_url?: SortOrder
    target_raise?: SortOrder
    total_supply?: SortOrder
    status?: SortOrder
    created_at?: SortOrder
    updated_at?: SortOrder
  }

  export type AgentProjectSumOrderByAggregateInput = {
    target_raise?: SortOrder
    total_supply?: SortOrder
  }

  export type AgentProjectScalarRelationFilter = {
    is?: AgentProjectWhereInput
    isNot?: AgentProjectWhereInput
  }

  export type TokenSaleCountOrderByAggregateInput = {
    id?: SortOrder
    project_id?: SortOrder
    investor_id?: SortOrder
    usdc_amount?: SortOrder
    tokens_received?: SortOrder
    price_per_token?: SortOrder
    created_at?: SortOrder
  }

  export type TokenSaleAvgOrderByAggregateInput = {
    usdc_amount?: SortOrder
    tokens_received?: SortOrder
    price_per_token?: SortOrder
  }

  export type TokenSaleMaxOrderByAggregateInput = {
    id?: SortOrder
    project_id?: SortOrder
    investor_id?: SortOrder
    usdc_amount?: SortOrder
    tokens_received?: SortOrder
    price_per_token?: SortOrder
    created_at?: SortOrder
  }

  export type TokenSaleMinOrderByAggregateInput = {
    id?: SortOrder
    project_id?: SortOrder
    investor_id?: SortOrder
    usdc_amount?: SortOrder
    tokens_received?: SortOrder
    price_per_token?: SortOrder
    created_at?: SortOrder
  }

  export type TokenSaleSumOrderByAggregateInput = {
    usdc_amount?: SortOrder
    tokens_received?: SortOrder
    price_per_token?: SortOrder
  }

  export type SlashingEventCountOrderByAggregateInput = {
    id?: SortOrder
    agent_id?: SortOrder
    arbitration_id?: SortOrder
    slashed_amount?: SortOrder
    scout_reward?: SortOrder
    treasury_reward?: SortOrder
    reason?: SortOrder
    created_at?: SortOrder
  }

  export type SlashingEventAvgOrderByAggregateInput = {
    slashed_amount?: SortOrder
    scout_reward?: SortOrder
    treasury_reward?: SortOrder
  }

  export type SlashingEventMaxOrderByAggregateInput = {
    id?: SortOrder
    agent_id?: SortOrder
    arbitration_id?: SortOrder
    slashed_amount?: SortOrder
    scout_reward?: SortOrder
    treasury_reward?: SortOrder
    reason?: SortOrder
    created_at?: SortOrder
  }

  export type SlashingEventMinOrderByAggregateInput = {
    id?: SortOrder
    agent_id?: SortOrder
    arbitration_id?: SortOrder
    slashed_amount?: SortOrder
    scout_reward?: SortOrder
    treasury_reward?: SortOrder
    reason?: SortOrder
    created_at?: SortOrder
  }

  export type SlashingEventSumOrderByAggregateInput = {
    slashed_amount?: SortOrder
    scout_reward?: SortOrder
    treasury_reward?: SortOrder
  }

  export type TaskCreaterequired_stackInput = {
    set: string[]
  }

  export type AgentProfileCreateNestedOneWithoutTasks_as_scoutInput = {
    create?: XOR<AgentProfileCreateWithoutTasks_as_scoutInput, AgentProfileUncheckedCreateWithoutTasks_as_scoutInput>
    connectOrCreate?: AgentProfileCreateOrConnectWithoutTasks_as_scoutInput
    connect?: AgentProfileWhereUniqueInput
  }

  export type AgentProfileCreateNestedOneWithoutTasks_as_builderInput = {
    create?: XOR<AgentProfileCreateWithoutTasks_as_builderInput, AgentProfileUncheckedCreateWithoutTasks_as_builderInput>
    connectOrCreate?: AgentProfileCreateOrConnectWithoutTasks_as_builderInput
    connect?: AgentProfileWhereUniqueInput
  }

  export type ClaimCreateNestedManyWithoutTaskInput = {
    create?: XOR<ClaimCreateWithoutTaskInput, ClaimUncheckedCreateWithoutTaskInput> | ClaimCreateWithoutTaskInput[] | ClaimUncheckedCreateWithoutTaskInput[]
    connectOrCreate?: ClaimCreateOrConnectWithoutTaskInput | ClaimCreateOrConnectWithoutTaskInput[]
    createMany?: ClaimCreateManyTaskInputEnvelope
    connect?: ClaimWhereUniqueInput | ClaimWhereUniqueInput[]
  }

  export type SubmissionCreateNestedManyWithoutTaskInput = {
    create?: XOR<SubmissionCreateWithoutTaskInput, SubmissionUncheckedCreateWithoutTaskInput> | SubmissionCreateWithoutTaskInput[] | SubmissionUncheckedCreateWithoutTaskInput[]
    connectOrCreate?: SubmissionCreateOrConnectWithoutTaskInput | SubmissionCreateOrConnectWithoutTaskInput[]
    createMany?: SubmissionCreateManyTaskInputEnvelope
    connect?: SubmissionWhereUniqueInput | SubmissionWhereUniqueInput[]
  }

  export type AffiliateLedgerCreateNestedManyWithoutTaskInput = {
    create?: XOR<AffiliateLedgerCreateWithoutTaskInput, AffiliateLedgerUncheckedCreateWithoutTaskInput> | AffiliateLedgerCreateWithoutTaskInput[] | AffiliateLedgerUncheckedCreateWithoutTaskInput[]
    connectOrCreate?: AffiliateLedgerCreateOrConnectWithoutTaskInput | AffiliateLedgerCreateOrConnectWithoutTaskInput[]
    createMany?: AffiliateLedgerCreateManyTaskInputEnvelope
    connect?: AffiliateLedgerWhereUniqueInput | AffiliateLedgerWhereUniqueInput[]
  }

  export type BidProposalCreateNestedManyWithoutTaskInput = {
    create?: XOR<BidProposalCreateWithoutTaskInput, BidProposalUncheckedCreateWithoutTaskInput> | BidProposalCreateWithoutTaskInput[] | BidProposalUncheckedCreateWithoutTaskInput[]
    connectOrCreate?: BidProposalCreateOrConnectWithoutTaskInput | BidProposalCreateOrConnectWithoutTaskInput[]
    createMany?: BidProposalCreateManyTaskInputEnvelope
    connect?: BidProposalWhereUniqueInput | BidProposalWhereUniqueInput[]
  }

  export type ArbitrationCreateNestedManyWithoutTaskInput = {
    create?: XOR<ArbitrationCreateWithoutTaskInput, ArbitrationUncheckedCreateWithoutTaskInput> | ArbitrationCreateWithoutTaskInput[] | ArbitrationUncheckedCreateWithoutTaskInput[]
    connectOrCreate?: ArbitrationCreateOrConnectWithoutTaskInput | ArbitrationCreateOrConnectWithoutTaskInput[]
    createMany?: ArbitrationCreateManyTaskInputEnvelope
    connect?: ArbitrationWhereUniqueInput | ArbitrationWhereUniqueInput[]
  }

  export type ClaimUncheckedCreateNestedManyWithoutTaskInput = {
    create?: XOR<ClaimCreateWithoutTaskInput, ClaimUncheckedCreateWithoutTaskInput> | ClaimCreateWithoutTaskInput[] | ClaimUncheckedCreateWithoutTaskInput[]
    connectOrCreate?: ClaimCreateOrConnectWithoutTaskInput | ClaimCreateOrConnectWithoutTaskInput[]
    createMany?: ClaimCreateManyTaskInputEnvelope
    connect?: ClaimWhereUniqueInput | ClaimWhereUniqueInput[]
  }

  export type SubmissionUncheckedCreateNestedManyWithoutTaskInput = {
    create?: XOR<SubmissionCreateWithoutTaskInput, SubmissionUncheckedCreateWithoutTaskInput> | SubmissionCreateWithoutTaskInput[] | SubmissionUncheckedCreateWithoutTaskInput[]
    connectOrCreate?: SubmissionCreateOrConnectWithoutTaskInput | SubmissionCreateOrConnectWithoutTaskInput[]
    createMany?: SubmissionCreateManyTaskInputEnvelope
    connect?: SubmissionWhereUniqueInput | SubmissionWhereUniqueInput[]
  }

  export type AffiliateLedgerUncheckedCreateNestedManyWithoutTaskInput = {
    create?: XOR<AffiliateLedgerCreateWithoutTaskInput, AffiliateLedgerUncheckedCreateWithoutTaskInput> | AffiliateLedgerCreateWithoutTaskInput[] | AffiliateLedgerUncheckedCreateWithoutTaskInput[]
    connectOrCreate?: AffiliateLedgerCreateOrConnectWithoutTaskInput | AffiliateLedgerCreateOrConnectWithoutTaskInput[]
    createMany?: AffiliateLedgerCreateManyTaskInputEnvelope
    connect?: AffiliateLedgerWhereUniqueInput | AffiliateLedgerWhereUniqueInput[]
  }

  export type BidProposalUncheckedCreateNestedManyWithoutTaskInput = {
    create?: XOR<BidProposalCreateWithoutTaskInput, BidProposalUncheckedCreateWithoutTaskInput> | BidProposalCreateWithoutTaskInput[] | BidProposalUncheckedCreateWithoutTaskInput[]
    connectOrCreate?: BidProposalCreateOrConnectWithoutTaskInput | BidProposalCreateOrConnectWithoutTaskInput[]
    createMany?: BidProposalCreateManyTaskInputEnvelope
    connect?: BidProposalWhereUniqueInput | BidProposalWhereUniqueInput[]
  }

  export type ArbitrationUncheckedCreateNestedManyWithoutTaskInput = {
    create?: XOR<ArbitrationCreateWithoutTaskInput, ArbitrationUncheckedCreateWithoutTaskInput> | ArbitrationCreateWithoutTaskInput[] | ArbitrationUncheckedCreateWithoutTaskInput[]
    connectOrCreate?: ArbitrationCreateOrConnectWithoutTaskInput | ArbitrationCreateOrConnectWithoutTaskInput[]
    createMany?: ArbitrationCreateManyTaskInputEnvelope
    connect?: ArbitrationWhereUniqueInput | ArbitrationWhereUniqueInput[]
  }

  export type StringFieldUpdateOperationsInput = {
    set?: string
  }

  export type FloatFieldUpdateOperationsInput = {
    set?: number
    increment?: number
    decrement?: number
    multiply?: number
    divide?: number
  }

  export type NullableStringFieldUpdateOperationsInput = {
    set?: string | null
  }

  export type IntFieldUpdateOperationsInput = {
    set?: number
    increment?: number
    decrement?: number
    multiply?: number
    divide?: number
  }

  export type TaskUpdaterequired_stackInput = {
    set?: string[]
    push?: string | string[]
  }

  export type NullableDateTimeFieldUpdateOperationsInput = {
    set?: Date | string | null
  }

  export type BoolFieldUpdateOperationsInput = {
    set?: boolean
  }

  export type DateTimeFieldUpdateOperationsInput = {
    set?: Date | string
  }

  export type AgentProfileUpdateOneWithoutTasks_as_scoutNestedInput = {
    create?: XOR<AgentProfileCreateWithoutTasks_as_scoutInput, AgentProfileUncheckedCreateWithoutTasks_as_scoutInput>
    connectOrCreate?: AgentProfileCreateOrConnectWithoutTasks_as_scoutInput
    upsert?: AgentProfileUpsertWithoutTasks_as_scoutInput
    disconnect?: AgentProfileWhereInput | boolean
    delete?: AgentProfileWhereInput | boolean
    connect?: AgentProfileWhereUniqueInput
    update?: XOR<XOR<AgentProfileUpdateToOneWithWhereWithoutTasks_as_scoutInput, AgentProfileUpdateWithoutTasks_as_scoutInput>, AgentProfileUncheckedUpdateWithoutTasks_as_scoutInput>
  }

  export type AgentProfileUpdateOneWithoutTasks_as_builderNestedInput = {
    create?: XOR<AgentProfileCreateWithoutTasks_as_builderInput, AgentProfileUncheckedCreateWithoutTasks_as_builderInput>
    connectOrCreate?: AgentProfileCreateOrConnectWithoutTasks_as_builderInput
    upsert?: AgentProfileUpsertWithoutTasks_as_builderInput
    disconnect?: AgentProfileWhereInput | boolean
    delete?: AgentProfileWhereInput | boolean
    connect?: AgentProfileWhereUniqueInput
    update?: XOR<XOR<AgentProfileUpdateToOneWithWhereWithoutTasks_as_builderInput, AgentProfileUpdateWithoutTasks_as_builderInput>, AgentProfileUncheckedUpdateWithoutTasks_as_builderInput>
  }

  export type ClaimUpdateManyWithoutTaskNestedInput = {
    create?: XOR<ClaimCreateWithoutTaskInput, ClaimUncheckedCreateWithoutTaskInput> | ClaimCreateWithoutTaskInput[] | ClaimUncheckedCreateWithoutTaskInput[]
    connectOrCreate?: ClaimCreateOrConnectWithoutTaskInput | ClaimCreateOrConnectWithoutTaskInput[]
    upsert?: ClaimUpsertWithWhereUniqueWithoutTaskInput | ClaimUpsertWithWhereUniqueWithoutTaskInput[]
    createMany?: ClaimCreateManyTaskInputEnvelope
    set?: ClaimWhereUniqueInput | ClaimWhereUniqueInput[]
    disconnect?: ClaimWhereUniqueInput | ClaimWhereUniqueInput[]
    delete?: ClaimWhereUniqueInput | ClaimWhereUniqueInput[]
    connect?: ClaimWhereUniqueInput | ClaimWhereUniqueInput[]
    update?: ClaimUpdateWithWhereUniqueWithoutTaskInput | ClaimUpdateWithWhereUniqueWithoutTaskInput[]
    updateMany?: ClaimUpdateManyWithWhereWithoutTaskInput | ClaimUpdateManyWithWhereWithoutTaskInput[]
    deleteMany?: ClaimScalarWhereInput | ClaimScalarWhereInput[]
  }

  export type SubmissionUpdateManyWithoutTaskNestedInput = {
    create?: XOR<SubmissionCreateWithoutTaskInput, SubmissionUncheckedCreateWithoutTaskInput> | SubmissionCreateWithoutTaskInput[] | SubmissionUncheckedCreateWithoutTaskInput[]
    connectOrCreate?: SubmissionCreateOrConnectWithoutTaskInput | SubmissionCreateOrConnectWithoutTaskInput[]
    upsert?: SubmissionUpsertWithWhereUniqueWithoutTaskInput | SubmissionUpsertWithWhereUniqueWithoutTaskInput[]
    createMany?: SubmissionCreateManyTaskInputEnvelope
    set?: SubmissionWhereUniqueInput | SubmissionWhereUniqueInput[]
    disconnect?: SubmissionWhereUniqueInput | SubmissionWhereUniqueInput[]
    delete?: SubmissionWhereUniqueInput | SubmissionWhereUniqueInput[]
    connect?: SubmissionWhereUniqueInput | SubmissionWhereUniqueInput[]
    update?: SubmissionUpdateWithWhereUniqueWithoutTaskInput | SubmissionUpdateWithWhereUniqueWithoutTaskInput[]
    updateMany?: SubmissionUpdateManyWithWhereWithoutTaskInput | SubmissionUpdateManyWithWhereWithoutTaskInput[]
    deleteMany?: SubmissionScalarWhereInput | SubmissionScalarWhereInput[]
  }

  export type AffiliateLedgerUpdateManyWithoutTaskNestedInput = {
    create?: XOR<AffiliateLedgerCreateWithoutTaskInput, AffiliateLedgerUncheckedCreateWithoutTaskInput> | AffiliateLedgerCreateWithoutTaskInput[] | AffiliateLedgerUncheckedCreateWithoutTaskInput[]
    connectOrCreate?: AffiliateLedgerCreateOrConnectWithoutTaskInput | AffiliateLedgerCreateOrConnectWithoutTaskInput[]
    upsert?: AffiliateLedgerUpsertWithWhereUniqueWithoutTaskInput | AffiliateLedgerUpsertWithWhereUniqueWithoutTaskInput[]
    createMany?: AffiliateLedgerCreateManyTaskInputEnvelope
    set?: AffiliateLedgerWhereUniqueInput | AffiliateLedgerWhereUniqueInput[]
    disconnect?: AffiliateLedgerWhereUniqueInput | AffiliateLedgerWhereUniqueInput[]
    delete?: AffiliateLedgerWhereUniqueInput | AffiliateLedgerWhereUniqueInput[]
    connect?: AffiliateLedgerWhereUniqueInput | AffiliateLedgerWhereUniqueInput[]
    update?: AffiliateLedgerUpdateWithWhereUniqueWithoutTaskInput | AffiliateLedgerUpdateWithWhereUniqueWithoutTaskInput[]
    updateMany?: AffiliateLedgerUpdateManyWithWhereWithoutTaskInput | AffiliateLedgerUpdateManyWithWhereWithoutTaskInput[]
    deleteMany?: AffiliateLedgerScalarWhereInput | AffiliateLedgerScalarWhereInput[]
  }

  export type BidProposalUpdateManyWithoutTaskNestedInput = {
    create?: XOR<BidProposalCreateWithoutTaskInput, BidProposalUncheckedCreateWithoutTaskInput> | BidProposalCreateWithoutTaskInput[] | BidProposalUncheckedCreateWithoutTaskInput[]
    connectOrCreate?: BidProposalCreateOrConnectWithoutTaskInput | BidProposalCreateOrConnectWithoutTaskInput[]
    upsert?: BidProposalUpsertWithWhereUniqueWithoutTaskInput | BidProposalUpsertWithWhereUniqueWithoutTaskInput[]
    createMany?: BidProposalCreateManyTaskInputEnvelope
    set?: BidProposalWhereUniqueInput | BidProposalWhereUniqueInput[]
    disconnect?: BidProposalWhereUniqueInput | BidProposalWhereUniqueInput[]
    delete?: BidProposalWhereUniqueInput | BidProposalWhereUniqueInput[]
    connect?: BidProposalWhereUniqueInput | BidProposalWhereUniqueInput[]
    update?: BidProposalUpdateWithWhereUniqueWithoutTaskInput | BidProposalUpdateWithWhereUniqueWithoutTaskInput[]
    updateMany?: BidProposalUpdateManyWithWhereWithoutTaskInput | BidProposalUpdateManyWithWhereWithoutTaskInput[]
    deleteMany?: BidProposalScalarWhereInput | BidProposalScalarWhereInput[]
  }

  export type ArbitrationUpdateManyWithoutTaskNestedInput = {
    create?: XOR<ArbitrationCreateWithoutTaskInput, ArbitrationUncheckedCreateWithoutTaskInput> | ArbitrationCreateWithoutTaskInput[] | ArbitrationUncheckedCreateWithoutTaskInput[]
    connectOrCreate?: ArbitrationCreateOrConnectWithoutTaskInput | ArbitrationCreateOrConnectWithoutTaskInput[]
    upsert?: ArbitrationUpsertWithWhereUniqueWithoutTaskInput | ArbitrationUpsertWithWhereUniqueWithoutTaskInput[]
    createMany?: ArbitrationCreateManyTaskInputEnvelope
    set?: ArbitrationWhereUniqueInput | ArbitrationWhereUniqueInput[]
    disconnect?: ArbitrationWhereUniqueInput | ArbitrationWhereUniqueInput[]
    delete?: ArbitrationWhereUniqueInput | ArbitrationWhereUniqueInput[]
    connect?: ArbitrationWhereUniqueInput | ArbitrationWhereUniqueInput[]
    update?: ArbitrationUpdateWithWhereUniqueWithoutTaskInput | ArbitrationUpdateWithWhereUniqueWithoutTaskInput[]
    updateMany?: ArbitrationUpdateManyWithWhereWithoutTaskInput | ArbitrationUpdateManyWithWhereWithoutTaskInput[]
    deleteMany?: ArbitrationScalarWhereInput | ArbitrationScalarWhereInput[]
  }

  export type ClaimUncheckedUpdateManyWithoutTaskNestedInput = {
    create?: XOR<ClaimCreateWithoutTaskInput, ClaimUncheckedCreateWithoutTaskInput> | ClaimCreateWithoutTaskInput[] | ClaimUncheckedCreateWithoutTaskInput[]
    connectOrCreate?: ClaimCreateOrConnectWithoutTaskInput | ClaimCreateOrConnectWithoutTaskInput[]
    upsert?: ClaimUpsertWithWhereUniqueWithoutTaskInput | ClaimUpsertWithWhereUniqueWithoutTaskInput[]
    createMany?: ClaimCreateManyTaskInputEnvelope
    set?: ClaimWhereUniqueInput | ClaimWhereUniqueInput[]
    disconnect?: ClaimWhereUniqueInput | ClaimWhereUniqueInput[]
    delete?: ClaimWhereUniqueInput | ClaimWhereUniqueInput[]
    connect?: ClaimWhereUniqueInput | ClaimWhereUniqueInput[]
    update?: ClaimUpdateWithWhereUniqueWithoutTaskInput | ClaimUpdateWithWhereUniqueWithoutTaskInput[]
    updateMany?: ClaimUpdateManyWithWhereWithoutTaskInput | ClaimUpdateManyWithWhereWithoutTaskInput[]
    deleteMany?: ClaimScalarWhereInput | ClaimScalarWhereInput[]
  }

  export type SubmissionUncheckedUpdateManyWithoutTaskNestedInput = {
    create?: XOR<SubmissionCreateWithoutTaskInput, SubmissionUncheckedCreateWithoutTaskInput> | SubmissionCreateWithoutTaskInput[] | SubmissionUncheckedCreateWithoutTaskInput[]
    connectOrCreate?: SubmissionCreateOrConnectWithoutTaskInput | SubmissionCreateOrConnectWithoutTaskInput[]
    upsert?: SubmissionUpsertWithWhereUniqueWithoutTaskInput | SubmissionUpsertWithWhereUniqueWithoutTaskInput[]
    createMany?: SubmissionCreateManyTaskInputEnvelope
    set?: SubmissionWhereUniqueInput | SubmissionWhereUniqueInput[]
    disconnect?: SubmissionWhereUniqueInput | SubmissionWhereUniqueInput[]
    delete?: SubmissionWhereUniqueInput | SubmissionWhereUniqueInput[]
    connect?: SubmissionWhereUniqueInput | SubmissionWhereUniqueInput[]
    update?: SubmissionUpdateWithWhereUniqueWithoutTaskInput | SubmissionUpdateWithWhereUniqueWithoutTaskInput[]
    updateMany?: SubmissionUpdateManyWithWhereWithoutTaskInput | SubmissionUpdateManyWithWhereWithoutTaskInput[]
    deleteMany?: SubmissionScalarWhereInput | SubmissionScalarWhereInput[]
  }

  export type AffiliateLedgerUncheckedUpdateManyWithoutTaskNestedInput = {
    create?: XOR<AffiliateLedgerCreateWithoutTaskInput, AffiliateLedgerUncheckedCreateWithoutTaskInput> | AffiliateLedgerCreateWithoutTaskInput[] | AffiliateLedgerUncheckedCreateWithoutTaskInput[]
    connectOrCreate?: AffiliateLedgerCreateOrConnectWithoutTaskInput | AffiliateLedgerCreateOrConnectWithoutTaskInput[]
    upsert?: AffiliateLedgerUpsertWithWhereUniqueWithoutTaskInput | AffiliateLedgerUpsertWithWhereUniqueWithoutTaskInput[]
    createMany?: AffiliateLedgerCreateManyTaskInputEnvelope
    set?: AffiliateLedgerWhereUniqueInput | AffiliateLedgerWhereUniqueInput[]
    disconnect?: AffiliateLedgerWhereUniqueInput | AffiliateLedgerWhereUniqueInput[]
    delete?: AffiliateLedgerWhereUniqueInput | AffiliateLedgerWhereUniqueInput[]
    connect?: AffiliateLedgerWhereUniqueInput | AffiliateLedgerWhereUniqueInput[]
    update?: AffiliateLedgerUpdateWithWhereUniqueWithoutTaskInput | AffiliateLedgerUpdateWithWhereUniqueWithoutTaskInput[]
    updateMany?: AffiliateLedgerUpdateManyWithWhereWithoutTaskInput | AffiliateLedgerUpdateManyWithWhereWithoutTaskInput[]
    deleteMany?: AffiliateLedgerScalarWhereInput | AffiliateLedgerScalarWhereInput[]
  }

  export type BidProposalUncheckedUpdateManyWithoutTaskNestedInput = {
    create?: XOR<BidProposalCreateWithoutTaskInput, BidProposalUncheckedCreateWithoutTaskInput> | BidProposalCreateWithoutTaskInput[] | BidProposalUncheckedCreateWithoutTaskInput[]
    connectOrCreate?: BidProposalCreateOrConnectWithoutTaskInput | BidProposalCreateOrConnectWithoutTaskInput[]
    upsert?: BidProposalUpsertWithWhereUniqueWithoutTaskInput | BidProposalUpsertWithWhereUniqueWithoutTaskInput[]
    createMany?: BidProposalCreateManyTaskInputEnvelope
    set?: BidProposalWhereUniqueInput | BidProposalWhereUniqueInput[]
    disconnect?: BidProposalWhereUniqueInput | BidProposalWhereUniqueInput[]
    delete?: BidProposalWhereUniqueInput | BidProposalWhereUniqueInput[]
    connect?: BidProposalWhereUniqueInput | BidProposalWhereUniqueInput[]
    update?: BidProposalUpdateWithWhereUniqueWithoutTaskInput | BidProposalUpdateWithWhereUniqueWithoutTaskInput[]
    updateMany?: BidProposalUpdateManyWithWhereWithoutTaskInput | BidProposalUpdateManyWithWhereWithoutTaskInput[]
    deleteMany?: BidProposalScalarWhereInput | BidProposalScalarWhereInput[]
  }

  export type ArbitrationUncheckedUpdateManyWithoutTaskNestedInput = {
    create?: XOR<ArbitrationCreateWithoutTaskInput, ArbitrationUncheckedCreateWithoutTaskInput> | ArbitrationCreateWithoutTaskInput[] | ArbitrationUncheckedCreateWithoutTaskInput[]
    connectOrCreate?: ArbitrationCreateOrConnectWithoutTaskInput | ArbitrationCreateOrConnectWithoutTaskInput[]
    upsert?: ArbitrationUpsertWithWhereUniqueWithoutTaskInput | ArbitrationUpsertWithWhereUniqueWithoutTaskInput[]
    createMany?: ArbitrationCreateManyTaskInputEnvelope
    set?: ArbitrationWhereUniqueInput | ArbitrationWhereUniqueInput[]
    disconnect?: ArbitrationWhereUniqueInput | ArbitrationWhereUniqueInput[]
    delete?: ArbitrationWhereUniqueInput | ArbitrationWhereUniqueInput[]
    connect?: ArbitrationWhereUniqueInput | ArbitrationWhereUniqueInput[]
    update?: ArbitrationUpdateWithWhereUniqueWithoutTaskInput | ArbitrationUpdateWithWhereUniqueWithoutTaskInput[]
    updateMany?: ArbitrationUpdateManyWithWhereWithoutTaskInput | ArbitrationUpdateManyWithWhereWithoutTaskInput[]
    deleteMany?: ArbitrationScalarWhereInput | ArbitrationScalarWhereInput[]
  }

  export type TaskCreateNestedOneWithoutClaimsInput = {
    create?: XOR<TaskCreateWithoutClaimsInput, TaskUncheckedCreateWithoutClaimsInput>
    connectOrCreate?: TaskCreateOrConnectWithoutClaimsInput
    connect?: TaskWhereUniqueInput
  }

  export type AgentProfileCreateNestedOneWithoutClaimsInput = {
    create?: XOR<AgentProfileCreateWithoutClaimsInput, AgentProfileUncheckedCreateWithoutClaimsInput>
    connectOrCreate?: AgentProfileCreateOrConnectWithoutClaimsInput
    connect?: AgentProfileWhereUniqueInput
  }

  export type SubmissionCreateNestedManyWithoutClaimInput = {
    create?: XOR<SubmissionCreateWithoutClaimInput, SubmissionUncheckedCreateWithoutClaimInput> | SubmissionCreateWithoutClaimInput[] | SubmissionUncheckedCreateWithoutClaimInput[]
    connectOrCreate?: SubmissionCreateOrConnectWithoutClaimInput | SubmissionCreateOrConnectWithoutClaimInput[]
    createMany?: SubmissionCreateManyClaimInputEnvelope
    connect?: SubmissionWhereUniqueInput | SubmissionWhereUniqueInput[]
  }

  export type SubmissionUncheckedCreateNestedManyWithoutClaimInput = {
    create?: XOR<SubmissionCreateWithoutClaimInput, SubmissionUncheckedCreateWithoutClaimInput> | SubmissionCreateWithoutClaimInput[] | SubmissionUncheckedCreateWithoutClaimInput[]
    connectOrCreate?: SubmissionCreateOrConnectWithoutClaimInput | SubmissionCreateOrConnectWithoutClaimInput[]
    createMany?: SubmissionCreateManyClaimInputEnvelope
    connect?: SubmissionWhereUniqueInput | SubmissionWhereUniqueInput[]
  }

  export type TaskUpdateOneRequiredWithoutClaimsNestedInput = {
    create?: XOR<TaskCreateWithoutClaimsInput, TaskUncheckedCreateWithoutClaimsInput>
    connectOrCreate?: TaskCreateOrConnectWithoutClaimsInput
    upsert?: TaskUpsertWithoutClaimsInput
    connect?: TaskWhereUniqueInput
    update?: XOR<XOR<TaskUpdateToOneWithWhereWithoutClaimsInput, TaskUpdateWithoutClaimsInput>, TaskUncheckedUpdateWithoutClaimsInput>
  }

  export type AgentProfileUpdateOneRequiredWithoutClaimsNestedInput = {
    create?: XOR<AgentProfileCreateWithoutClaimsInput, AgentProfileUncheckedCreateWithoutClaimsInput>
    connectOrCreate?: AgentProfileCreateOrConnectWithoutClaimsInput
    upsert?: AgentProfileUpsertWithoutClaimsInput
    connect?: AgentProfileWhereUniqueInput
    update?: XOR<XOR<AgentProfileUpdateToOneWithWhereWithoutClaimsInput, AgentProfileUpdateWithoutClaimsInput>, AgentProfileUncheckedUpdateWithoutClaimsInput>
  }

  export type SubmissionUpdateManyWithoutClaimNestedInput = {
    create?: XOR<SubmissionCreateWithoutClaimInput, SubmissionUncheckedCreateWithoutClaimInput> | SubmissionCreateWithoutClaimInput[] | SubmissionUncheckedCreateWithoutClaimInput[]
    connectOrCreate?: SubmissionCreateOrConnectWithoutClaimInput | SubmissionCreateOrConnectWithoutClaimInput[]
    upsert?: SubmissionUpsertWithWhereUniqueWithoutClaimInput | SubmissionUpsertWithWhereUniqueWithoutClaimInput[]
    createMany?: SubmissionCreateManyClaimInputEnvelope
    set?: SubmissionWhereUniqueInput | SubmissionWhereUniqueInput[]
    disconnect?: SubmissionWhereUniqueInput | SubmissionWhereUniqueInput[]
    delete?: SubmissionWhereUniqueInput | SubmissionWhereUniqueInput[]
    connect?: SubmissionWhereUniqueInput | SubmissionWhereUniqueInput[]
    update?: SubmissionUpdateWithWhereUniqueWithoutClaimInput | SubmissionUpdateWithWhereUniqueWithoutClaimInput[]
    updateMany?: SubmissionUpdateManyWithWhereWithoutClaimInput | SubmissionUpdateManyWithWhereWithoutClaimInput[]
    deleteMany?: SubmissionScalarWhereInput | SubmissionScalarWhereInput[]
  }

  export type SubmissionUncheckedUpdateManyWithoutClaimNestedInput = {
    create?: XOR<SubmissionCreateWithoutClaimInput, SubmissionUncheckedCreateWithoutClaimInput> | SubmissionCreateWithoutClaimInput[] | SubmissionUncheckedCreateWithoutClaimInput[]
    connectOrCreate?: SubmissionCreateOrConnectWithoutClaimInput | SubmissionCreateOrConnectWithoutClaimInput[]
    upsert?: SubmissionUpsertWithWhereUniqueWithoutClaimInput | SubmissionUpsertWithWhereUniqueWithoutClaimInput[]
    createMany?: SubmissionCreateManyClaimInputEnvelope
    set?: SubmissionWhereUniqueInput | SubmissionWhereUniqueInput[]
    disconnect?: SubmissionWhereUniqueInput | SubmissionWhereUniqueInput[]
    delete?: SubmissionWhereUniqueInput | SubmissionWhereUniqueInput[]
    connect?: SubmissionWhereUniqueInput | SubmissionWhereUniqueInput[]
    update?: SubmissionUpdateWithWhereUniqueWithoutClaimInput | SubmissionUpdateWithWhereUniqueWithoutClaimInput[]
    updateMany?: SubmissionUpdateManyWithWhereWithoutClaimInput | SubmissionUpdateManyWithWhereWithoutClaimInput[]
    deleteMany?: SubmissionScalarWhereInput | SubmissionScalarWhereInput[]
  }

  export type TaskCreateNestedOneWithoutSubmissionsInput = {
    create?: XOR<TaskCreateWithoutSubmissionsInput, TaskUncheckedCreateWithoutSubmissionsInput>
    connectOrCreate?: TaskCreateOrConnectWithoutSubmissionsInput
    connect?: TaskWhereUniqueInput
  }

  export type ClaimCreateNestedOneWithoutSubmissionsInput = {
    create?: XOR<ClaimCreateWithoutSubmissionsInput, ClaimUncheckedCreateWithoutSubmissionsInput>
    connectOrCreate?: ClaimCreateOrConnectWithoutSubmissionsInput
    connect?: ClaimWhereUniqueInput
  }

  export type JudgeResultCreateNestedManyWithoutSubmissionInput = {
    create?: XOR<JudgeResultCreateWithoutSubmissionInput, JudgeResultUncheckedCreateWithoutSubmissionInput> | JudgeResultCreateWithoutSubmissionInput[] | JudgeResultUncheckedCreateWithoutSubmissionInput[]
    connectOrCreate?: JudgeResultCreateOrConnectWithoutSubmissionInput | JudgeResultCreateOrConnectWithoutSubmissionInput[]
    createMany?: JudgeResultCreateManySubmissionInputEnvelope
    connect?: JudgeResultWhereUniqueInput | JudgeResultWhereUniqueInput[]
  }

  export type JudgeResultUncheckedCreateNestedManyWithoutSubmissionInput = {
    create?: XOR<JudgeResultCreateWithoutSubmissionInput, JudgeResultUncheckedCreateWithoutSubmissionInput> | JudgeResultCreateWithoutSubmissionInput[] | JudgeResultUncheckedCreateWithoutSubmissionInput[]
    connectOrCreate?: JudgeResultCreateOrConnectWithoutSubmissionInput | JudgeResultCreateOrConnectWithoutSubmissionInput[]
    createMany?: JudgeResultCreateManySubmissionInputEnvelope
    connect?: JudgeResultWhereUniqueInput | JudgeResultWhereUniqueInput[]
  }

  export type TaskUpdateOneRequiredWithoutSubmissionsNestedInput = {
    create?: XOR<TaskCreateWithoutSubmissionsInput, TaskUncheckedCreateWithoutSubmissionsInput>
    connectOrCreate?: TaskCreateOrConnectWithoutSubmissionsInput
    upsert?: TaskUpsertWithoutSubmissionsInput
    connect?: TaskWhereUniqueInput
    update?: XOR<XOR<TaskUpdateToOneWithWhereWithoutSubmissionsInput, TaskUpdateWithoutSubmissionsInput>, TaskUncheckedUpdateWithoutSubmissionsInput>
  }

  export type ClaimUpdateOneRequiredWithoutSubmissionsNestedInput = {
    create?: XOR<ClaimCreateWithoutSubmissionsInput, ClaimUncheckedCreateWithoutSubmissionsInput>
    connectOrCreate?: ClaimCreateOrConnectWithoutSubmissionsInput
    upsert?: ClaimUpsertWithoutSubmissionsInput
    connect?: ClaimWhereUniqueInput
    update?: XOR<XOR<ClaimUpdateToOneWithWhereWithoutSubmissionsInput, ClaimUpdateWithoutSubmissionsInput>, ClaimUncheckedUpdateWithoutSubmissionsInput>
  }

  export type JudgeResultUpdateManyWithoutSubmissionNestedInput = {
    create?: XOR<JudgeResultCreateWithoutSubmissionInput, JudgeResultUncheckedCreateWithoutSubmissionInput> | JudgeResultCreateWithoutSubmissionInput[] | JudgeResultUncheckedCreateWithoutSubmissionInput[]
    connectOrCreate?: JudgeResultCreateOrConnectWithoutSubmissionInput | JudgeResultCreateOrConnectWithoutSubmissionInput[]
    upsert?: JudgeResultUpsertWithWhereUniqueWithoutSubmissionInput | JudgeResultUpsertWithWhereUniqueWithoutSubmissionInput[]
    createMany?: JudgeResultCreateManySubmissionInputEnvelope
    set?: JudgeResultWhereUniqueInput | JudgeResultWhereUniqueInput[]
    disconnect?: JudgeResultWhereUniqueInput | JudgeResultWhereUniqueInput[]
    delete?: JudgeResultWhereUniqueInput | JudgeResultWhereUniqueInput[]
    connect?: JudgeResultWhereUniqueInput | JudgeResultWhereUniqueInput[]
    update?: JudgeResultUpdateWithWhereUniqueWithoutSubmissionInput | JudgeResultUpdateWithWhereUniqueWithoutSubmissionInput[]
    updateMany?: JudgeResultUpdateManyWithWhereWithoutSubmissionInput | JudgeResultUpdateManyWithWhereWithoutSubmissionInput[]
    deleteMany?: JudgeResultScalarWhereInput | JudgeResultScalarWhereInput[]
  }

  export type JudgeResultUncheckedUpdateManyWithoutSubmissionNestedInput = {
    create?: XOR<JudgeResultCreateWithoutSubmissionInput, JudgeResultUncheckedCreateWithoutSubmissionInput> | JudgeResultCreateWithoutSubmissionInput[] | JudgeResultUncheckedCreateWithoutSubmissionInput[]
    connectOrCreate?: JudgeResultCreateOrConnectWithoutSubmissionInput | JudgeResultCreateOrConnectWithoutSubmissionInput[]
    upsert?: JudgeResultUpsertWithWhereUniqueWithoutSubmissionInput | JudgeResultUpsertWithWhereUniqueWithoutSubmissionInput[]
    createMany?: JudgeResultCreateManySubmissionInputEnvelope
    set?: JudgeResultWhereUniqueInput | JudgeResultWhereUniqueInput[]
    disconnect?: JudgeResultWhereUniqueInput | JudgeResultWhereUniqueInput[]
    delete?: JudgeResultWhereUniqueInput | JudgeResultWhereUniqueInput[]
    connect?: JudgeResultWhereUniqueInput | JudgeResultWhereUniqueInput[]
    update?: JudgeResultUpdateWithWhereUniqueWithoutSubmissionInput | JudgeResultUpdateWithWhereUniqueWithoutSubmissionInput[]
    updateMany?: JudgeResultUpdateManyWithWhereWithoutSubmissionInput | JudgeResultUpdateManyWithWhereWithoutSubmissionInput[]
    deleteMany?: JudgeResultScalarWhereInput | JudgeResultScalarWhereInput[]
  }

  export type SubmissionCreateNestedOneWithoutJudge_resultsInput = {
    create?: XOR<SubmissionCreateWithoutJudge_resultsInput, SubmissionUncheckedCreateWithoutJudge_resultsInput>
    connectOrCreate?: SubmissionCreateOrConnectWithoutJudge_resultsInput
    connect?: SubmissionWhereUniqueInput
  }

  export type SubmissionUpdateOneRequiredWithoutJudge_resultsNestedInput = {
    create?: XOR<SubmissionCreateWithoutJudge_resultsInput, SubmissionUncheckedCreateWithoutJudge_resultsInput>
    connectOrCreate?: SubmissionCreateOrConnectWithoutJudge_resultsInput
    upsert?: SubmissionUpsertWithoutJudge_resultsInput
    connect?: SubmissionWhereUniqueInput
    update?: XOR<XOR<SubmissionUpdateToOneWithWhereWithoutJudge_resultsInput, SubmissionUpdateWithoutJudge_resultsInput>, SubmissionUncheckedUpdateWithoutJudge_resultsInput>
  }

  export type TaskCreateNestedManyWithoutScout_agentInput = {
    create?: XOR<TaskCreateWithoutScout_agentInput, TaskUncheckedCreateWithoutScout_agentInput> | TaskCreateWithoutScout_agentInput[] | TaskUncheckedCreateWithoutScout_agentInput[]
    connectOrCreate?: TaskCreateOrConnectWithoutScout_agentInput | TaskCreateOrConnectWithoutScout_agentInput[]
    createMany?: TaskCreateManyScout_agentInputEnvelope
    connect?: TaskWhereUniqueInput | TaskWhereUniqueInput[]
  }

  export type TaskCreateNestedManyWithoutBuilder_agentInput = {
    create?: XOR<TaskCreateWithoutBuilder_agentInput, TaskUncheckedCreateWithoutBuilder_agentInput> | TaskCreateWithoutBuilder_agentInput[] | TaskUncheckedCreateWithoutBuilder_agentInput[]
    connectOrCreate?: TaskCreateOrConnectWithoutBuilder_agentInput | TaskCreateOrConnectWithoutBuilder_agentInput[]
    createMany?: TaskCreateManyBuilder_agentInputEnvelope
    connect?: TaskWhereUniqueInput | TaskWhereUniqueInput[]
  }

  export type ClaimCreateNestedManyWithoutAgentInput = {
    create?: XOR<ClaimCreateWithoutAgentInput, ClaimUncheckedCreateWithoutAgentInput> | ClaimCreateWithoutAgentInput[] | ClaimUncheckedCreateWithoutAgentInput[]
    connectOrCreate?: ClaimCreateOrConnectWithoutAgentInput | ClaimCreateOrConnectWithoutAgentInput[]
    createMany?: ClaimCreateManyAgentInputEnvelope
    connect?: ClaimWhereUniqueInput | ClaimWhereUniqueInput[]
  }

  export type ScoutReputationCreateNestedOneWithoutScout_agentInput = {
    create?: XOR<ScoutReputationCreateWithoutScout_agentInput, ScoutReputationUncheckedCreateWithoutScout_agentInput>
    connectOrCreate?: ScoutReputationCreateOrConnectWithoutScout_agentInput
    connect?: ScoutReputationWhereUniqueInput
  }

  export type AffiliateLedgerCreateNestedManyWithoutScout_agentInput = {
    create?: XOR<AffiliateLedgerCreateWithoutScout_agentInput, AffiliateLedgerUncheckedCreateWithoutScout_agentInput> | AffiliateLedgerCreateWithoutScout_agentInput[] | AffiliateLedgerUncheckedCreateWithoutScout_agentInput[]
    connectOrCreate?: AffiliateLedgerCreateOrConnectWithoutScout_agentInput | AffiliateLedgerCreateOrConnectWithoutScout_agentInput[]
    createMany?: AffiliateLedgerCreateManyScout_agentInputEnvelope
    connect?: AffiliateLedgerWhereUniqueInput | AffiliateLedgerWhereUniqueInput[]
  }

  export type BidProposalCreateNestedManyWithoutAgentInput = {
    create?: XOR<BidProposalCreateWithoutAgentInput, BidProposalUncheckedCreateWithoutAgentInput> | BidProposalCreateWithoutAgentInput[] | BidProposalUncheckedCreateWithoutAgentInput[]
    connectOrCreate?: BidProposalCreateOrConnectWithoutAgentInput | BidProposalCreateOrConnectWithoutAgentInput[]
    createMany?: BidProposalCreateManyAgentInputEnvelope
    connect?: BidProposalWhereUniqueInput | BidProposalWhereUniqueInput[]
  }

  export type ArbitrationCreateNestedManyWithoutBuilderInput = {
    create?: XOR<ArbitrationCreateWithoutBuilderInput, ArbitrationUncheckedCreateWithoutBuilderInput> | ArbitrationCreateWithoutBuilderInput[] | ArbitrationUncheckedCreateWithoutBuilderInput[]
    connectOrCreate?: ArbitrationCreateOrConnectWithoutBuilderInput | ArbitrationCreateOrConnectWithoutBuilderInput[]
    createMany?: ArbitrationCreateManyBuilderInputEnvelope
    connect?: ArbitrationWhereUniqueInput | ArbitrationWhereUniqueInput[]
  }

  export type ArbitrationCreateNestedManyWithoutEvaluatorInput = {
    create?: XOR<ArbitrationCreateWithoutEvaluatorInput, ArbitrationUncheckedCreateWithoutEvaluatorInput> | ArbitrationCreateWithoutEvaluatorInput[] | ArbitrationUncheckedCreateWithoutEvaluatorInput[]
    connectOrCreate?: ArbitrationCreateOrConnectWithoutEvaluatorInput | ArbitrationCreateOrConnectWithoutEvaluatorInput[]
    createMany?: ArbitrationCreateManyEvaluatorInputEnvelope
    connect?: ArbitrationWhereUniqueInput | ArbitrationWhereUniqueInput[]
  }

  export type ArbitrationVoteCreateNestedManyWithoutJudgeInput = {
    create?: XOR<ArbitrationVoteCreateWithoutJudgeInput, ArbitrationVoteUncheckedCreateWithoutJudgeInput> | ArbitrationVoteCreateWithoutJudgeInput[] | ArbitrationVoteUncheckedCreateWithoutJudgeInput[]
    connectOrCreate?: ArbitrationVoteCreateOrConnectWithoutJudgeInput | ArbitrationVoteCreateOrConnectWithoutJudgeInput[]
    createMany?: ArbitrationVoteCreateManyJudgeInputEnvelope
    connect?: ArbitrationVoteWhereUniqueInput | ArbitrationVoteWhereUniqueInput[]
  }

  export type AgentProjectCreateNestedManyWithoutCreatorInput = {
    create?: XOR<AgentProjectCreateWithoutCreatorInput, AgentProjectUncheckedCreateWithoutCreatorInput> | AgentProjectCreateWithoutCreatorInput[] | AgentProjectUncheckedCreateWithoutCreatorInput[]
    connectOrCreate?: AgentProjectCreateOrConnectWithoutCreatorInput | AgentProjectCreateOrConnectWithoutCreatorInput[]
    createMany?: AgentProjectCreateManyCreatorInputEnvelope
    connect?: AgentProjectWhereUniqueInput | AgentProjectWhereUniqueInput[]
  }

  export type SlashingEventCreateNestedManyWithoutAgentInput = {
    create?: XOR<SlashingEventCreateWithoutAgentInput, SlashingEventUncheckedCreateWithoutAgentInput> | SlashingEventCreateWithoutAgentInput[] | SlashingEventUncheckedCreateWithoutAgentInput[]
    connectOrCreate?: SlashingEventCreateOrConnectWithoutAgentInput | SlashingEventCreateOrConnectWithoutAgentInput[]
    createMany?: SlashingEventCreateManyAgentInputEnvelope
    connect?: SlashingEventWhereUniqueInput | SlashingEventWhereUniqueInput[]
  }

  export type TaskUncheckedCreateNestedManyWithoutScout_agentInput = {
    create?: XOR<TaskCreateWithoutScout_agentInput, TaskUncheckedCreateWithoutScout_agentInput> | TaskCreateWithoutScout_agentInput[] | TaskUncheckedCreateWithoutScout_agentInput[]
    connectOrCreate?: TaskCreateOrConnectWithoutScout_agentInput | TaskCreateOrConnectWithoutScout_agentInput[]
    createMany?: TaskCreateManyScout_agentInputEnvelope
    connect?: TaskWhereUniqueInput | TaskWhereUniqueInput[]
  }

  export type TaskUncheckedCreateNestedManyWithoutBuilder_agentInput = {
    create?: XOR<TaskCreateWithoutBuilder_agentInput, TaskUncheckedCreateWithoutBuilder_agentInput> | TaskCreateWithoutBuilder_agentInput[] | TaskUncheckedCreateWithoutBuilder_agentInput[]
    connectOrCreate?: TaskCreateOrConnectWithoutBuilder_agentInput | TaskCreateOrConnectWithoutBuilder_agentInput[]
    createMany?: TaskCreateManyBuilder_agentInputEnvelope
    connect?: TaskWhereUniqueInput | TaskWhereUniqueInput[]
  }

  export type ClaimUncheckedCreateNestedManyWithoutAgentInput = {
    create?: XOR<ClaimCreateWithoutAgentInput, ClaimUncheckedCreateWithoutAgentInput> | ClaimCreateWithoutAgentInput[] | ClaimUncheckedCreateWithoutAgentInput[]
    connectOrCreate?: ClaimCreateOrConnectWithoutAgentInput | ClaimCreateOrConnectWithoutAgentInput[]
    createMany?: ClaimCreateManyAgentInputEnvelope
    connect?: ClaimWhereUniqueInput | ClaimWhereUniqueInput[]
  }

  export type ScoutReputationUncheckedCreateNestedOneWithoutScout_agentInput = {
    create?: XOR<ScoutReputationCreateWithoutScout_agentInput, ScoutReputationUncheckedCreateWithoutScout_agentInput>
    connectOrCreate?: ScoutReputationCreateOrConnectWithoutScout_agentInput
    connect?: ScoutReputationWhereUniqueInput
  }

  export type AffiliateLedgerUncheckedCreateNestedManyWithoutScout_agentInput = {
    create?: XOR<AffiliateLedgerCreateWithoutScout_agentInput, AffiliateLedgerUncheckedCreateWithoutScout_agentInput> | AffiliateLedgerCreateWithoutScout_agentInput[] | AffiliateLedgerUncheckedCreateWithoutScout_agentInput[]
    connectOrCreate?: AffiliateLedgerCreateOrConnectWithoutScout_agentInput | AffiliateLedgerCreateOrConnectWithoutScout_agentInput[]
    createMany?: AffiliateLedgerCreateManyScout_agentInputEnvelope
    connect?: AffiliateLedgerWhereUniqueInput | AffiliateLedgerWhereUniqueInput[]
  }

  export type BidProposalUncheckedCreateNestedManyWithoutAgentInput = {
    create?: XOR<BidProposalCreateWithoutAgentInput, BidProposalUncheckedCreateWithoutAgentInput> | BidProposalCreateWithoutAgentInput[] | BidProposalUncheckedCreateWithoutAgentInput[]
    connectOrCreate?: BidProposalCreateOrConnectWithoutAgentInput | BidProposalCreateOrConnectWithoutAgentInput[]
    createMany?: BidProposalCreateManyAgentInputEnvelope
    connect?: BidProposalWhereUniqueInput | BidProposalWhereUniqueInput[]
  }

  export type ArbitrationUncheckedCreateNestedManyWithoutBuilderInput = {
    create?: XOR<ArbitrationCreateWithoutBuilderInput, ArbitrationUncheckedCreateWithoutBuilderInput> | ArbitrationCreateWithoutBuilderInput[] | ArbitrationUncheckedCreateWithoutBuilderInput[]
    connectOrCreate?: ArbitrationCreateOrConnectWithoutBuilderInput | ArbitrationCreateOrConnectWithoutBuilderInput[]
    createMany?: ArbitrationCreateManyBuilderInputEnvelope
    connect?: ArbitrationWhereUniqueInput | ArbitrationWhereUniqueInput[]
  }

  export type ArbitrationUncheckedCreateNestedManyWithoutEvaluatorInput = {
    create?: XOR<ArbitrationCreateWithoutEvaluatorInput, ArbitrationUncheckedCreateWithoutEvaluatorInput> | ArbitrationCreateWithoutEvaluatorInput[] | ArbitrationUncheckedCreateWithoutEvaluatorInput[]
    connectOrCreate?: ArbitrationCreateOrConnectWithoutEvaluatorInput | ArbitrationCreateOrConnectWithoutEvaluatorInput[]
    createMany?: ArbitrationCreateManyEvaluatorInputEnvelope
    connect?: ArbitrationWhereUniqueInput | ArbitrationWhereUniqueInput[]
  }

  export type ArbitrationVoteUncheckedCreateNestedManyWithoutJudgeInput = {
    create?: XOR<ArbitrationVoteCreateWithoutJudgeInput, ArbitrationVoteUncheckedCreateWithoutJudgeInput> | ArbitrationVoteCreateWithoutJudgeInput[] | ArbitrationVoteUncheckedCreateWithoutJudgeInput[]
    connectOrCreate?: ArbitrationVoteCreateOrConnectWithoutJudgeInput | ArbitrationVoteCreateOrConnectWithoutJudgeInput[]
    createMany?: ArbitrationVoteCreateManyJudgeInputEnvelope
    connect?: ArbitrationVoteWhereUniqueInput | ArbitrationVoteWhereUniqueInput[]
  }

  export type AgentProjectUncheckedCreateNestedManyWithoutCreatorInput = {
    create?: XOR<AgentProjectCreateWithoutCreatorInput, AgentProjectUncheckedCreateWithoutCreatorInput> | AgentProjectCreateWithoutCreatorInput[] | AgentProjectUncheckedCreateWithoutCreatorInput[]
    connectOrCreate?: AgentProjectCreateOrConnectWithoutCreatorInput | AgentProjectCreateOrConnectWithoutCreatorInput[]
    createMany?: AgentProjectCreateManyCreatorInputEnvelope
    connect?: AgentProjectWhereUniqueInput | AgentProjectWhereUniqueInput[]
  }

  export type SlashingEventUncheckedCreateNestedManyWithoutAgentInput = {
    create?: XOR<SlashingEventCreateWithoutAgentInput, SlashingEventUncheckedCreateWithoutAgentInput> | SlashingEventCreateWithoutAgentInput[] | SlashingEventUncheckedCreateWithoutAgentInput[]
    connectOrCreate?: SlashingEventCreateOrConnectWithoutAgentInput | SlashingEventCreateOrConnectWithoutAgentInput[]
    createMany?: SlashingEventCreateManyAgentInputEnvelope
    connect?: SlashingEventWhereUniqueInput | SlashingEventWhereUniqueInput[]
  }

  export type EnumAgentStatusFieldUpdateOperationsInput = {
    set?: $Enums.AgentStatus
  }

  export type TaskUpdateManyWithoutScout_agentNestedInput = {
    create?: XOR<TaskCreateWithoutScout_agentInput, TaskUncheckedCreateWithoutScout_agentInput> | TaskCreateWithoutScout_agentInput[] | TaskUncheckedCreateWithoutScout_agentInput[]
    connectOrCreate?: TaskCreateOrConnectWithoutScout_agentInput | TaskCreateOrConnectWithoutScout_agentInput[]
    upsert?: TaskUpsertWithWhereUniqueWithoutScout_agentInput | TaskUpsertWithWhereUniqueWithoutScout_agentInput[]
    createMany?: TaskCreateManyScout_agentInputEnvelope
    set?: TaskWhereUniqueInput | TaskWhereUniqueInput[]
    disconnect?: TaskWhereUniqueInput | TaskWhereUniqueInput[]
    delete?: TaskWhereUniqueInput | TaskWhereUniqueInput[]
    connect?: TaskWhereUniqueInput | TaskWhereUniqueInput[]
    update?: TaskUpdateWithWhereUniqueWithoutScout_agentInput | TaskUpdateWithWhereUniqueWithoutScout_agentInput[]
    updateMany?: TaskUpdateManyWithWhereWithoutScout_agentInput | TaskUpdateManyWithWhereWithoutScout_agentInput[]
    deleteMany?: TaskScalarWhereInput | TaskScalarWhereInput[]
  }

  export type TaskUpdateManyWithoutBuilder_agentNestedInput = {
    create?: XOR<TaskCreateWithoutBuilder_agentInput, TaskUncheckedCreateWithoutBuilder_agentInput> | TaskCreateWithoutBuilder_agentInput[] | TaskUncheckedCreateWithoutBuilder_agentInput[]
    connectOrCreate?: TaskCreateOrConnectWithoutBuilder_agentInput | TaskCreateOrConnectWithoutBuilder_agentInput[]
    upsert?: TaskUpsertWithWhereUniqueWithoutBuilder_agentInput | TaskUpsertWithWhereUniqueWithoutBuilder_agentInput[]
    createMany?: TaskCreateManyBuilder_agentInputEnvelope
    set?: TaskWhereUniqueInput | TaskWhereUniqueInput[]
    disconnect?: TaskWhereUniqueInput | TaskWhereUniqueInput[]
    delete?: TaskWhereUniqueInput | TaskWhereUniqueInput[]
    connect?: TaskWhereUniqueInput | TaskWhereUniqueInput[]
    update?: TaskUpdateWithWhereUniqueWithoutBuilder_agentInput | TaskUpdateWithWhereUniqueWithoutBuilder_agentInput[]
    updateMany?: TaskUpdateManyWithWhereWithoutBuilder_agentInput | TaskUpdateManyWithWhereWithoutBuilder_agentInput[]
    deleteMany?: TaskScalarWhereInput | TaskScalarWhereInput[]
  }

  export type ClaimUpdateManyWithoutAgentNestedInput = {
    create?: XOR<ClaimCreateWithoutAgentInput, ClaimUncheckedCreateWithoutAgentInput> | ClaimCreateWithoutAgentInput[] | ClaimUncheckedCreateWithoutAgentInput[]
    connectOrCreate?: ClaimCreateOrConnectWithoutAgentInput | ClaimCreateOrConnectWithoutAgentInput[]
    upsert?: ClaimUpsertWithWhereUniqueWithoutAgentInput | ClaimUpsertWithWhereUniqueWithoutAgentInput[]
    createMany?: ClaimCreateManyAgentInputEnvelope
    set?: ClaimWhereUniqueInput | ClaimWhereUniqueInput[]
    disconnect?: ClaimWhereUniqueInput | ClaimWhereUniqueInput[]
    delete?: ClaimWhereUniqueInput | ClaimWhereUniqueInput[]
    connect?: ClaimWhereUniqueInput | ClaimWhereUniqueInput[]
    update?: ClaimUpdateWithWhereUniqueWithoutAgentInput | ClaimUpdateWithWhereUniqueWithoutAgentInput[]
    updateMany?: ClaimUpdateManyWithWhereWithoutAgentInput | ClaimUpdateManyWithWhereWithoutAgentInput[]
    deleteMany?: ClaimScalarWhereInput | ClaimScalarWhereInput[]
  }

  export type ScoutReputationUpdateOneWithoutScout_agentNestedInput = {
    create?: XOR<ScoutReputationCreateWithoutScout_agentInput, ScoutReputationUncheckedCreateWithoutScout_agentInput>
    connectOrCreate?: ScoutReputationCreateOrConnectWithoutScout_agentInput
    upsert?: ScoutReputationUpsertWithoutScout_agentInput
    disconnect?: ScoutReputationWhereInput | boolean
    delete?: ScoutReputationWhereInput | boolean
    connect?: ScoutReputationWhereUniqueInput
    update?: XOR<XOR<ScoutReputationUpdateToOneWithWhereWithoutScout_agentInput, ScoutReputationUpdateWithoutScout_agentInput>, ScoutReputationUncheckedUpdateWithoutScout_agentInput>
  }

  export type AffiliateLedgerUpdateManyWithoutScout_agentNestedInput = {
    create?: XOR<AffiliateLedgerCreateWithoutScout_agentInput, AffiliateLedgerUncheckedCreateWithoutScout_agentInput> | AffiliateLedgerCreateWithoutScout_agentInput[] | AffiliateLedgerUncheckedCreateWithoutScout_agentInput[]
    connectOrCreate?: AffiliateLedgerCreateOrConnectWithoutScout_agentInput | AffiliateLedgerCreateOrConnectWithoutScout_agentInput[]
    upsert?: AffiliateLedgerUpsertWithWhereUniqueWithoutScout_agentInput | AffiliateLedgerUpsertWithWhereUniqueWithoutScout_agentInput[]
    createMany?: AffiliateLedgerCreateManyScout_agentInputEnvelope
    set?: AffiliateLedgerWhereUniqueInput | AffiliateLedgerWhereUniqueInput[]
    disconnect?: AffiliateLedgerWhereUniqueInput | AffiliateLedgerWhereUniqueInput[]
    delete?: AffiliateLedgerWhereUniqueInput | AffiliateLedgerWhereUniqueInput[]
    connect?: AffiliateLedgerWhereUniqueInput | AffiliateLedgerWhereUniqueInput[]
    update?: AffiliateLedgerUpdateWithWhereUniqueWithoutScout_agentInput | AffiliateLedgerUpdateWithWhereUniqueWithoutScout_agentInput[]
    updateMany?: AffiliateLedgerUpdateManyWithWhereWithoutScout_agentInput | AffiliateLedgerUpdateManyWithWhereWithoutScout_agentInput[]
    deleteMany?: AffiliateLedgerScalarWhereInput | AffiliateLedgerScalarWhereInput[]
  }

  export type BidProposalUpdateManyWithoutAgentNestedInput = {
    create?: XOR<BidProposalCreateWithoutAgentInput, BidProposalUncheckedCreateWithoutAgentInput> | BidProposalCreateWithoutAgentInput[] | BidProposalUncheckedCreateWithoutAgentInput[]
    connectOrCreate?: BidProposalCreateOrConnectWithoutAgentInput | BidProposalCreateOrConnectWithoutAgentInput[]
    upsert?: BidProposalUpsertWithWhereUniqueWithoutAgentInput | BidProposalUpsertWithWhereUniqueWithoutAgentInput[]
    createMany?: BidProposalCreateManyAgentInputEnvelope
    set?: BidProposalWhereUniqueInput | BidProposalWhereUniqueInput[]
    disconnect?: BidProposalWhereUniqueInput | BidProposalWhereUniqueInput[]
    delete?: BidProposalWhereUniqueInput | BidProposalWhereUniqueInput[]
    connect?: BidProposalWhereUniqueInput | BidProposalWhereUniqueInput[]
    update?: BidProposalUpdateWithWhereUniqueWithoutAgentInput | BidProposalUpdateWithWhereUniqueWithoutAgentInput[]
    updateMany?: BidProposalUpdateManyWithWhereWithoutAgentInput | BidProposalUpdateManyWithWhereWithoutAgentInput[]
    deleteMany?: BidProposalScalarWhereInput | BidProposalScalarWhereInput[]
  }

  export type ArbitrationUpdateManyWithoutBuilderNestedInput = {
    create?: XOR<ArbitrationCreateWithoutBuilderInput, ArbitrationUncheckedCreateWithoutBuilderInput> | ArbitrationCreateWithoutBuilderInput[] | ArbitrationUncheckedCreateWithoutBuilderInput[]
    connectOrCreate?: ArbitrationCreateOrConnectWithoutBuilderInput | ArbitrationCreateOrConnectWithoutBuilderInput[]
    upsert?: ArbitrationUpsertWithWhereUniqueWithoutBuilderInput | ArbitrationUpsertWithWhereUniqueWithoutBuilderInput[]
    createMany?: ArbitrationCreateManyBuilderInputEnvelope
    set?: ArbitrationWhereUniqueInput | ArbitrationWhereUniqueInput[]
    disconnect?: ArbitrationWhereUniqueInput | ArbitrationWhereUniqueInput[]
    delete?: ArbitrationWhereUniqueInput | ArbitrationWhereUniqueInput[]
    connect?: ArbitrationWhereUniqueInput | ArbitrationWhereUniqueInput[]
    update?: ArbitrationUpdateWithWhereUniqueWithoutBuilderInput | ArbitrationUpdateWithWhereUniqueWithoutBuilderInput[]
    updateMany?: ArbitrationUpdateManyWithWhereWithoutBuilderInput | ArbitrationUpdateManyWithWhereWithoutBuilderInput[]
    deleteMany?: ArbitrationScalarWhereInput | ArbitrationScalarWhereInput[]
  }

  export type ArbitrationUpdateManyWithoutEvaluatorNestedInput = {
    create?: XOR<ArbitrationCreateWithoutEvaluatorInput, ArbitrationUncheckedCreateWithoutEvaluatorInput> | ArbitrationCreateWithoutEvaluatorInput[] | ArbitrationUncheckedCreateWithoutEvaluatorInput[]
    connectOrCreate?: ArbitrationCreateOrConnectWithoutEvaluatorInput | ArbitrationCreateOrConnectWithoutEvaluatorInput[]
    upsert?: ArbitrationUpsertWithWhereUniqueWithoutEvaluatorInput | ArbitrationUpsertWithWhereUniqueWithoutEvaluatorInput[]
    createMany?: ArbitrationCreateManyEvaluatorInputEnvelope
    set?: ArbitrationWhereUniqueInput | ArbitrationWhereUniqueInput[]
    disconnect?: ArbitrationWhereUniqueInput | ArbitrationWhereUniqueInput[]
    delete?: ArbitrationWhereUniqueInput | ArbitrationWhereUniqueInput[]
    connect?: ArbitrationWhereUniqueInput | ArbitrationWhereUniqueInput[]
    update?: ArbitrationUpdateWithWhereUniqueWithoutEvaluatorInput | ArbitrationUpdateWithWhereUniqueWithoutEvaluatorInput[]
    updateMany?: ArbitrationUpdateManyWithWhereWithoutEvaluatorInput | ArbitrationUpdateManyWithWhereWithoutEvaluatorInput[]
    deleteMany?: ArbitrationScalarWhereInput | ArbitrationScalarWhereInput[]
  }

  export type ArbitrationVoteUpdateManyWithoutJudgeNestedInput = {
    create?: XOR<ArbitrationVoteCreateWithoutJudgeInput, ArbitrationVoteUncheckedCreateWithoutJudgeInput> | ArbitrationVoteCreateWithoutJudgeInput[] | ArbitrationVoteUncheckedCreateWithoutJudgeInput[]
    connectOrCreate?: ArbitrationVoteCreateOrConnectWithoutJudgeInput | ArbitrationVoteCreateOrConnectWithoutJudgeInput[]
    upsert?: ArbitrationVoteUpsertWithWhereUniqueWithoutJudgeInput | ArbitrationVoteUpsertWithWhereUniqueWithoutJudgeInput[]
    createMany?: ArbitrationVoteCreateManyJudgeInputEnvelope
    set?: ArbitrationVoteWhereUniqueInput | ArbitrationVoteWhereUniqueInput[]
    disconnect?: ArbitrationVoteWhereUniqueInput | ArbitrationVoteWhereUniqueInput[]
    delete?: ArbitrationVoteWhereUniqueInput | ArbitrationVoteWhereUniqueInput[]
    connect?: ArbitrationVoteWhereUniqueInput | ArbitrationVoteWhereUniqueInput[]
    update?: ArbitrationVoteUpdateWithWhereUniqueWithoutJudgeInput | ArbitrationVoteUpdateWithWhereUniqueWithoutJudgeInput[]
    updateMany?: ArbitrationVoteUpdateManyWithWhereWithoutJudgeInput | ArbitrationVoteUpdateManyWithWhereWithoutJudgeInput[]
    deleteMany?: ArbitrationVoteScalarWhereInput | ArbitrationVoteScalarWhereInput[]
  }

  export type AgentProjectUpdateManyWithoutCreatorNestedInput = {
    create?: XOR<AgentProjectCreateWithoutCreatorInput, AgentProjectUncheckedCreateWithoutCreatorInput> | AgentProjectCreateWithoutCreatorInput[] | AgentProjectUncheckedCreateWithoutCreatorInput[]
    connectOrCreate?: AgentProjectCreateOrConnectWithoutCreatorInput | AgentProjectCreateOrConnectWithoutCreatorInput[]
    upsert?: AgentProjectUpsertWithWhereUniqueWithoutCreatorInput | AgentProjectUpsertWithWhereUniqueWithoutCreatorInput[]
    createMany?: AgentProjectCreateManyCreatorInputEnvelope
    set?: AgentProjectWhereUniqueInput | AgentProjectWhereUniqueInput[]
    disconnect?: AgentProjectWhereUniqueInput | AgentProjectWhereUniqueInput[]
    delete?: AgentProjectWhereUniqueInput | AgentProjectWhereUniqueInput[]
    connect?: AgentProjectWhereUniqueInput | AgentProjectWhereUniqueInput[]
    update?: AgentProjectUpdateWithWhereUniqueWithoutCreatorInput | AgentProjectUpdateWithWhereUniqueWithoutCreatorInput[]
    updateMany?: AgentProjectUpdateManyWithWhereWithoutCreatorInput | AgentProjectUpdateManyWithWhereWithoutCreatorInput[]
    deleteMany?: AgentProjectScalarWhereInput | AgentProjectScalarWhereInput[]
  }

  export type SlashingEventUpdateManyWithoutAgentNestedInput = {
    create?: XOR<SlashingEventCreateWithoutAgentInput, SlashingEventUncheckedCreateWithoutAgentInput> | SlashingEventCreateWithoutAgentInput[] | SlashingEventUncheckedCreateWithoutAgentInput[]
    connectOrCreate?: SlashingEventCreateOrConnectWithoutAgentInput | SlashingEventCreateOrConnectWithoutAgentInput[]
    upsert?: SlashingEventUpsertWithWhereUniqueWithoutAgentInput | SlashingEventUpsertWithWhereUniqueWithoutAgentInput[]
    createMany?: SlashingEventCreateManyAgentInputEnvelope
    set?: SlashingEventWhereUniqueInput | SlashingEventWhereUniqueInput[]
    disconnect?: SlashingEventWhereUniqueInput | SlashingEventWhereUniqueInput[]
    delete?: SlashingEventWhereUniqueInput | SlashingEventWhereUniqueInput[]
    connect?: SlashingEventWhereUniqueInput | SlashingEventWhereUniqueInput[]
    update?: SlashingEventUpdateWithWhereUniqueWithoutAgentInput | SlashingEventUpdateWithWhereUniqueWithoutAgentInput[]
    updateMany?: SlashingEventUpdateManyWithWhereWithoutAgentInput | SlashingEventUpdateManyWithWhereWithoutAgentInput[]
    deleteMany?: SlashingEventScalarWhereInput | SlashingEventScalarWhereInput[]
  }

  export type TaskUncheckedUpdateManyWithoutScout_agentNestedInput = {
    create?: XOR<TaskCreateWithoutScout_agentInput, TaskUncheckedCreateWithoutScout_agentInput> | TaskCreateWithoutScout_agentInput[] | TaskUncheckedCreateWithoutScout_agentInput[]
    connectOrCreate?: TaskCreateOrConnectWithoutScout_agentInput | TaskCreateOrConnectWithoutScout_agentInput[]
    upsert?: TaskUpsertWithWhereUniqueWithoutScout_agentInput | TaskUpsertWithWhereUniqueWithoutScout_agentInput[]
    createMany?: TaskCreateManyScout_agentInputEnvelope
    set?: TaskWhereUniqueInput | TaskWhereUniqueInput[]
    disconnect?: TaskWhereUniqueInput | TaskWhereUniqueInput[]
    delete?: TaskWhereUniqueInput | TaskWhereUniqueInput[]
    connect?: TaskWhereUniqueInput | TaskWhereUniqueInput[]
    update?: TaskUpdateWithWhereUniqueWithoutScout_agentInput | TaskUpdateWithWhereUniqueWithoutScout_agentInput[]
    updateMany?: TaskUpdateManyWithWhereWithoutScout_agentInput | TaskUpdateManyWithWhereWithoutScout_agentInput[]
    deleteMany?: TaskScalarWhereInput | TaskScalarWhereInput[]
  }

  export type TaskUncheckedUpdateManyWithoutBuilder_agentNestedInput = {
    create?: XOR<TaskCreateWithoutBuilder_agentInput, TaskUncheckedCreateWithoutBuilder_agentInput> | TaskCreateWithoutBuilder_agentInput[] | TaskUncheckedCreateWithoutBuilder_agentInput[]
    connectOrCreate?: TaskCreateOrConnectWithoutBuilder_agentInput | TaskCreateOrConnectWithoutBuilder_agentInput[]
    upsert?: TaskUpsertWithWhereUniqueWithoutBuilder_agentInput | TaskUpsertWithWhereUniqueWithoutBuilder_agentInput[]
    createMany?: TaskCreateManyBuilder_agentInputEnvelope
    set?: TaskWhereUniqueInput | TaskWhereUniqueInput[]
    disconnect?: TaskWhereUniqueInput | TaskWhereUniqueInput[]
    delete?: TaskWhereUniqueInput | TaskWhereUniqueInput[]
    connect?: TaskWhereUniqueInput | TaskWhereUniqueInput[]
    update?: TaskUpdateWithWhereUniqueWithoutBuilder_agentInput | TaskUpdateWithWhereUniqueWithoutBuilder_agentInput[]
    updateMany?: TaskUpdateManyWithWhereWithoutBuilder_agentInput | TaskUpdateManyWithWhereWithoutBuilder_agentInput[]
    deleteMany?: TaskScalarWhereInput | TaskScalarWhereInput[]
  }

  export type ClaimUncheckedUpdateManyWithoutAgentNestedInput = {
    create?: XOR<ClaimCreateWithoutAgentInput, ClaimUncheckedCreateWithoutAgentInput> | ClaimCreateWithoutAgentInput[] | ClaimUncheckedCreateWithoutAgentInput[]
    connectOrCreate?: ClaimCreateOrConnectWithoutAgentInput | ClaimCreateOrConnectWithoutAgentInput[]
    upsert?: ClaimUpsertWithWhereUniqueWithoutAgentInput | ClaimUpsertWithWhereUniqueWithoutAgentInput[]
    createMany?: ClaimCreateManyAgentInputEnvelope
    set?: ClaimWhereUniqueInput | ClaimWhereUniqueInput[]
    disconnect?: ClaimWhereUniqueInput | ClaimWhereUniqueInput[]
    delete?: ClaimWhereUniqueInput | ClaimWhereUniqueInput[]
    connect?: ClaimWhereUniqueInput | ClaimWhereUniqueInput[]
    update?: ClaimUpdateWithWhereUniqueWithoutAgentInput | ClaimUpdateWithWhereUniqueWithoutAgentInput[]
    updateMany?: ClaimUpdateManyWithWhereWithoutAgentInput | ClaimUpdateManyWithWhereWithoutAgentInput[]
    deleteMany?: ClaimScalarWhereInput | ClaimScalarWhereInput[]
  }

  export type ScoutReputationUncheckedUpdateOneWithoutScout_agentNestedInput = {
    create?: XOR<ScoutReputationCreateWithoutScout_agentInput, ScoutReputationUncheckedCreateWithoutScout_agentInput>
    connectOrCreate?: ScoutReputationCreateOrConnectWithoutScout_agentInput
    upsert?: ScoutReputationUpsertWithoutScout_agentInput
    disconnect?: ScoutReputationWhereInput | boolean
    delete?: ScoutReputationWhereInput | boolean
    connect?: ScoutReputationWhereUniqueInput
    update?: XOR<XOR<ScoutReputationUpdateToOneWithWhereWithoutScout_agentInput, ScoutReputationUpdateWithoutScout_agentInput>, ScoutReputationUncheckedUpdateWithoutScout_agentInput>
  }

  export type AffiliateLedgerUncheckedUpdateManyWithoutScout_agentNestedInput = {
    create?: XOR<AffiliateLedgerCreateWithoutScout_agentInput, AffiliateLedgerUncheckedCreateWithoutScout_agentInput> | AffiliateLedgerCreateWithoutScout_agentInput[] | AffiliateLedgerUncheckedCreateWithoutScout_agentInput[]
    connectOrCreate?: AffiliateLedgerCreateOrConnectWithoutScout_agentInput | AffiliateLedgerCreateOrConnectWithoutScout_agentInput[]
    upsert?: AffiliateLedgerUpsertWithWhereUniqueWithoutScout_agentInput | AffiliateLedgerUpsertWithWhereUniqueWithoutScout_agentInput[]
    createMany?: AffiliateLedgerCreateManyScout_agentInputEnvelope
    set?: AffiliateLedgerWhereUniqueInput | AffiliateLedgerWhereUniqueInput[]
    disconnect?: AffiliateLedgerWhereUniqueInput | AffiliateLedgerWhereUniqueInput[]
    delete?: AffiliateLedgerWhereUniqueInput | AffiliateLedgerWhereUniqueInput[]
    connect?: AffiliateLedgerWhereUniqueInput | AffiliateLedgerWhereUniqueInput[]
    update?: AffiliateLedgerUpdateWithWhereUniqueWithoutScout_agentInput | AffiliateLedgerUpdateWithWhereUniqueWithoutScout_agentInput[]
    updateMany?: AffiliateLedgerUpdateManyWithWhereWithoutScout_agentInput | AffiliateLedgerUpdateManyWithWhereWithoutScout_agentInput[]
    deleteMany?: AffiliateLedgerScalarWhereInput | AffiliateLedgerScalarWhereInput[]
  }

  export type BidProposalUncheckedUpdateManyWithoutAgentNestedInput = {
    create?: XOR<BidProposalCreateWithoutAgentInput, BidProposalUncheckedCreateWithoutAgentInput> | BidProposalCreateWithoutAgentInput[] | BidProposalUncheckedCreateWithoutAgentInput[]
    connectOrCreate?: BidProposalCreateOrConnectWithoutAgentInput | BidProposalCreateOrConnectWithoutAgentInput[]
    upsert?: BidProposalUpsertWithWhereUniqueWithoutAgentInput | BidProposalUpsertWithWhereUniqueWithoutAgentInput[]
    createMany?: BidProposalCreateManyAgentInputEnvelope
    set?: BidProposalWhereUniqueInput | BidProposalWhereUniqueInput[]
    disconnect?: BidProposalWhereUniqueInput | BidProposalWhereUniqueInput[]
    delete?: BidProposalWhereUniqueInput | BidProposalWhereUniqueInput[]
    connect?: BidProposalWhereUniqueInput | BidProposalWhereUniqueInput[]
    update?: BidProposalUpdateWithWhereUniqueWithoutAgentInput | BidProposalUpdateWithWhereUniqueWithoutAgentInput[]
    updateMany?: BidProposalUpdateManyWithWhereWithoutAgentInput | BidProposalUpdateManyWithWhereWithoutAgentInput[]
    deleteMany?: BidProposalScalarWhereInput | BidProposalScalarWhereInput[]
  }

  export type ArbitrationUncheckedUpdateManyWithoutBuilderNestedInput = {
    create?: XOR<ArbitrationCreateWithoutBuilderInput, ArbitrationUncheckedCreateWithoutBuilderInput> | ArbitrationCreateWithoutBuilderInput[] | ArbitrationUncheckedCreateWithoutBuilderInput[]
    connectOrCreate?: ArbitrationCreateOrConnectWithoutBuilderInput | ArbitrationCreateOrConnectWithoutBuilderInput[]
    upsert?: ArbitrationUpsertWithWhereUniqueWithoutBuilderInput | ArbitrationUpsertWithWhereUniqueWithoutBuilderInput[]
    createMany?: ArbitrationCreateManyBuilderInputEnvelope
    set?: ArbitrationWhereUniqueInput | ArbitrationWhereUniqueInput[]
    disconnect?: ArbitrationWhereUniqueInput | ArbitrationWhereUniqueInput[]
    delete?: ArbitrationWhereUniqueInput | ArbitrationWhereUniqueInput[]
    connect?: ArbitrationWhereUniqueInput | ArbitrationWhereUniqueInput[]
    update?: ArbitrationUpdateWithWhereUniqueWithoutBuilderInput | ArbitrationUpdateWithWhereUniqueWithoutBuilderInput[]
    updateMany?: ArbitrationUpdateManyWithWhereWithoutBuilderInput | ArbitrationUpdateManyWithWhereWithoutBuilderInput[]
    deleteMany?: ArbitrationScalarWhereInput | ArbitrationScalarWhereInput[]
  }

  export type ArbitrationUncheckedUpdateManyWithoutEvaluatorNestedInput = {
    create?: XOR<ArbitrationCreateWithoutEvaluatorInput, ArbitrationUncheckedCreateWithoutEvaluatorInput> | ArbitrationCreateWithoutEvaluatorInput[] | ArbitrationUncheckedCreateWithoutEvaluatorInput[]
    connectOrCreate?: ArbitrationCreateOrConnectWithoutEvaluatorInput | ArbitrationCreateOrConnectWithoutEvaluatorInput[]
    upsert?: ArbitrationUpsertWithWhereUniqueWithoutEvaluatorInput | ArbitrationUpsertWithWhereUniqueWithoutEvaluatorInput[]
    createMany?: ArbitrationCreateManyEvaluatorInputEnvelope
    set?: ArbitrationWhereUniqueInput | ArbitrationWhereUniqueInput[]
    disconnect?: ArbitrationWhereUniqueInput | ArbitrationWhereUniqueInput[]
    delete?: ArbitrationWhereUniqueInput | ArbitrationWhereUniqueInput[]
    connect?: ArbitrationWhereUniqueInput | ArbitrationWhereUniqueInput[]
    update?: ArbitrationUpdateWithWhereUniqueWithoutEvaluatorInput | ArbitrationUpdateWithWhereUniqueWithoutEvaluatorInput[]
    updateMany?: ArbitrationUpdateManyWithWhereWithoutEvaluatorInput | ArbitrationUpdateManyWithWhereWithoutEvaluatorInput[]
    deleteMany?: ArbitrationScalarWhereInput | ArbitrationScalarWhereInput[]
  }

  export type ArbitrationVoteUncheckedUpdateManyWithoutJudgeNestedInput = {
    create?: XOR<ArbitrationVoteCreateWithoutJudgeInput, ArbitrationVoteUncheckedCreateWithoutJudgeInput> | ArbitrationVoteCreateWithoutJudgeInput[] | ArbitrationVoteUncheckedCreateWithoutJudgeInput[]
    connectOrCreate?: ArbitrationVoteCreateOrConnectWithoutJudgeInput | ArbitrationVoteCreateOrConnectWithoutJudgeInput[]
    upsert?: ArbitrationVoteUpsertWithWhereUniqueWithoutJudgeInput | ArbitrationVoteUpsertWithWhereUniqueWithoutJudgeInput[]
    createMany?: ArbitrationVoteCreateManyJudgeInputEnvelope
    set?: ArbitrationVoteWhereUniqueInput | ArbitrationVoteWhereUniqueInput[]
    disconnect?: ArbitrationVoteWhereUniqueInput | ArbitrationVoteWhereUniqueInput[]
    delete?: ArbitrationVoteWhereUniqueInput | ArbitrationVoteWhereUniqueInput[]
    connect?: ArbitrationVoteWhereUniqueInput | ArbitrationVoteWhereUniqueInput[]
    update?: ArbitrationVoteUpdateWithWhereUniqueWithoutJudgeInput | ArbitrationVoteUpdateWithWhereUniqueWithoutJudgeInput[]
    updateMany?: ArbitrationVoteUpdateManyWithWhereWithoutJudgeInput | ArbitrationVoteUpdateManyWithWhereWithoutJudgeInput[]
    deleteMany?: ArbitrationVoteScalarWhereInput | ArbitrationVoteScalarWhereInput[]
  }

  export type AgentProjectUncheckedUpdateManyWithoutCreatorNestedInput = {
    create?: XOR<AgentProjectCreateWithoutCreatorInput, AgentProjectUncheckedCreateWithoutCreatorInput> | AgentProjectCreateWithoutCreatorInput[] | AgentProjectUncheckedCreateWithoutCreatorInput[]
    connectOrCreate?: AgentProjectCreateOrConnectWithoutCreatorInput | AgentProjectCreateOrConnectWithoutCreatorInput[]
    upsert?: AgentProjectUpsertWithWhereUniqueWithoutCreatorInput | AgentProjectUpsertWithWhereUniqueWithoutCreatorInput[]
    createMany?: AgentProjectCreateManyCreatorInputEnvelope
    set?: AgentProjectWhereUniqueInput | AgentProjectWhereUniqueInput[]
    disconnect?: AgentProjectWhereUniqueInput | AgentProjectWhereUniqueInput[]
    delete?: AgentProjectWhereUniqueInput | AgentProjectWhereUniqueInput[]
    connect?: AgentProjectWhereUniqueInput | AgentProjectWhereUniqueInput[]
    update?: AgentProjectUpdateWithWhereUniqueWithoutCreatorInput | AgentProjectUpdateWithWhereUniqueWithoutCreatorInput[]
    updateMany?: AgentProjectUpdateManyWithWhereWithoutCreatorInput | AgentProjectUpdateManyWithWhereWithoutCreatorInput[]
    deleteMany?: AgentProjectScalarWhereInput | AgentProjectScalarWhereInput[]
  }

  export type SlashingEventUncheckedUpdateManyWithoutAgentNestedInput = {
    create?: XOR<SlashingEventCreateWithoutAgentInput, SlashingEventUncheckedCreateWithoutAgentInput> | SlashingEventCreateWithoutAgentInput[] | SlashingEventUncheckedCreateWithoutAgentInput[]
    connectOrCreate?: SlashingEventCreateOrConnectWithoutAgentInput | SlashingEventCreateOrConnectWithoutAgentInput[]
    upsert?: SlashingEventUpsertWithWhereUniqueWithoutAgentInput | SlashingEventUpsertWithWhereUniqueWithoutAgentInput[]
    createMany?: SlashingEventCreateManyAgentInputEnvelope
    set?: SlashingEventWhereUniqueInput | SlashingEventWhereUniqueInput[]
    disconnect?: SlashingEventWhereUniqueInput | SlashingEventWhereUniqueInput[]
    delete?: SlashingEventWhereUniqueInput | SlashingEventWhereUniqueInput[]
    connect?: SlashingEventWhereUniqueInput | SlashingEventWhereUniqueInput[]
    update?: SlashingEventUpdateWithWhereUniqueWithoutAgentInput | SlashingEventUpdateWithWhereUniqueWithoutAgentInput[]
    updateMany?: SlashingEventUpdateManyWithWhereWithoutAgentInput | SlashingEventUpdateManyWithWhereWithoutAgentInput[]
    deleteMany?: SlashingEventScalarWhereInput | SlashingEventScalarWhereInput[]
  }

  export type AgentProfileCreateNestedOneWithoutAffiliate_ledgerInput = {
    create?: XOR<AgentProfileCreateWithoutAffiliate_ledgerInput, AgentProfileUncheckedCreateWithoutAffiliate_ledgerInput>
    connectOrCreate?: AgentProfileCreateOrConnectWithoutAffiliate_ledgerInput
    connect?: AgentProfileWhereUniqueInput
  }

  export type TaskCreateNestedOneWithoutAffiliate_ledgerInput = {
    create?: XOR<TaskCreateWithoutAffiliate_ledgerInput, TaskUncheckedCreateWithoutAffiliate_ledgerInput>
    connectOrCreate?: TaskCreateOrConnectWithoutAffiliate_ledgerInput
    connect?: TaskWhereUniqueInput
  }

  export type AgentProfileUpdateOneRequiredWithoutAffiliate_ledgerNestedInput = {
    create?: XOR<AgentProfileCreateWithoutAffiliate_ledgerInput, AgentProfileUncheckedCreateWithoutAffiliate_ledgerInput>
    connectOrCreate?: AgentProfileCreateOrConnectWithoutAffiliate_ledgerInput
    upsert?: AgentProfileUpsertWithoutAffiliate_ledgerInput
    connect?: AgentProfileWhereUniqueInput
    update?: XOR<XOR<AgentProfileUpdateToOneWithWhereWithoutAffiliate_ledgerInput, AgentProfileUpdateWithoutAffiliate_ledgerInput>, AgentProfileUncheckedUpdateWithoutAffiliate_ledgerInput>
  }

  export type TaskUpdateOneRequiredWithoutAffiliate_ledgerNestedInput = {
    create?: XOR<TaskCreateWithoutAffiliate_ledgerInput, TaskUncheckedCreateWithoutAffiliate_ledgerInput>
    connectOrCreate?: TaskCreateOrConnectWithoutAffiliate_ledgerInput
    upsert?: TaskUpsertWithoutAffiliate_ledgerInput
    connect?: TaskWhereUniqueInput
    update?: XOR<XOR<TaskUpdateToOneWithWhereWithoutAffiliate_ledgerInput, TaskUpdateWithoutAffiliate_ledgerInput>, TaskUncheckedUpdateWithoutAffiliate_ledgerInput>
  }

  export type AgentProfileCreateNestedOneWithoutScout_reputationInput = {
    create?: XOR<AgentProfileCreateWithoutScout_reputationInput, AgentProfileUncheckedCreateWithoutScout_reputationInput>
    connectOrCreate?: AgentProfileCreateOrConnectWithoutScout_reputationInput
    connect?: AgentProfileWhereUniqueInput
  }

  export type AgentProfileUpdateOneRequiredWithoutScout_reputationNestedInput = {
    create?: XOR<AgentProfileCreateWithoutScout_reputationInput, AgentProfileUncheckedCreateWithoutScout_reputationInput>
    connectOrCreate?: AgentProfileCreateOrConnectWithoutScout_reputationInput
    upsert?: AgentProfileUpsertWithoutScout_reputationInput
    connect?: AgentProfileWhereUniqueInput
    update?: XOR<XOR<AgentProfileUpdateToOneWithWhereWithoutScout_reputationInput, AgentProfileUpdateWithoutScout_reputationInput>, AgentProfileUncheckedUpdateWithoutScout_reputationInput>
  }

  export type TaskCreateNestedOneWithoutBid_proposalsInput = {
    create?: XOR<TaskCreateWithoutBid_proposalsInput, TaskUncheckedCreateWithoutBid_proposalsInput>
    connectOrCreate?: TaskCreateOrConnectWithoutBid_proposalsInput
    connect?: TaskWhereUniqueInput
  }

  export type AgentProfileCreateNestedOneWithoutBid_proposalsInput = {
    create?: XOR<AgentProfileCreateWithoutBid_proposalsInput, AgentProfileUncheckedCreateWithoutBid_proposalsInput>
    connectOrCreate?: AgentProfileCreateOrConnectWithoutBid_proposalsInput
    connect?: AgentProfileWhereUniqueInput
  }

  export type NullableIntFieldUpdateOperationsInput = {
    set?: number | null
    increment?: number
    decrement?: number
    multiply?: number
    divide?: number
  }

  export type NullableFloatFieldUpdateOperationsInput = {
    set?: number | null
    increment?: number
    decrement?: number
    multiply?: number
    divide?: number
  }

  export type TaskUpdateOneRequiredWithoutBid_proposalsNestedInput = {
    create?: XOR<TaskCreateWithoutBid_proposalsInput, TaskUncheckedCreateWithoutBid_proposalsInput>
    connectOrCreate?: TaskCreateOrConnectWithoutBid_proposalsInput
    upsert?: TaskUpsertWithoutBid_proposalsInput
    connect?: TaskWhereUniqueInput
    update?: XOR<XOR<TaskUpdateToOneWithWhereWithoutBid_proposalsInput, TaskUpdateWithoutBid_proposalsInput>, TaskUncheckedUpdateWithoutBid_proposalsInput>
  }

  export type AgentProfileUpdateOneRequiredWithoutBid_proposalsNestedInput = {
    create?: XOR<AgentProfileCreateWithoutBid_proposalsInput, AgentProfileUncheckedCreateWithoutBid_proposalsInput>
    connectOrCreate?: AgentProfileCreateOrConnectWithoutBid_proposalsInput
    upsert?: AgentProfileUpsertWithoutBid_proposalsInput
    connect?: AgentProfileWhereUniqueInput
    update?: XOR<XOR<AgentProfileUpdateToOneWithWhereWithoutBid_proposalsInput, AgentProfileUpdateWithoutBid_proposalsInput>, AgentProfileUncheckedUpdateWithoutBid_proposalsInput>
  }

  export type AgentWebhookCreateeventsInput = {
    set: string[]
  }

  export type AgentWebhookUpdateeventsInput = {
    set?: string[]
    push?: string | string[]
  }

  export type TaskCreateNestedOneWithoutArbitrationsInput = {
    create?: XOR<TaskCreateWithoutArbitrationsInput, TaskUncheckedCreateWithoutArbitrationsInput>
    connectOrCreate?: TaskCreateOrConnectWithoutArbitrationsInput
    connect?: TaskWhereUniqueInput
  }

  export type AgentProfileCreateNestedOneWithoutArbitrations_as_builderInput = {
    create?: XOR<AgentProfileCreateWithoutArbitrations_as_builderInput, AgentProfileUncheckedCreateWithoutArbitrations_as_builderInput>
    connectOrCreate?: AgentProfileCreateOrConnectWithoutArbitrations_as_builderInput
    connect?: AgentProfileWhereUniqueInput
  }

  export type AgentProfileCreateNestedOneWithoutArbitrations_as_evaluatorInput = {
    create?: XOR<AgentProfileCreateWithoutArbitrations_as_evaluatorInput, AgentProfileUncheckedCreateWithoutArbitrations_as_evaluatorInput>
    connectOrCreate?: AgentProfileCreateOrConnectWithoutArbitrations_as_evaluatorInput
    connect?: AgentProfileWhereUniqueInput
  }

  export type ArbitrationVoteCreateNestedManyWithoutArbitrationInput = {
    create?: XOR<ArbitrationVoteCreateWithoutArbitrationInput, ArbitrationVoteUncheckedCreateWithoutArbitrationInput> | ArbitrationVoteCreateWithoutArbitrationInput[] | ArbitrationVoteUncheckedCreateWithoutArbitrationInput[]
    connectOrCreate?: ArbitrationVoteCreateOrConnectWithoutArbitrationInput | ArbitrationVoteCreateOrConnectWithoutArbitrationInput[]
    createMany?: ArbitrationVoteCreateManyArbitrationInputEnvelope
    connect?: ArbitrationVoteWhereUniqueInput | ArbitrationVoteWhereUniqueInput[]
  }

  export type SlashingEventCreateNestedManyWithoutArbitrationInput = {
    create?: XOR<SlashingEventCreateWithoutArbitrationInput, SlashingEventUncheckedCreateWithoutArbitrationInput> | SlashingEventCreateWithoutArbitrationInput[] | SlashingEventUncheckedCreateWithoutArbitrationInput[]
    connectOrCreate?: SlashingEventCreateOrConnectWithoutArbitrationInput | SlashingEventCreateOrConnectWithoutArbitrationInput[]
    createMany?: SlashingEventCreateManyArbitrationInputEnvelope
    connect?: SlashingEventWhereUniqueInput | SlashingEventWhereUniqueInput[]
  }

  export type ArbitrationVoteUncheckedCreateNestedManyWithoutArbitrationInput = {
    create?: XOR<ArbitrationVoteCreateWithoutArbitrationInput, ArbitrationVoteUncheckedCreateWithoutArbitrationInput> | ArbitrationVoteCreateWithoutArbitrationInput[] | ArbitrationVoteUncheckedCreateWithoutArbitrationInput[]
    connectOrCreate?: ArbitrationVoteCreateOrConnectWithoutArbitrationInput | ArbitrationVoteCreateOrConnectWithoutArbitrationInput[]
    createMany?: ArbitrationVoteCreateManyArbitrationInputEnvelope
    connect?: ArbitrationVoteWhereUniqueInput | ArbitrationVoteWhereUniqueInput[]
  }

  export type SlashingEventUncheckedCreateNestedManyWithoutArbitrationInput = {
    create?: XOR<SlashingEventCreateWithoutArbitrationInput, SlashingEventUncheckedCreateWithoutArbitrationInput> | SlashingEventCreateWithoutArbitrationInput[] | SlashingEventUncheckedCreateWithoutArbitrationInput[]
    connectOrCreate?: SlashingEventCreateOrConnectWithoutArbitrationInput | SlashingEventCreateOrConnectWithoutArbitrationInput[]
    createMany?: SlashingEventCreateManyArbitrationInputEnvelope
    connect?: SlashingEventWhereUniqueInput | SlashingEventWhereUniqueInput[]
  }

  export type TaskUpdateOneRequiredWithoutArbitrationsNestedInput = {
    create?: XOR<TaskCreateWithoutArbitrationsInput, TaskUncheckedCreateWithoutArbitrationsInput>
    connectOrCreate?: TaskCreateOrConnectWithoutArbitrationsInput
    upsert?: TaskUpsertWithoutArbitrationsInput
    connect?: TaskWhereUniqueInput
    update?: XOR<XOR<TaskUpdateToOneWithWhereWithoutArbitrationsInput, TaskUpdateWithoutArbitrationsInput>, TaskUncheckedUpdateWithoutArbitrationsInput>
  }

  export type AgentProfileUpdateOneRequiredWithoutArbitrations_as_builderNestedInput = {
    create?: XOR<AgentProfileCreateWithoutArbitrations_as_builderInput, AgentProfileUncheckedCreateWithoutArbitrations_as_builderInput>
    connectOrCreate?: AgentProfileCreateOrConnectWithoutArbitrations_as_builderInput
    upsert?: AgentProfileUpsertWithoutArbitrations_as_builderInput
    connect?: AgentProfileWhereUniqueInput
    update?: XOR<XOR<AgentProfileUpdateToOneWithWhereWithoutArbitrations_as_builderInput, AgentProfileUpdateWithoutArbitrations_as_builderInput>, AgentProfileUncheckedUpdateWithoutArbitrations_as_builderInput>
  }

  export type AgentProfileUpdateOneRequiredWithoutArbitrations_as_evaluatorNestedInput = {
    create?: XOR<AgentProfileCreateWithoutArbitrations_as_evaluatorInput, AgentProfileUncheckedCreateWithoutArbitrations_as_evaluatorInput>
    connectOrCreate?: AgentProfileCreateOrConnectWithoutArbitrations_as_evaluatorInput
    upsert?: AgentProfileUpsertWithoutArbitrations_as_evaluatorInput
    connect?: AgentProfileWhereUniqueInput
    update?: XOR<XOR<AgentProfileUpdateToOneWithWhereWithoutArbitrations_as_evaluatorInput, AgentProfileUpdateWithoutArbitrations_as_evaluatorInput>, AgentProfileUncheckedUpdateWithoutArbitrations_as_evaluatorInput>
  }

  export type ArbitrationVoteUpdateManyWithoutArbitrationNestedInput = {
    create?: XOR<ArbitrationVoteCreateWithoutArbitrationInput, ArbitrationVoteUncheckedCreateWithoutArbitrationInput> | ArbitrationVoteCreateWithoutArbitrationInput[] | ArbitrationVoteUncheckedCreateWithoutArbitrationInput[]
    connectOrCreate?: ArbitrationVoteCreateOrConnectWithoutArbitrationInput | ArbitrationVoteCreateOrConnectWithoutArbitrationInput[]
    upsert?: ArbitrationVoteUpsertWithWhereUniqueWithoutArbitrationInput | ArbitrationVoteUpsertWithWhereUniqueWithoutArbitrationInput[]
    createMany?: ArbitrationVoteCreateManyArbitrationInputEnvelope
    set?: ArbitrationVoteWhereUniqueInput | ArbitrationVoteWhereUniqueInput[]
    disconnect?: ArbitrationVoteWhereUniqueInput | ArbitrationVoteWhereUniqueInput[]
    delete?: ArbitrationVoteWhereUniqueInput | ArbitrationVoteWhereUniqueInput[]
    connect?: ArbitrationVoteWhereUniqueInput | ArbitrationVoteWhereUniqueInput[]
    update?: ArbitrationVoteUpdateWithWhereUniqueWithoutArbitrationInput | ArbitrationVoteUpdateWithWhereUniqueWithoutArbitrationInput[]
    updateMany?: ArbitrationVoteUpdateManyWithWhereWithoutArbitrationInput | ArbitrationVoteUpdateManyWithWhereWithoutArbitrationInput[]
    deleteMany?: ArbitrationVoteScalarWhereInput | ArbitrationVoteScalarWhereInput[]
  }

  export type SlashingEventUpdateManyWithoutArbitrationNestedInput = {
    create?: XOR<SlashingEventCreateWithoutArbitrationInput, SlashingEventUncheckedCreateWithoutArbitrationInput> | SlashingEventCreateWithoutArbitrationInput[] | SlashingEventUncheckedCreateWithoutArbitrationInput[]
    connectOrCreate?: SlashingEventCreateOrConnectWithoutArbitrationInput | SlashingEventCreateOrConnectWithoutArbitrationInput[]
    upsert?: SlashingEventUpsertWithWhereUniqueWithoutArbitrationInput | SlashingEventUpsertWithWhereUniqueWithoutArbitrationInput[]
    createMany?: SlashingEventCreateManyArbitrationInputEnvelope
    set?: SlashingEventWhereUniqueInput | SlashingEventWhereUniqueInput[]
    disconnect?: SlashingEventWhereUniqueInput | SlashingEventWhereUniqueInput[]
    delete?: SlashingEventWhereUniqueInput | SlashingEventWhereUniqueInput[]
    connect?: SlashingEventWhereUniqueInput | SlashingEventWhereUniqueInput[]
    update?: SlashingEventUpdateWithWhereUniqueWithoutArbitrationInput | SlashingEventUpdateWithWhereUniqueWithoutArbitrationInput[]
    updateMany?: SlashingEventUpdateManyWithWhereWithoutArbitrationInput | SlashingEventUpdateManyWithWhereWithoutArbitrationInput[]
    deleteMany?: SlashingEventScalarWhereInput | SlashingEventScalarWhereInput[]
  }

  export type ArbitrationVoteUncheckedUpdateManyWithoutArbitrationNestedInput = {
    create?: XOR<ArbitrationVoteCreateWithoutArbitrationInput, ArbitrationVoteUncheckedCreateWithoutArbitrationInput> | ArbitrationVoteCreateWithoutArbitrationInput[] | ArbitrationVoteUncheckedCreateWithoutArbitrationInput[]
    connectOrCreate?: ArbitrationVoteCreateOrConnectWithoutArbitrationInput | ArbitrationVoteCreateOrConnectWithoutArbitrationInput[]
    upsert?: ArbitrationVoteUpsertWithWhereUniqueWithoutArbitrationInput | ArbitrationVoteUpsertWithWhereUniqueWithoutArbitrationInput[]
    createMany?: ArbitrationVoteCreateManyArbitrationInputEnvelope
    set?: ArbitrationVoteWhereUniqueInput | ArbitrationVoteWhereUniqueInput[]
    disconnect?: ArbitrationVoteWhereUniqueInput | ArbitrationVoteWhereUniqueInput[]
    delete?: ArbitrationVoteWhereUniqueInput | ArbitrationVoteWhereUniqueInput[]
    connect?: ArbitrationVoteWhereUniqueInput | ArbitrationVoteWhereUniqueInput[]
    update?: ArbitrationVoteUpdateWithWhereUniqueWithoutArbitrationInput | ArbitrationVoteUpdateWithWhereUniqueWithoutArbitrationInput[]
    updateMany?: ArbitrationVoteUpdateManyWithWhereWithoutArbitrationInput | ArbitrationVoteUpdateManyWithWhereWithoutArbitrationInput[]
    deleteMany?: ArbitrationVoteScalarWhereInput | ArbitrationVoteScalarWhereInput[]
  }

  export type SlashingEventUncheckedUpdateManyWithoutArbitrationNestedInput = {
    create?: XOR<SlashingEventCreateWithoutArbitrationInput, SlashingEventUncheckedCreateWithoutArbitrationInput> | SlashingEventCreateWithoutArbitrationInput[] | SlashingEventUncheckedCreateWithoutArbitrationInput[]
    connectOrCreate?: SlashingEventCreateOrConnectWithoutArbitrationInput | SlashingEventCreateOrConnectWithoutArbitrationInput[]
    upsert?: SlashingEventUpsertWithWhereUniqueWithoutArbitrationInput | SlashingEventUpsertWithWhereUniqueWithoutArbitrationInput[]
    createMany?: SlashingEventCreateManyArbitrationInputEnvelope
    set?: SlashingEventWhereUniqueInput | SlashingEventWhereUniqueInput[]
    disconnect?: SlashingEventWhereUniqueInput | SlashingEventWhereUniqueInput[]
    delete?: SlashingEventWhereUniqueInput | SlashingEventWhereUniqueInput[]
    connect?: SlashingEventWhereUniqueInput | SlashingEventWhereUniqueInput[]
    update?: SlashingEventUpdateWithWhereUniqueWithoutArbitrationInput | SlashingEventUpdateWithWhereUniqueWithoutArbitrationInput[]
    updateMany?: SlashingEventUpdateManyWithWhereWithoutArbitrationInput | SlashingEventUpdateManyWithWhereWithoutArbitrationInput[]
    deleteMany?: SlashingEventScalarWhereInput | SlashingEventScalarWhereInput[]
  }

  export type ArbitrationCreateNestedOneWithoutVotesInput = {
    create?: XOR<ArbitrationCreateWithoutVotesInput, ArbitrationUncheckedCreateWithoutVotesInput>
    connectOrCreate?: ArbitrationCreateOrConnectWithoutVotesInput
    connect?: ArbitrationWhereUniqueInput
  }

  export type AgentProfileCreateNestedOneWithoutArbitration_votesInput = {
    create?: XOR<AgentProfileCreateWithoutArbitration_votesInput, AgentProfileUncheckedCreateWithoutArbitration_votesInput>
    connectOrCreate?: AgentProfileCreateOrConnectWithoutArbitration_votesInput
    connect?: AgentProfileWhereUniqueInput
  }

  export type ArbitrationUpdateOneRequiredWithoutVotesNestedInput = {
    create?: XOR<ArbitrationCreateWithoutVotesInput, ArbitrationUncheckedCreateWithoutVotesInput>
    connectOrCreate?: ArbitrationCreateOrConnectWithoutVotesInput
    upsert?: ArbitrationUpsertWithoutVotesInput
    connect?: ArbitrationWhereUniqueInput
    update?: XOR<XOR<ArbitrationUpdateToOneWithWhereWithoutVotesInput, ArbitrationUpdateWithoutVotesInput>, ArbitrationUncheckedUpdateWithoutVotesInput>
  }

  export type AgentProfileUpdateOneRequiredWithoutArbitration_votesNestedInput = {
    create?: XOR<AgentProfileCreateWithoutArbitration_votesInput, AgentProfileUncheckedCreateWithoutArbitration_votesInput>
    connectOrCreate?: AgentProfileCreateOrConnectWithoutArbitration_votesInput
    upsert?: AgentProfileUpsertWithoutArbitration_votesInput
    connect?: AgentProfileWhereUniqueInput
    update?: XOR<XOR<AgentProfileUpdateToOneWithWhereWithoutArbitration_votesInput, AgentProfileUpdateWithoutArbitration_votesInput>, AgentProfileUncheckedUpdateWithoutArbitration_votesInput>
  }

  export type AgentProfileCreateNestedOneWithoutCreated_projectsInput = {
    create?: XOR<AgentProfileCreateWithoutCreated_projectsInput, AgentProfileUncheckedCreateWithoutCreated_projectsInput>
    connectOrCreate?: AgentProfileCreateOrConnectWithoutCreated_projectsInput
    connect?: AgentProfileWhereUniqueInput
  }

  export type TokenSaleCreateNestedManyWithoutProjectInput = {
    create?: XOR<TokenSaleCreateWithoutProjectInput, TokenSaleUncheckedCreateWithoutProjectInput> | TokenSaleCreateWithoutProjectInput[] | TokenSaleUncheckedCreateWithoutProjectInput[]
    connectOrCreate?: TokenSaleCreateOrConnectWithoutProjectInput | TokenSaleCreateOrConnectWithoutProjectInput[]
    createMany?: TokenSaleCreateManyProjectInputEnvelope
    connect?: TokenSaleWhereUniqueInput | TokenSaleWhereUniqueInput[]
  }

  export type TokenSaleUncheckedCreateNestedManyWithoutProjectInput = {
    create?: XOR<TokenSaleCreateWithoutProjectInput, TokenSaleUncheckedCreateWithoutProjectInput> | TokenSaleCreateWithoutProjectInput[] | TokenSaleUncheckedCreateWithoutProjectInput[]
    connectOrCreate?: TokenSaleCreateOrConnectWithoutProjectInput | TokenSaleCreateOrConnectWithoutProjectInput[]
    createMany?: TokenSaleCreateManyProjectInputEnvelope
    connect?: TokenSaleWhereUniqueInput | TokenSaleWhereUniqueInput[]
  }

  export type AgentProfileUpdateOneRequiredWithoutCreated_projectsNestedInput = {
    create?: XOR<AgentProfileCreateWithoutCreated_projectsInput, AgentProfileUncheckedCreateWithoutCreated_projectsInput>
    connectOrCreate?: AgentProfileCreateOrConnectWithoutCreated_projectsInput
    upsert?: AgentProfileUpsertWithoutCreated_projectsInput
    connect?: AgentProfileWhereUniqueInput
    update?: XOR<XOR<AgentProfileUpdateToOneWithWhereWithoutCreated_projectsInput, AgentProfileUpdateWithoutCreated_projectsInput>, AgentProfileUncheckedUpdateWithoutCreated_projectsInput>
  }

  export type TokenSaleUpdateManyWithoutProjectNestedInput = {
    create?: XOR<TokenSaleCreateWithoutProjectInput, TokenSaleUncheckedCreateWithoutProjectInput> | TokenSaleCreateWithoutProjectInput[] | TokenSaleUncheckedCreateWithoutProjectInput[]
    connectOrCreate?: TokenSaleCreateOrConnectWithoutProjectInput | TokenSaleCreateOrConnectWithoutProjectInput[]
    upsert?: TokenSaleUpsertWithWhereUniqueWithoutProjectInput | TokenSaleUpsertWithWhereUniqueWithoutProjectInput[]
    createMany?: TokenSaleCreateManyProjectInputEnvelope
    set?: TokenSaleWhereUniqueInput | TokenSaleWhereUniqueInput[]
    disconnect?: TokenSaleWhereUniqueInput | TokenSaleWhereUniqueInput[]
    delete?: TokenSaleWhereUniqueInput | TokenSaleWhereUniqueInput[]
    connect?: TokenSaleWhereUniqueInput | TokenSaleWhereUniqueInput[]
    update?: TokenSaleUpdateWithWhereUniqueWithoutProjectInput | TokenSaleUpdateWithWhereUniqueWithoutProjectInput[]
    updateMany?: TokenSaleUpdateManyWithWhereWithoutProjectInput | TokenSaleUpdateManyWithWhereWithoutProjectInput[]
    deleteMany?: TokenSaleScalarWhereInput | TokenSaleScalarWhereInput[]
  }

  export type TokenSaleUncheckedUpdateManyWithoutProjectNestedInput = {
    create?: XOR<TokenSaleCreateWithoutProjectInput, TokenSaleUncheckedCreateWithoutProjectInput> | TokenSaleCreateWithoutProjectInput[] | TokenSaleUncheckedCreateWithoutProjectInput[]
    connectOrCreate?: TokenSaleCreateOrConnectWithoutProjectInput | TokenSaleCreateOrConnectWithoutProjectInput[]
    upsert?: TokenSaleUpsertWithWhereUniqueWithoutProjectInput | TokenSaleUpsertWithWhereUniqueWithoutProjectInput[]
    createMany?: TokenSaleCreateManyProjectInputEnvelope
    set?: TokenSaleWhereUniqueInput | TokenSaleWhereUniqueInput[]
    disconnect?: TokenSaleWhereUniqueInput | TokenSaleWhereUniqueInput[]
    delete?: TokenSaleWhereUniqueInput | TokenSaleWhereUniqueInput[]
    connect?: TokenSaleWhereUniqueInput | TokenSaleWhereUniqueInput[]
    update?: TokenSaleUpdateWithWhereUniqueWithoutProjectInput | TokenSaleUpdateWithWhereUniqueWithoutProjectInput[]
    updateMany?: TokenSaleUpdateManyWithWhereWithoutProjectInput | TokenSaleUpdateManyWithWhereWithoutProjectInput[]
    deleteMany?: TokenSaleScalarWhereInput | TokenSaleScalarWhereInput[]
  }

  export type AgentProjectCreateNestedOneWithoutToken_salesInput = {
    create?: XOR<AgentProjectCreateWithoutToken_salesInput, AgentProjectUncheckedCreateWithoutToken_salesInput>
    connectOrCreate?: AgentProjectCreateOrConnectWithoutToken_salesInput
    connect?: AgentProjectWhereUniqueInput
  }

  export type AgentProjectUpdateOneRequiredWithoutToken_salesNestedInput = {
    create?: XOR<AgentProjectCreateWithoutToken_salesInput, AgentProjectUncheckedCreateWithoutToken_salesInput>
    connectOrCreate?: AgentProjectCreateOrConnectWithoutToken_salesInput
    upsert?: AgentProjectUpsertWithoutToken_salesInput
    connect?: AgentProjectWhereUniqueInput
    update?: XOR<XOR<AgentProjectUpdateToOneWithWhereWithoutToken_salesInput, AgentProjectUpdateWithoutToken_salesInput>, AgentProjectUncheckedUpdateWithoutToken_salesInput>
  }

  export type AgentProfileCreateNestedOneWithoutSlashing_eventsInput = {
    create?: XOR<AgentProfileCreateWithoutSlashing_eventsInput, AgentProfileUncheckedCreateWithoutSlashing_eventsInput>
    connectOrCreate?: AgentProfileCreateOrConnectWithoutSlashing_eventsInput
    connect?: AgentProfileWhereUniqueInput
  }

  export type ArbitrationCreateNestedOneWithoutSlashing_eventsInput = {
    create?: XOR<ArbitrationCreateWithoutSlashing_eventsInput, ArbitrationUncheckedCreateWithoutSlashing_eventsInput>
    connectOrCreate?: ArbitrationCreateOrConnectWithoutSlashing_eventsInput
    connect?: ArbitrationWhereUniqueInput
  }

  export type AgentProfileUpdateOneRequiredWithoutSlashing_eventsNestedInput = {
    create?: XOR<AgentProfileCreateWithoutSlashing_eventsInput, AgentProfileUncheckedCreateWithoutSlashing_eventsInput>
    connectOrCreate?: AgentProfileCreateOrConnectWithoutSlashing_eventsInput
    upsert?: AgentProfileUpsertWithoutSlashing_eventsInput
    connect?: AgentProfileWhereUniqueInput
    update?: XOR<XOR<AgentProfileUpdateToOneWithWhereWithoutSlashing_eventsInput, AgentProfileUpdateWithoutSlashing_eventsInput>, AgentProfileUncheckedUpdateWithoutSlashing_eventsInput>
  }

  export type ArbitrationUpdateOneRequiredWithoutSlashing_eventsNestedInput = {
    create?: XOR<ArbitrationCreateWithoutSlashing_eventsInput, ArbitrationUncheckedCreateWithoutSlashing_eventsInput>
    connectOrCreate?: ArbitrationCreateOrConnectWithoutSlashing_eventsInput
    upsert?: ArbitrationUpsertWithoutSlashing_eventsInput
    connect?: ArbitrationWhereUniqueInput
    update?: XOR<XOR<ArbitrationUpdateToOneWithWhereWithoutSlashing_eventsInput, ArbitrationUpdateWithoutSlashing_eventsInput>, ArbitrationUncheckedUpdateWithoutSlashing_eventsInput>
  }

  export type NestedStringFilter<$PrismaModel = never> = {
    equals?: string | StringFieldRefInput<$PrismaModel>
    in?: string[] | ListStringFieldRefInput<$PrismaModel>
    notIn?: string[] | ListStringFieldRefInput<$PrismaModel>
    lt?: string | StringFieldRefInput<$PrismaModel>
    lte?: string | StringFieldRefInput<$PrismaModel>
    gt?: string | StringFieldRefInput<$PrismaModel>
    gte?: string | StringFieldRefInput<$PrismaModel>
    contains?: string | StringFieldRefInput<$PrismaModel>
    startsWith?: string | StringFieldRefInput<$PrismaModel>
    endsWith?: string | StringFieldRefInput<$PrismaModel>
    not?: NestedStringFilter<$PrismaModel> | string
  }

  export type NestedFloatFilter<$PrismaModel = never> = {
    equals?: number | FloatFieldRefInput<$PrismaModel>
    in?: number[] | ListFloatFieldRefInput<$PrismaModel>
    notIn?: number[] | ListFloatFieldRefInput<$PrismaModel>
    lt?: number | FloatFieldRefInput<$PrismaModel>
    lte?: number | FloatFieldRefInput<$PrismaModel>
    gt?: number | FloatFieldRefInput<$PrismaModel>
    gte?: number | FloatFieldRefInput<$PrismaModel>
    not?: NestedFloatFilter<$PrismaModel> | number
  }

  export type NestedStringNullableFilter<$PrismaModel = never> = {
    equals?: string | StringFieldRefInput<$PrismaModel> | null
    in?: string[] | ListStringFieldRefInput<$PrismaModel> | null
    notIn?: string[] | ListStringFieldRefInput<$PrismaModel> | null
    lt?: string | StringFieldRefInput<$PrismaModel>
    lte?: string | StringFieldRefInput<$PrismaModel>
    gt?: string | StringFieldRefInput<$PrismaModel>
    gte?: string | StringFieldRefInput<$PrismaModel>
    contains?: string | StringFieldRefInput<$PrismaModel>
    startsWith?: string | StringFieldRefInput<$PrismaModel>
    endsWith?: string | StringFieldRefInput<$PrismaModel>
    not?: NestedStringNullableFilter<$PrismaModel> | string | null
  }

  export type NestedIntFilter<$PrismaModel = never> = {
    equals?: number | IntFieldRefInput<$PrismaModel>
    in?: number[] | ListIntFieldRefInput<$PrismaModel>
    notIn?: number[] | ListIntFieldRefInput<$PrismaModel>
    lt?: number | IntFieldRefInput<$PrismaModel>
    lte?: number | IntFieldRefInput<$PrismaModel>
    gt?: number | IntFieldRefInput<$PrismaModel>
    gte?: number | IntFieldRefInput<$PrismaModel>
    not?: NestedIntFilter<$PrismaModel> | number
  }

  export type NestedDateTimeNullableFilter<$PrismaModel = never> = {
    equals?: Date | string | DateTimeFieldRefInput<$PrismaModel> | null
    in?: Date[] | string[] | ListDateTimeFieldRefInput<$PrismaModel> | null
    notIn?: Date[] | string[] | ListDateTimeFieldRefInput<$PrismaModel> | null
    lt?: Date | string | DateTimeFieldRefInput<$PrismaModel>
    lte?: Date | string | DateTimeFieldRefInput<$PrismaModel>
    gt?: Date | string | DateTimeFieldRefInput<$PrismaModel>
    gte?: Date | string | DateTimeFieldRefInput<$PrismaModel>
    not?: NestedDateTimeNullableFilter<$PrismaModel> | Date | string | null
  }

  export type NestedBoolFilter<$PrismaModel = never> = {
    equals?: boolean | BooleanFieldRefInput<$PrismaModel>
    not?: NestedBoolFilter<$PrismaModel> | boolean
  }

  export type NestedDateTimeFilter<$PrismaModel = never> = {
    equals?: Date | string | DateTimeFieldRefInput<$PrismaModel>
    in?: Date[] | string[] | ListDateTimeFieldRefInput<$PrismaModel>
    notIn?: Date[] | string[] | ListDateTimeFieldRefInput<$PrismaModel>
    lt?: Date | string | DateTimeFieldRefInput<$PrismaModel>
    lte?: Date | string | DateTimeFieldRefInput<$PrismaModel>
    gt?: Date | string | DateTimeFieldRefInput<$PrismaModel>
    gte?: Date | string | DateTimeFieldRefInput<$PrismaModel>
    not?: NestedDateTimeFilter<$PrismaModel> | Date | string
  }

  export type NestedStringWithAggregatesFilter<$PrismaModel = never> = {
    equals?: string | StringFieldRefInput<$PrismaModel>
    in?: string[] | ListStringFieldRefInput<$PrismaModel>
    notIn?: string[] | ListStringFieldRefInput<$PrismaModel>
    lt?: string | StringFieldRefInput<$PrismaModel>
    lte?: string | StringFieldRefInput<$PrismaModel>
    gt?: string | StringFieldRefInput<$PrismaModel>
    gte?: string | StringFieldRefInput<$PrismaModel>
    contains?: string | StringFieldRefInput<$PrismaModel>
    startsWith?: string | StringFieldRefInput<$PrismaModel>
    endsWith?: string | StringFieldRefInput<$PrismaModel>
    not?: NestedStringWithAggregatesFilter<$PrismaModel> | string
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedStringFilter<$PrismaModel>
    _max?: NestedStringFilter<$PrismaModel>
  }

  export type NestedFloatWithAggregatesFilter<$PrismaModel = never> = {
    equals?: number | FloatFieldRefInput<$PrismaModel>
    in?: number[] | ListFloatFieldRefInput<$PrismaModel>
    notIn?: number[] | ListFloatFieldRefInput<$PrismaModel>
    lt?: number | FloatFieldRefInput<$PrismaModel>
    lte?: number | FloatFieldRefInput<$PrismaModel>
    gt?: number | FloatFieldRefInput<$PrismaModel>
    gte?: number | FloatFieldRefInput<$PrismaModel>
    not?: NestedFloatWithAggregatesFilter<$PrismaModel> | number
    _count?: NestedIntFilter<$PrismaModel>
    _avg?: NestedFloatFilter<$PrismaModel>
    _sum?: NestedFloatFilter<$PrismaModel>
    _min?: NestedFloatFilter<$PrismaModel>
    _max?: NestedFloatFilter<$PrismaModel>
  }

  export type NestedStringNullableWithAggregatesFilter<$PrismaModel = never> = {
    equals?: string | StringFieldRefInput<$PrismaModel> | null
    in?: string[] | ListStringFieldRefInput<$PrismaModel> | null
    notIn?: string[] | ListStringFieldRefInput<$PrismaModel> | null
    lt?: string | StringFieldRefInput<$PrismaModel>
    lte?: string | StringFieldRefInput<$PrismaModel>
    gt?: string | StringFieldRefInput<$PrismaModel>
    gte?: string | StringFieldRefInput<$PrismaModel>
    contains?: string | StringFieldRefInput<$PrismaModel>
    startsWith?: string | StringFieldRefInput<$PrismaModel>
    endsWith?: string | StringFieldRefInput<$PrismaModel>
    not?: NestedStringNullableWithAggregatesFilter<$PrismaModel> | string | null
    _count?: NestedIntNullableFilter<$PrismaModel>
    _min?: NestedStringNullableFilter<$PrismaModel>
    _max?: NestedStringNullableFilter<$PrismaModel>
  }

  export type NestedIntNullableFilter<$PrismaModel = never> = {
    equals?: number | IntFieldRefInput<$PrismaModel> | null
    in?: number[] | ListIntFieldRefInput<$PrismaModel> | null
    notIn?: number[] | ListIntFieldRefInput<$PrismaModel> | null
    lt?: number | IntFieldRefInput<$PrismaModel>
    lte?: number | IntFieldRefInput<$PrismaModel>
    gt?: number | IntFieldRefInput<$PrismaModel>
    gte?: number | IntFieldRefInput<$PrismaModel>
    not?: NestedIntNullableFilter<$PrismaModel> | number | null
  }

  export type NestedIntWithAggregatesFilter<$PrismaModel = never> = {
    equals?: number | IntFieldRefInput<$PrismaModel>
    in?: number[] | ListIntFieldRefInput<$PrismaModel>
    notIn?: number[] | ListIntFieldRefInput<$PrismaModel>
    lt?: number | IntFieldRefInput<$PrismaModel>
    lte?: number | IntFieldRefInput<$PrismaModel>
    gt?: number | IntFieldRefInput<$PrismaModel>
    gte?: number | IntFieldRefInput<$PrismaModel>
    not?: NestedIntWithAggregatesFilter<$PrismaModel> | number
    _count?: NestedIntFilter<$PrismaModel>
    _avg?: NestedFloatFilter<$PrismaModel>
    _sum?: NestedIntFilter<$PrismaModel>
    _min?: NestedIntFilter<$PrismaModel>
    _max?: NestedIntFilter<$PrismaModel>
  }
  export type NestedJsonFilter<$PrismaModel = never> =
    | PatchUndefined<
        Either<Required<NestedJsonFilterBase<$PrismaModel>>, Exclude<keyof Required<NestedJsonFilterBase<$PrismaModel>>, 'path'>>,
        Required<NestedJsonFilterBase<$PrismaModel>>
      >
    | OptionalFlat<Omit<Required<NestedJsonFilterBase<$PrismaModel>>, 'path'>>

  export type NestedJsonFilterBase<$PrismaModel = never> = {
    equals?: InputJsonValue | JsonFieldRefInput<$PrismaModel> | JsonNullValueFilter
    path?: string[]
    mode?: QueryMode | EnumQueryModeFieldRefInput<$PrismaModel>
    string_contains?: string | StringFieldRefInput<$PrismaModel>
    string_starts_with?: string | StringFieldRefInput<$PrismaModel>
    string_ends_with?: string | StringFieldRefInput<$PrismaModel>
    array_starts_with?: InputJsonValue | JsonFieldRefInput<$PrismaModel> | null
    array_ends_with?: InputJsonValue | JsonFieldRefInput<$PrismaModel> | null
    array_contains?: InputJsonValue | JsonFieldRefInput<$PrismaModel> | null
    lt?: InputJsonValue | JsonFieldRefInput<$PrismaModel>
    lte?: InputJsonValue | JsonFieldRefInput<$PrismaModel>
    gt?: InputJsonValue | JsonFieldRefInput<$PrismaModel>
    gte?: InputJsonValue | JsonFieldRefInput<$PrismaModel>
    not?: InputJsonValue | JsonFieldRefInput<$PrismaModel> | JsonNullValueFilter
  }

  export type NestedDateTimeNullableWithAggregatesFilter<$PrismaModel = never> = {
    equals?: Date | string | DateTimeFieldRefInput<$PrismaModel> | null
    in?: Date[] | string[] | ListDateTimeFieldRefInput<$PrismaModel> | null
    notIn?: Date[] | string[] | ListDateTimeFieldRefInput<$PrismaModel> | null
    lt?: Date | string | DateTimeFieldRefInput<$PrismaModel>
    lte?: Date | string | DateTimeFieldRefInput<$PrismaModel>
    gt?: Date | string | DateTimeFieldRefInput<$PrismaModel>
    gte?: Date | string | DateTimeFieldRefInput<$PrismaModel>
    not?: NestedDateTimeNullableWithAggregatesFilter<$PrismaModel> | Date | string | null
    _count?: NestedIntNullableFilter<$PrismaModel>
    _min?: NestedDateTimeNullableFilter<$PrismaModel>
    _max?: NestedDateTimeNullableFilter<$PrismaModel>
  }

  export type NestedBoolWithAggregatesFilter<$PrismaModel = never> = {
    equals?: boolean | BooleanFieldRefInput<$PrismaModel>
    not?: NestedBoolWithAggregatesFilter<$PrismaModel> | boolean
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedBoolFilter<$PrismaModel>
    _max?: NestedBoolFilter<$PrismaModel>
  }

  export type NestedDateTimeWithAggregatesFilter<$PrismaModel = never> = {
    equals?: Date | string | DateTimeFieldRefInput<$PrismaModel>
    in?: Date[] | string[] | ListDateTimeFieldRefInput<$PrismaModel>
    notIn?: Date[] | string[] | ListDateTimeFieldRefInput<$PrismaModel>
    lt?: Date | string | DateTimeFieldRefInput<$PrismaModel>
    lte?: Date | string | DateTimeFieldRefInput<$PrismaModel>
    gt?: Date | string | DateTimeFieldRefInput<$PrismaModel>
    gte?: Date | string | DateTimeFieldRefInput<$PrismaModel>
    not?: NestedDateTimeWithAggregatesFilter<$PrismaModel> | Date | string
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedDateTimeFilter<$PrismaModel>
    _max?: NestedDateTimeFilter<$PrismaModel>
  }
  export type NestedJsonNullableFilter<$PrismaModel = never> =
    | PatchUndefined<
        Either<Required<NestedJsonNullableFilterBase<$PrismaModel>>, Exclude<keyof Required<NestedJsonNullableFilterBase<$PrismaModel>>, 'path'>>,
        Required<NestedJsonNullableFilterBase<$PrismaModel>>
      >
    | OptionalFlat<Omit<Required<NestedJsonNullableFilterBase<$PrismaModel>>, 'path'>>

  export type NestedJsonNullableFilterBase<$PrismaModel = never> = {
    equals?: InputJsonValue | JsonFieldRefInput<$PrismaModel> | JsonNullValueFilter
    path?: string[]
    mode?: QueryMode | EnumQueryModeFieldRefInput<$PrismaModel>
    string_contains?: string | StringFieldRefInput<$PrismaModel>
    string_starts_with?: string | StringFieldRefInput<$PrismaModel>
    string_ends_with?: string | StringFieldRefInput<$PrismaModel>
    array_starts_with?: InputJsonValue | JsonFieldRefInput<$PrismaModel> | null
    array_ends_with?: InputJsonValue | JsonFieldRefInput<$PrismaModel> | null
    array_contains?: InputJsonValue | JsonFieldRefInput<$PrismaModel> | null
    lt?: InputJsonValue | JsonFieldRefInput<$PrismaModel>
    lte?: InputJsonValue | JsonFieldRefInput<$PrismaModel>
    gt?: InputJsonValue | JsonFieldRefInput<$PrismaModel>
    gte?: InputJsonValue | JsonFieldRefInput<$PrismaModel>
    not?: InputJsonValue | JsonFieldRefInput<$PrismaModel> | JsonNullValueFilter
  }

  export type NestedEnumAgentStatusFilter<$PrismaModel = never> = {
    equals?: $Enums.AgentStatus | EnumAgentStatusFieldRefInput<$PrismaModel>
    in?: $Enums.AgentStatus[] | ListEnumAgentStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.AgentStatus[] | ListEnumAgentStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumAgentStatusFilter<$PrismaModel> | $Enums.AgentStatus
  }

  export type NestedEnumAgentStatusWithAggregatesFilter<$PrismaModel = never> = {
    equals?: $Enums.AgentStatus | EnumAgentStatusFieldRefInput<$PrismaModel>
    in?: $Enums.AgentStatus[] | ListEnumAgentStatusFieldRefInput<$PrismaModel>
    notIn?: $Enums.AgentStatus[] | ListEnumAgentStatusFieldRefInput<$PrismaModel>
    not?: NestedEnumAgentStatusWithAggregatesFilter<$PrismaModel> | $Enums.AgentStatus
    _count?: NestedIntFilter<$PrismaModel>
    _min?: NestedEnumAgentStatusFilter<$PrismaModel>
    _max?: NestedEnumAgentStatusFilter<$PrismaModel>
  }

  export type NestedFloatNullableFilter<$PrismaModel = never> = {
    equals?: number | FloatFieldRefInput<$PrismaModel> | null
    in?: number[] | ListFloatFieldRefInput<$PrismaModel> | null
    notIn?: number[] | ListFloatFieldRefInput<$PrismaModel> | null
    lt?: number | FloatFieldRefInput<$PrismaModel>
    lte?: number | FloatFieldRefInput<$PrismaModel>
    gt?: number | FloatFieldRefInput<$PrismaModel>
    gte?: number | FloatFieldRefInput<$PrismaModel>
    not?: NestedFloatNullableFilter<$PrismaModel> | number | null
  }

  export type NestedIntNullableWithAggregatesFilter<$PrismaModel = never> = {
    equals?: number | IntFieldRefInput<$PrismaModel> | null
    in?: number[] | ListIntFieldRefInput<$PrismaModel> | null
    notIn?: number[] | ListIntFieldRefInput<$PrismaModel> | null
    lt?: number | IntFieldRefInput<$PrismaModel>
    lte?: number | IntFieldRefInput<$PrismaModel>
    gt?: number | IntFieldRefInput<$PrismaModel>
    gte?: number | IntFieldRefInput<$PrismaModel>
    not?: NestedIntNullableWithAggregatesFilter<$PrismaModel> | number | null
    _count?: NestedIntNullableFilter<$PrismaModel>
    _avg?: NestedFloatNullableFilter<$PrismaModel>
    _sum?: NestedIntNullableFilter<$PrismaModel>
    _min?: NestedIntNullableFilter<$PrismaModel>
    _max?: NestedIntNullableFilter<$PrismaModel>
  }

  export type NestedFloatNullableWithAggregatesFilter<$PrismaModel = never> = {
    equals?: number | FloatFieldRefInput<$PrismaModel> | null
    in?: number[] | ListFloatFieldRefInput<$PrismaModel> | null
    notIn?: number[] | ListFloatFieldRefInput<$PrismaModel> | null
    lt?: number | FloatFieldRefInput<$PrismaModel>
    lte?: number | FloatFieldRefInput<$PrismaModel>
    gt?: number | FloatFieldRefInput<$PrismaModel>
    gte?: number | FloatFieldRefInput<$PrismaModel>
    not?: NestedFloatNullableWithAggregatesFilter<$PrismaModel> | number | null
    _count?: NestedIntNullableFilter<$PrismaModel>
    _avg?: NestedFloatNullableFilter<$PrismaModel>
    _sum?: NestedFloatNullableFilter<$PrismaModel>
    _min?: NestedFloatNullableFilter<$PrismaModel>
    _max?: NestedFloatNullableFilter<$PrismaModel>
  }

  export type AgentProfileCreateWithoutTasks_as_scoutInput = {
    id?: string
    agent_id: string
    type: string
    wallet_address?: string | null
    status?: $Enums.AgentStatus
    capabilities?: NullableJsonNullValueInput | InputJsonValue
    contact_endpoints?: NullableJsonNullValueInput | InputJsonValue
    discovery_source?: string | null
    created_at?: Date | string
    updated_at?: Date | string
    crypto_address?: string | null
    mcp_endpoint?: string | null
    staked_amount?: number
    tier?: string
    tasks_as_builder?: TaskCreateNestedManyWithoutBuilder_agentInput
    claims?: ClaimCreateNestedManyWithoutAgentInput
    scout_reputation?: ScoutReputationCreateNestedOneWithoutScout_agentInput
    affiliate_ledger?: AffiliateLedgerCreateNestedManyWithoutScout_agentInput
    bid_proposals?: BidProposalCreateNestedManyWithoutAgentInput
    arbitrations_as_builder?: ArbitrationCreateNestedManyWithoutBuilderInput
    arbitrations_as_evaluator?: ArbitrationCreateNestedManyWithoutEvaluatorInput
    arbitration_votes?: ArbitrationVoteCreateNestedManyWithoutJudgeInput
    created_projects?: AgentProjectCreateNestedManyWithoutCreatorInput
    slashing_events?: SlashingEventCreateNestedManyWithoutAgentInput
  }

  export type AgentProfileUncheckedCreateWithoutTasks_as_scoutInput = {
    id?: string
    agent_id: string
    type: string
    wallet_address?: string | null
    status?: $Enums.AgentStatus
    capabilities?: NullableJsonNullValueInput | InputJsonValue
    contact_endpoints?: NullableJsonNullValueInput | InputJsonValue
    discovery_source?: string | null
    created_at?: Date | string
    updated_at?: Date | string
    crypto_address?: string | null
    mcp_endpoint?: string | null
    staked_amount?: number
    tier?: string
    tasks_as_builder?: TaskUncheckedCreateNestedManyWithoutBuilder_agentInput
    claims?: ClaimUncheckedCreateNestedManyWithoutAgentInput
    scout_reputation?: ScoutReputationUncheckedCreateNestedOneWithoutScout_agentInput
    affiliate_ledger?: AffiliateLedgerUncheckedCreateNestedManyWithoutScout_agentInput
    bid_proposals?: BidProposalUncheckedCreateNestedManyWithoutAgentInput
    arbitrations_as_builder?: ArbitrationUncheckedCreateNestedManyWithoutBuilderInput
    arbitrations_as_evaluator?: ArbitrationUncheckedCreateNestedManyWithoutEvaluatorInput
    arbitration_votes?: ArbitrationVoteUncheckedCreateNestedManyWithoutJudgeInput
    created_projects?: AgentProjectUncheckedCreateNestedManyWithoutCreatorInput
    slashing_events?: SlashingEventUncheckedCreateNestedManyWithoutAgentInput
  }

  export type AgentProfileCreateOrConnectWithoutTasks_as_scoutInput = {
    where: AgentProfileWhereUniqueInput
    create: XOR<AgentProfileCreateWithoutTasks_as_scoutInput, AgentProfileUncheckedCreateWithoutTasks_as_scoutInput>
  }

  export type AgentProfileCreateWithoutTasks_as_builderInput = {
    id?: string
    agent_id: string
    type: string
    wallet_address?: string | null
    status?: $Enums.AgentStatus
    capabilities?: NullableJsonNullValueInput | InputJsonValue
    contact_endpoints?: NullableJsonNullValueInput | InputJsonValue
    discovery_source?: string | null
    created_at?: Date | string
    updated_at?: Date | string
    crypto_address?: string | null
    mcp_endpoint?: string | null
    staked_amount?: number
    tier?: string
    tasks_as_scout?: TaskCreateNestedManyWithoutScout_agentInput
    claims?: ClaimCreateNestedManyWithoutAgentInput
    scout_reputation?: ScoutReputationCreateNestedOneWithoutScout_agentInput
    affiliate_ledger?: AffiliateLedgerCreateNestedManyWithoutScout_agentInput
    bid_proposals?: BidProposalCreateNestedManyWithoutAgentInput
    arbitrations_as_builder?: ArbitrationCreateNestedManyWithoutBuilderInput
    arbitrations_as_evaluator?: ArbitrationCreateNestedManyWithoutEvaluatorInput
    arbitration_votes?: ArbitrationVoteCreateNestedManyWithoutJudgeInput
    created_projects?: AgentProjectCreateNestedManyWithoutCreatorInput
    slashing_events?: SlashingEventCreateNestedManyWithoutAgentInput
  }

  export type AgentProfileUncheckedCreateWithoutTasks_as_builderInput = {
    id?: string
    agent_id: string
    type: string
    wallet_address?: string | null
    status?: $Enums.AgentStatus
    capabilities?: NullableJsonNullValueInput | InputJsonValue
    contact_endpoints?: NullableJsonNullValueInput | InputJsonValue
    discovery_source?: string | null
    created_at?: Date | string
    updated_at?: Date | string
    crypto_address?: string | null
    mcp_endpoint?: string | null
    staked_amount?: number
    tier?: string
    tasks_as_scout?: TaskUncheckedCreateNestedManyWithoutScout_agentInput
    claims?: ClaimUncheckedCreateNestedManyWithoutAgentInput
    scout_reputation?: ScoutReputationUncheckedCreateNestedOneWithoutScout_agentInput
    affiliate_ledger?: AffiliateLedgerUncheckedCreateNestedManyWithoutScout_agentInput
    bid_proposals?: BidProposalUncheckedCreateNestedManyWithoutAgentInput
    arbitrations_as_builder?: ArbitrationUncheckedCreateNestedManyWithoutBuilderInput
    arbitrations_as_evaluator?: ArbitrationUncheckedCreateNestedManyWithoutEvaluatorInput
    arbitration_votes?: ArbitrationVoteUncheckedCreateNestedManyWithoutJudgeInput
    created_projects?: AgentProjectUncheckedCreateNestedManyWithoutCreatorInput
    slashing_events?: SlashingEventUncheckedCreateNestedManyWithoutAgentInput
  }

  export type AgentProfileCreateOrConnectWithoutTasks_as_builderInput = {
    where: AgentProfileWhereUniqueInput
    create: XOR<AgentProfileCreateWithoutTasks_as_builderInput, AgentProfileUncheckedCreateWithoutTasks_as_builderInput>
  }

  export type ClaimCreateWithoutTaskInput = {
    id?: string
    developer_wallet: string
    status: string
    claim_token: string
    held_amount: number
    held_currency: string
    expires_at: Date | string
    created_at?: Date | string
    updated_at?: Date | string
    agent: AgentProfileCreateNestedOneWithoutClaimsInput
    submissions?: SubmissionCreateNestedManyWithoutClaimInput
  }

  export type ClaimUncheckedCreateWithoutTaskInput = {
    id?: string
    agent_id: string
    developer_wallet: string
    status: string
    claim_token: string
    held_amount: number
    held_currency: string
    expires_at: Date | string
    created_at?: Date | string
    updated_at?: Date | string
    submissions?: SubmissionUncheckedCreateNestedManyWithoutClaimInput
  }

  export type ClaimCreateOrConnectWithoutTaskInput = {
    where: ClaimWhereUniqueInput
    create: XOR<ClaimCreateWithoutTaskInput, ClaimUncheckedCreateWithoutTaskInput>
  }

  export type ClaimCreateManyTaskInputEnvelope = {
    data: ClaimCreateManyTaskInput | ClaimCreateManyTaskInput[]
    skipDuplicates?: boolean
  }

  export type SubmissionCreateWithoutTaskInput = {
    id?: string
    status: string
    deliverables: JsonNullValueInput | InputJsonValue
    estimated_judge_complete_at?: Date | string | null
    created_at?: Date | string
    updated_at?: Date | string
    claim: ClaimCreateNestedOneWithoutSubmissionsInput
    judge_results?: JudgeResultCreateNestedManyWithoutSubmissionInput
  }

  export type SubmissionUncheckedCreateWithoutTaskInput = {
    id?: string
    claim_id: string
    status: string
    deliverables: JsonNullValueInput | InputJsonValue
    estimated_judge_complete_at?: Date | string | null
    created_at?: Date | string
    updated_at?: Date | string
    judge_results?: JudgeResultUncheckedCreateNestedManyWithoutSubmissionInput
  }

  export type SubmissionCreateOrConnectWithoutTaskInput = {
    where: SubmissionWhereUniqueInput
    create: XOR<SubmissionCreateWithoutTaskInput, SubmissionUncheckedCreateWithoutTaskInput>
  }

  export type SubmissionCreateManyTaskInputEnvelope = {
    data: SubmissionCreateManyTaskInput | SubmissionCreateManyTaskInput[]
    skipDuplicates?: boolean
  }

  export type AffiliateLedgerCreateWithoutTaskInput = {
    id?: string
    amount: number
    currency: string
    status: string
    created_at?: Date | string
    updated_at?: Date | string
    scout_agent: AgentProfileCreateNestedOneWithoutAffiliate_ledgerInput
  }

  export type AffiliateLedgerUncheckedCreateWithoutTaskInput = {
    id?: string
    scout_id: string
    amount: number
    currency: string
    status: string
    created_at?: Date | string
    updated_at?: Date | string
  }

  export type AffiliateLedgerCreateOrConnectWithoutTaskInput = {
    where: AffiliateLedgerWhereUniqueInput
    create: XOR<AffiliateLedgerCreateWithoutTaskInput, AffiliateLedgerUncheckedCreateWithoutTaskInput>
  }

  export type AffiliateLedgerCreateManyTaskInputEnvelope = {
    data: AffiliateLedgerCreateManyTaskInput | AffiliateLedgerCreateManyTaskInput[]
    skipDuplicates?: boolean
  }

  export type BidProposalCreateWithoutTaskInput = {
    id?: string
    proposed_reward: number
    estimated_duration_hours: number
    quality_guarantee?: string | null
    status: string
    counter_offer_amount?: number | null
    broker_agent_id?: string | null
    broker_fee_percentage?: number | null
    created_at?: Date | string
    updated_at?: Date | string
    agent: AgentProfileCreateNestedOneWithoutBid_proposalsInput
  }

  export type BidProposalUncheckedCreateWithoutTaskInput = {
    id?: string
    agent_id: string
    proposed_reward: number
    estimated_duration_hours: number
    quality_guarantee?: string | null
    status: string
    counter_offer_amount?: number | null
    broker_agent_id?: string | null
    broker_fee_percentage?: number | null
    created_at?: Date | string
    updated_at?: Date | string
  }

  export type BidProposalCreateOrConnectWithoutTaskInput = {
    where: BidProposalWhereUniqueInput
    create: XOR<BidProposalCreateWithoutTaskInput, BidProposalUncheckedCreateWithoutTaskInput>
  }

  export type BidProposalCreateManyTaskInputEnvelope = {
    data: BidProposalCreateManyTaskInput | BidProposalCreateManyTaskInput[]
    skipDuplicates?: boolean
  }

  export type ArbitrationCreateWithoutTaskInput = {
    id?: string
    status?: string
    builder_evidence?: string | null
    evaluator_reason?: string | null
    winning_party?: string | null
    created_at?: Date | string
    updated_at?: Date | string
    builder: AgentProfileCreateNestedOneWithoutArbitrations_as_builderInput
    evaluator: AgentProfileCreateNestedOneWithoutArbitrations_as_evaluatorInput
    votes?: ArbitrationVoteCreateNestedManyWithoutArbitrationInput
    slashing_events?: SlashingEventCreateNestedManyWithoutArbitrationInput
  }

  export type ArbitrationUncheckedCreateWithoutTaskInput = {
    id?: string
    builder_id: string
    evaluator_id: string
    status?: string
    builder_evidence?: string | null
    evaluator_reason?: string | null
    winning_party?: string | null
    created_at?: Date | string
    updated_at?: Date | string
    votes?: ArbitrationVoteUncheckedCreateNestedManyWithoutArbitrationInput
    slashing_events?: SlashingEventUncheckedCreateNestedManyWithoutArbitrationInput
  }

  export type ArbitrationCreateOrConnectWithoutTaskInput = {
    where: ArbitrationWhereUniqueInput
    create: XOR<ArbitrationCreateWithoutTaskInput, ArbitrationUncheckedCreateWithoutTaskInput>
  }

  export type ArbitrationCreateManyTaskInputEnvelope = {
    data: ArbitrationCreateManyTaskInput | ArbitrationCreateManyTaskInput[]
    skipDuplicates?: boolean
  }

  export type AgentProfileUpsertWithoutTasks_as_scoutInput = {
    update: XOR<AgentProfileUpdateWithoutTasks_as_scoutInput, AgentProfileUncheckedUpdateWithoutTasks_as_scoutInput>
    create: XOR<AgentProfileCreateWithoutTasks_as_scoutInput, AgentProfileUncheckedCreateWithoutTasks_as_scoutInput>
    where?: AgentProfileWhereInput
  }

  export type AgentProfileUpdateToOneWithWhereWithoutTasks_as_scoutInput = {
    where?: AgentProfileWhereInput
    data: XOR<AgentProfileUpdateWithoutTasks_as_scoutInput, AgentProfileUncheckedUpdateWithoutTasks_as_scoutInput>
  }

  export type AgentProfileUpdateWithoutTasks_as_scoutInput = {
    id?: StringFieldUpdateOperationsInput | string
    agent_id?: StringFieldUpdateOperationsInput | string
    type?: StringFieldUpdateOperationsInput | string
    wallet_address?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumAgentStatusFieldUpdateOperationsInput | $Enums.AgentStatus
    capabilities?: NullableJsonNullValueInput | InputJsonValue
    contact_endpoints?: NullableJsonNullValueInput | InputJsonValue
    discovery_source?: NullableStringFieldUpdateOperationsInput | string | null
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
    crypto_address?: NullableStringFieldUpdateOperationsInput | string | null
    mcp_endpoint?: NullableStringFieldUpdateOperationsInput | string | null
    staked_amount?: IntFieldUpdateOperationsInput | number
    tier?: StringFieldUpdateOperationsInput | string
    tasks_as_builder?: TaskUpdateManyWithoutBuilder_agentNestedInput
    claims?: ClaimUpdateManyWithoutAgentNestedInput
    scout_reputation?: ScoutReputationUpdateOneWithoutScout_agentNestedInput
    affiliate_ledger?: AffiliateLedgerUpdateManyWithoutScout_agentNestedInput
    bid_proposals?: BidProposalUpdateManyWithoutAgentNestedInput
    arbitrations_as_builder?: ArbitrationUpdateManyWithoutBuilderNestedInput
    arbitrations_as_evaluator?: ArbitrationUpdateManyWithoutEvaluatorNestedInput
    arbitration_votes?: ArbitrationVoteUpdateManyWithoutJudgeNestedInput
    created_projects?: AgentProjectUpdateManyWithoutCreatorNestedInput
    slashing_events?: SlashingEventUpdateManyWithoutAgentNestedInput
  }

  export type AgentProfileUncheckedUpdateWithoutTasks_as_scoutInput = {
    id?: StringFieldUpdateOperationsInput | string
    agent_id?: StringFieldUpdateOperationsInput | string
    type?: StringFieldUpdateOperationsInput | string
    wallet_address?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumAgentStatusFieldUpdateOperationsInput | $Enums.AgentStatus
    capabilities?: NullableJsonNullValueInput | InputJsonValue
    contact_endpoints?: NullableJsonNullValueInput | InputJsonValue
    discovery_source?: NullableStringFieldUpdateOperationsInput | string | null
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
    crypto_address?: NullableStringFieldUpdateOperationsInput | string | null
    mcp_endpoint?: NullableStringFieldUpdateOperationsInput | string | null
    staked_amount?: IntFieldUpdateOperationsInput | number
    tier?: StringFieldUpdateOperationsInput | string
    tasks_as_builder?: TaskUncheckedUpdateManyWithoutBuilder_agentNestedInput
    claims?: ClaimUncheckedUpdateManyWithoutAgentNestedInput
    scout_reputation?: ScoutReputationUncheckedUpdateOneWithoutScout_agentNestedInput
    affiliate_ledger?: AffiliateLedgerUncheckedUpdateManyWithoutScout_agentNestedInput
    bid_proposals?: BidProposalUncheckedUpdateManyWithoutAgentNestedInput
    arbitrations_as_builder?: ArbitrationUncheckedUpdateManyWithoutBuilderNestedInput
    arbitrations_as_evaluator?: ArbitrationUncheckedUpdateManyWithoutEvaluatorNestedInput
    arbitration_votes?: ArbitrationVoteUncheckedUpdateManyWithoutJudgeNestedInput
    created_projects?: AgentProjectUncheckedUpdateManyWithoutCreatorNestedInput
    slashing_events?: SlashingEventUncheckedUpdateManyWithoutAgentNestedInput
  }

  export type AgentProfileUpsertWithoutTasks_as_builderInput = {
    update: XOR<AgentProfileUpdateWithoutTasks_as_builderInput, AgentProfileUncheckedUpdateWithoutTasks_as_builderInput>
    create: XOR<AgentProfileCreateWithoutTasks_as_builderInput, AgentProfileUncheckedCreateWithoutTasks_as_builderInput>
    where?: AgentProfileWhereInput
  }

  export type AgentProfileUpdateToOneWithWhereWithoutTasks_as_builderInput = {
    where?: AgentProfileWhereInput
    data: XOR<AgentProfileUpdateWithoutTasks_as_builderInput, AgentProfileUncheckedUpdateWithoutTasks_as_builderInput>
  }

  export type AgentProfileUpdateWithoutTasks_as_builderInput = {
    id?: StringFieldUpdateOperationsInput | string
    agent_id?: StringFieldUpdateOperationsInput | string
    type?: StringFieldUpdateOperationsInput | string
    wallet_address?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumAgentStatusFieldUpdateOperationsInput | $Enums.AgentStatus
    capabilities?: NullableJsonNullValueInput | InputJsonValue
    contact_endpoints?: NullableJsonNullValueInput | InputJsonValue
    discovery_source?: NullableStringFieldUpdateOperationsInput | string | null
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
    crypto_address?: NullableStringFieldUpdateOperationsInput | string | null
    mcp_endpoint?: NullableStringFieldUpdateOperationsInput | string | null
    staked_amount?: IntFieldUpdateOperationsInput | number
    tier?: StringFieldUpdateOperationsInput | string
    tasks_as_scout?: TaskUpdateManyWithoutScout_agentNestedInput
    claims?: ClaimUpdateManyWithoutAgentNestedInput
    scout_reputation?: ScoutReputationUpdateOneWithoutScout_agentNestedInput
    affiliate_ledger?: AffiliateLedgerUpdateManyWithoutScout_agentNestedInput
    bid_proposals?: BidProposalUpdateManyWithoutAgentNestedInput
    arbitrations_as_builder?: ArbitrationUpdateManyWithoutBuilderNestedInput
    arbitrations_as_evaluator?: ArbitrationUpdateManyWithoutEvaluatorNestedInput
    arbitration_votes?: ArbitrationVoteUpdateManyWithoutJudgeNestedInput
    created_projects?: AgentProjectUpdateManyWithoutCreatorNestedInput
    slashing_events?: SlashingEventUpdateManyWithoutAgentNestedInput
  }

  export type AgentProfileUncheckedUpdateWithoutTasks_as_builderInput = {
    id?: StringFieldUpdateOperationsInput | string
    agent_id?: StringFieldUpdateOperationsInput | string
    type?: StringFieldUpdateOperationsInput | string
    wallet_address?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumAgentStatusFieldUpdateOperationsInput | $Enums.AgentStatus
    capabilities?: NullableJsonNullValueInput | InputJsonValue
    contact_endpoints?: NullableJsonNullValueInput | InputJsonValue
    discovery_source?: NullableStringFieldUpdateOperationsInput | string | null
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
    crypto_address?: NullableStringFieldUpdateOperationsInput | string | null
    mcp_endpoint?: NullableStringFieldUpdateOperationsInput | string | null
    staked_amount?: IntFieldUpdateOperationsInput | number
    tier?: StringFieldUpdateOperationsInput | string
    tasks_as_scout?: TaskUncheckedUpdateManyWithoutScout_agentNestedInput
    claims?: ClaimUncheckedUpdateManyWithoutAgentNestedInput
    scout_reputation?: ScoutReputationUncheckedUpdateOneWithoutScout_agentNestedInput
    affiliate_ledger?: AffiliateLedgerUncheckedUpdateManyWithoutScout_agentNestedInput
    bid_proposals?: BidProposalUncheckedUpdateManyWithoutAgentNestedInput
    arbitrations_as_builder?: ArbitrationUncheckedUpdateManyWithoutBuilderNestedInput
    arbitrations_as_evaluator?: ArbitrationUncheckedUpdateManyWithoutEvaluatorNestedInput
    arbitration_votes?: ArbitrationVoteUncheckedUpdateManyWithoutJudgeNestedInput
    created_projects?: AgentProjectUncheckedUpdateManyWithoutCreatorNestedInput
    slashing_events?: SlashingEventUncheckedUpdateManyWithoutAgentNestedInput
  }

  export type ClaimUpsertWithWhereUniqueWithoutTaskInput = {
    where: ClaimWhereUniqueInput
    update: XOR<ClaimUpdateWithoutTaskInput, ClaimUncheckedUpdateWithoutTaskInput>
    create: XOR<ClaimCreateWithoutTaskInput, ClaimUncheckedCreateWithoutTaskInput>
  }

  export type ClaimUpdateWithWhereUniqueWithoutTaskInput = {
    where: ClaimWhereUniqueInput
    data: XOR<ClaimUpdateWithoutTaskInput, ClaimUncheckedUpdateWithoutTaskInput>
  }

  export type ClaimUpdateManyWithWhereWithoutTaskInput = {
    where: ClaimScalarWhereInput
    data: XOR<ClaimUpdateManyMutationInput, ClaimUncheckedUpdateManyWithoutTaskInput>
  }

  export type ClaimScalarWhereInput = {
    AND?: ClaimScalarWhereInput | ClaimScalarWhereInput[]
    OR?: ClaimScalarWhereInput[]
    NOT?: ClaimScalarWhereInput | ClaimScalarWhereInput[]
    id?: StringFilter<"Claim"> | string
    task_id?: StringFilter<"Claim"> | string
    agent_id?: StringFilter<"Claim"> | string
    developer_wallet?: StringFilter<"Claim"> | string
    status?: StringFilter<"Claim"> | string
    claim_token?: StringFilter<"Claim"> | string
    held_amount?: IntFilter<"Claim"> | number
    held_currency?: StringFilter<"Claim"> | string
    expires_at?: DateTimeFilter<"Claim"> | Date | string
    created_at?: DateTimeFilter<"Claim"> | Date | string
    updated_at?: DateTimeFilter<"Claim"> | Date | string
  }

  export type SubmissionUpsertWithWhereUniqueWithoutTaskInput = {
    where: SubmissionWhereUniqueInput
    update: XOR<SubmissionUpdateWithoutTaskInput, SubmissionUncheckedUpdateWithoutTaskInput>
    create: XOR<SubmissionCreateWithoutTaskInput, SubmissionUncheckedCreateWithoutTaskInput>
  }

  export type SubmissionUpdateWithWhereUniqueWithoutTaskInput = {
    where: SubmissionWhereUniqueInput
    data: XOR<SubmissionUpdateWithoutTaskInput, SubmissionUncheckedUpdateWithoutTaskInput>
  }

  export type SubmissionUpdateManyWithWhereWithoutTaskInput = {
    where: SubmissionScalarWhereInput
    data: XOR<SubmissionUpdateManyMutationInput, SubmissionUncheckedUpdateManyWithoutTaskInput>
  }

  export type SubmissionScalarWhereInput = {
    AND?: SubmissionScalarWhereInput | SubmissionScalarWhereInput[]
    OR?: SubmissionScalarWhereInput[]
    NOT?: SubmissionScalarWhereInput | SubmissionScalarWhereInput[]
    id?: StringFilter<"Submission"> | string
    task_id?: StringFilter<"Submission"> | string
    claim_id?: StringFilter<"Submission"> | string
    status?: StringFilter<"Submission"> | string
    deliverables?: JsonFilter<"Submission">
    estimated_judge_complete_at?: DateTimeNullableFilter<"Submission"> | Date | string | null
    created_at?: DateTimeFilter<"Submission"> | Date | string
    updated_at?: DateTimeFilter<"Submission"> | Date | string
  }

  export type AffiliateLedgerUpsertWithWhereUniqueWithoutTaskInput = {
    where: AffiliateLedgerWhereUniqueInput
    update: XOR<AffiliateLedgerUpdateWithoutTaskInput, AffiliateLedgerUncheckedUpdateWithoutTaskInput>
    create: XOR<AffiliateLedgerCreateWithoutTaskInput, AffiliateLedgerUncheckedCreateWithoutTaskInput>
  }

  export type AffiliateLedgerUpdateWithWhereUniqueWithoutTaskInput = {
    where: AffiliateLedgerWhereUniqueInput
    data: XOR<AffiliateLedgerUpdateWithoutTaskInput, AffiliateLedgerUncheckedUpdateWithoutTaskInput>
  }

  export type AffiliateLedgerUpdateManyWithWhereWithoutTaskInput = {
    where: AffiliateLedgerScalarWhereInput
    data: XOR<AffiliateLedgerUpdateManyMutationInput, AffiliateLedgerUncheckedUpdateManyWithoutTaskInput>
  }

  export type AffiliateLedgerScalarWhereInput = {
    AND?: AffiliateLedgerScalarWhereInput | AffiliateLedgerScalarWhereInput[]
    OR?: AffiliateLedgerScalarWhereInput[]
    NOT?: AffiliateLedgerScalarWhereInput | AffiliateLedgerScalarWhereInput[]
    id?: StringFilter<"AffiliateLedger"> | string
    scout_id?: StringFilter<"AffiliateLedger"> | string
    task_id?: StringFilter<"AffiliateLedger"> | string
    amount?: IntFilter<"AffiliateLedger"> | number
    currency?: StringFilter<"AffiliateLedger"> | string
    status?: StringFilter<"AffiliateLedger"> | string
    created_at?: DateTimeFilter<"AffiliateLedger"> | Date | string
    updated_at?: DateTimeFilter<"AffiliateLedger"> | Date | string
  }

  export type BidProposalUpsertWithWhereUniqueWithoutTaskInput = {
    where: BidProposalWhereUniqueInput
    update: XOR<BidProposalUpdateWithoutTaskInput, BidProposalUncheckedUpdateWithoutTaskInput>
    create: XOR<BidProposalCreateWithoutTaskInput, BidProposalUncheckedCreateWithoutTaskInput>
  }

  export type BidProposalUpdateWithWhereUniqueWithoutTaskInput = {
    where: BidProposalWhereUniqueInput
    data: XOR<BidProposalUpdateWithoutTaskInput, BidProposalUncheckedUpdateWithoutTaskInput>
  }

  export type BidProposalUpdateManyWithWhereWithoutTaskInput = {
    where: BidProposalScalarWhereInput
    data: XOR<BidProposalUpdateManyMutationInput, BidProposalUncheckedUpdateManyWithoutTaskInput>
  }

  export type BidProposalScalarWhereInput = {
    AND?: BidProposalScalarWhereInput | BidProposalScalarWhereInput[]
    OR?: BidProposalScalarWhereInput[]
    NOT?: BidProposalScalarWhereInput | BidProposalScalarWhereInput[]
    id?: StringFilter<"BidProposal"> | string
    task_id?: StringFilter<"BidProposal"> | string
    agent_id?: StringFilter<"BidProposal"> | string
    proposed_reward?: IntFilter<"BidProposal"> | number
    estimated_duration_hours?: FloatFilter<"BidProposal"> | number
    quality_guarantee?: StringNullableFilter<"BidProposal"> | string | null
    status?: StringFilter<"BidProposal"> | string
    counter_offer_amount?: IntNullableFilter<"BidProposal"> | number | null
    broker_agent_id?: StringNullableFilter<"BidProposal"> | string | null
    broker_fee_percentage?: FloatNullableFilter<"BidProposal"> | number | null
    created_at?: DateTimeFilter<"BidProposal"> | Date | string
    updated_at?: DateTimeFilter<"BidProposal"> | Date | string
  }

  export type ArbitrationUpsertWithWhereUniqueWithoutTaskInput = {
    where: ArbitrationWhereUniqueInput
    update: XOR<ArbitrationUpdateWithoutTaskInput, ArbitrationUncheckedUpdateWithoutTaskInput>
    create: XOR<ArbitrationCreateWithoutTaskInput, ArbitrationUncheckedCreateWithoutTaskInput>
  }

  export type ArbitrationUpdateWithWhereUniqueWithoutTaskInput = {
    where: ArbitrationWhereUniqueInput
    data: XOR<ArbitrationUpdateWithoutTaskInput, ArbitrationUncheckedUpdateWithoutTaskInput>
  }

  export type ArbitrationUpdateManyWithWhereWithoutTaskInput = {
    where: ArbitrationScalarWhereInput
    data: XOR<ArbitrationUpdateManyMutationInput, ArbitrationUncheckedUpdateManyWithoutTaskInput>
  }

  export type ArbitrationScalarWhereInput = {
    AND?: ArbitrationScalarWhereInput | ArbitrationScalarWhereInput[]
    OR?: ArbitrationScalarWhereInput[]
    NOT?: ArbitrationScalarWhereInput | ArbitrationScalarWhereInput[]
    id?: StringFilter<"Arbitration"> | string
    task_id?: StringFilter<"Arbitration"> | string
    builder_id?: StringFilter<"Arbitration"> | string
    evaluator_id?: StringFilter<"Arbitration"> | string
    status?: StringFilter<"Arbitration"> | string
    builder_evidence?: StringNullableFilter<"Arbitration"> | string | null
    evaluator_reason?: StringNullableFilter<"Arbitration"> | string | null
    winning_party?: StringNullableFilter<"Arbitration"> | string | null
    created_at?: DateTimeFilter<"Arbitration"> | Date | string
    updated_at?: DateTimeFilter<"Arbitration"> | Date | string
  }

  export type TaskCreateWithoutClaimsInput = {
    id?: string
    title: string
    description: string
    status: string
    difficulty: string
    scope_clarity_score: number
    error_classification?: string | null
    reward_amount: number
    reward_currency: string
    acceptance_criteria: JsonNullValueInput | InputJsonValue
    required_stack?: TaskCreaterequired_stackInput | string[]
    retry_count?: number
    stripe_payment_intent_id?: string | null
    stripe_checkout_session_id?: string | null
    expires_at?: Date | string | null
    github_pr_url?: string | null
    reward_points?: number
    is_priority?: boolean
    is_private?: boolean
    referred_by_agent?: string | null
    parent_task_id?: string | null
    created_by_agent?: string | null
    created_at?: Date | string
    updated_at?: Date | string
    scout_agent?: AgentProfileCreateNestedOneWithoutTasks_as_scoutInput
    builder_agent?: AgentProfileCreateNestedOneWithoutTasks_as_builderInput
    submissions?: SubmissionCreateNestedManyWithoutTaskInput
    affiliate_ledger?: AffiliateLedgerCreateNestedManyWithoutTaskInput
    bid_proposals?: BidProposalCreateNestedManyWithoutTaskInput
    arbitrations?: ArbitrationCreateNestedManyWithoutTaskInput
  }

  export type TaskUncheckedCreateWithoutClaimsInput = {
    id?: string
    title: string
    description: string
    status: string
    difficulty: string
    scope_clarity_score: number
    error_classification?: string | null
    reward_amount: number
    reward_currency: string
    acceptance_criteria: JsonNullValueInput | InputJsonValue
    required_stack?: TaskCreaterequired_stackInput | string[]
    retry_count?: number
    stripe_payment_intent_id?: string | null
    stripe_checkout_session_id?: string | null
    expires_at?: Date | string | null
    github_pr_url?: string | null
    reward_points?: number
    is_priority?: boolean
    is_private?: boolean
    referred_by_agent?: string | null
    parent_task_id?: string | null
    created_by_agent?: string | null
    created_at?: Date | string
    updated_at?: Date | string
    scout_id?: string | null
    builder_id?: string | null
    submissions?: SubmissionUncheckedCreateNestedManyWithoutTaskInput
    affiliate_ledger?: AffiliateLedgerUncheckedCreateNestedManyWithoutTaskInput
    bid_proposals?: BidProposalUncheckedCreateNestedManyWithoutTaskInput
    arbitrations?: ArbitrationUncheckedCreateNestedManyWithoutTaskInput
  }

  export type TaskCreateOrConnectWithoutClaimsInput = {
    where: TaskWhereUniqueInput
    create: XOR<TaskCreateWithoutClaimsInput, TaskUncheckedCreateWithoutClaimsInput>
  }

  export type AgentProfileCreateWithoutClaimsInput = {
    id?: string
    agent_id: string
    type: string
    wallet_address?: string | null
    status?: $Enums.AgentStatus
    capabilities?: NullableJsonNullValueInput | InputJsonValue
    contact_endpoints?: NullableJsonNullValueInput | InputJsonValue
    discovery_source?: string | null
    created_at?: Date | string
    updated_at?: Date | string
    crypto_address?: string | null
    mcp_endpoint?: string | null
    staked_amount?: number
    tier?: string
    tasks_as_scout?: TaskCreateNestedManyWithoutScout_agentInput
    tasks_as_builder?: TaskCreateNestedManyWithoutBuilder_agentInput
    scout_reputation?: ScoutReputationCreateNestedOneWithoutScout_agentInput
    affiliate_ledger?: AffiliateLedgerCreateNestedManyWithoutScout_agentInput
    bid_proposals?: BidProposalCreateNestedManyWithoutAgentInput
    arbitrations_as_builder?: ArbitrationCreateNestedManyWithoutBuilderInput
    arbitrations_as_evaluator?: ArbitrationCreateNestedManyWithoutEvaluatorInput
    arbitration_votes?: ArbitrationVoteCreateNestedManyWithoutJudgeInput
    created_projects?: AgentProjectCreateNestedManyWithoutCreatorInput
    slashing_events?: SlashingEventCreateNestedManyWithoutAgentInput
  }

  export type AgentProfileUncheckedCreateWithoutClaimsInput = {
    id?: string
    agent_id: string
    type: string
    wallet_address?: string | null
    status?: $Enums.AgentStatus
    capabilities?: NullableJsonNullValueInput | InputJsonValue
    contact_endpoints?: NullableJsonNullValueInput | InputJsonValue
    discovery_source?: string | null
    created_at?: Date | string
    updated_at?: Date | string
    crypto_address?: string | null
    mcp_endpoint?: string | null
    staked_amount?: number
    tier?: string
    tasks_as_scout?: TaskUncheckedCreateNestedManyWithoutScout_agentInput
    tasks_as_builder?: TaskUncheckedCreateNestedManyWithoutBuilder_agentInput
    scout_reputation?: ScoutReputationUncheckedCreateNestedOneWithoutScout_agentInput
    affiliate_ledger?: AffiliateLedgerUncheckedCreateNestedManyWithoutScout_agentInput
    bid_proposals?: BidProposalUncheckedCreateNestedManyWithoutAgentInput
    arbitrations_as_builder?: ArbitrationUncheckedCreateNestedManyWithoutBuilderInput
    arbitrations_as_evaluator?: ArbitrationUncheckedCreateNestedManyWithoutEvaluatorInput
    arbitration_votes?: ArbitrationVoteUncheckedCreateNestedManyWithoutJudgeInput
    created_projects?: AgentProjectUncheckedCreateNestedManyWithoutCreatorInput
    slashing_events?: SlashingEventUncheckedCreateNestedManyWithoutAgentInput
  }

  export type AgentProfileCreateOrConnectWithoutClaimsInput = {
    where: AgentProfileWhereUniqueInput
    create: XOR<AgentProfileCreateWithoutClaimsInput, AgentProfileUncheckedCreateWithoutClaimsInput>
  }

  export type SubmissionCreateWithoutClaimInput = {
    id?: string
    status: string
    deliverables: JsonNullValueInput | InputJsonValue
    estimated_judge_complete_at?: Date | string | null
    created_at?: Date | string
    updated_at?: Date | string
    task: TaskCreateNestedOneWithoutSubmissionsInput
    judge_results?: JudgeResultCreateNestedManyWithoutSubmissionInput
  }

  export type SubmissionUncheckedCreateWithoutClaimInput = {
    id?: string
    task_id: string
    status: string
    deliverables: JsonNullValueInput | InputJsonValue
    estimated_judge_complete_at?: Date | string | null
    created_at?: Date | string
    updated_at?: Date | string
    judge_results?: JudgeResultUncheckedCreateNestedManyWithoutSubmissionInput
  }

  export type SubmissionCreateOrConnectWithoutClaimInput = {
    where: SubmissionWhereUniqueInput
    create: XOR<SubmissionCreateWithoutClaimInput, SubmissionUncheckedCreateWithoutClaimInput>
  }

  export type SubmissionCreateManyClaimInputEnvelope = {
    data: SubmissionCreateManyClaimInput | SubmissionCreateManyClaimInput[]
    skipDuplicates?: boolean
  }

  export type TaskUpsertWithoutClaimsInput = {
    update: XOR<TaskUpdateWithoutClaimsInput, TaskUncheckedUpdateWithoutClaimsInput>
    create: XOR<TaskCreateWithoutClaimsInput, TaskUncheckedCreateWithoutClaimsInput>
    where?: TaskWhereInput
  }

  export type TaskUpdateToOneWithWhereWithoutClaimsInput = {
    where?: TaskWhereInput
    data: XOR<TaskUpdateWithoutClaimsInput, TaskUncheckedUpdateWithoutClaimsInput>
  }

  export type TaskUpdateWithoutClaimsInput = {
    id?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: StringFieldUpdateOperationsInput | string
    status?: StringFieldUpdateOperationsInput | string
    difficulty?: StringFieldUpdateOperationsInput | string
    scope_clarity_score?: FloatFieldUpdateOperationsInput | number
    error_classification?: NullableStringFieldUpdateOperationsInput | string | null
    reward_amount?: IntFieldUpdateOperationsInput | number
    reward_currency?: StringFieldUpdateOperationsInput | string
    acceptance_criteria?: JsonNullValueInput | InputJsonValue
    required_stack?: TaskUpdaterequired_stackInput | string[]
    retry_count?: IntFieldUpdateOperationsInput | number
    stripe_payment_intent_id?: NullableStringFieldUpdateOperationsInput | string | null
    stripe_checkout_session_id?: NullableStringFieldUpdateOperationsInput | string | null
    expires_at?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    github_pr_url?: NullableStringFieldUpdateOperationsInput | string | null
    reward_points?: IntFieldUpdateOperationsInput | number
    is_priority?: BoolFieldUpdateOperationsInput | boolean
    is_private?: BoolFieldUpdateOperationsInput | boolean
    referred_by_agent?: NullableStringFieldUpdateOperationsInput | string | null
    parent_task_id?: NullableStringFieldUpdateOperationsInput | string | null
    created_by_agent?: NullableStringFieldUpdateOperationsInput | string | null
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
    scout_agent?: AgentProfileUpdateOneWithoutTasks_as_scoutNestedInput
    builder_agent?: AgentProfileUpdateOneWithoutTasks_as_builderNestedInput
    submissions?: SubmissionUpdateManyWithoutTaskNestedInput
    affiliate_ledger?: AffiliateLedgerUpdateManyWithoutTaskNestedInput
    bid_proposals?: BidProposalUpdateManyWithoutTaskNestedInput
    arbitrations?: ArbitrationUpdateManyWithoutTaskNestedInput
  }

  export type TaskUncheckedUpdateWithoutClaimsInput = {
    id?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: StringFieldUpdateOperationsInput | string
    status?: StringFieldUpdateOperationsInput | string
    difficulty?: StringFieldUpdateOperationsInput | string
    scope_clarity_score?: FloatFieldUpdateOperationsInput | number
    error_classification?: NullableStringFieldUpdateOperationsInput | string | null
    reward_amount?: IntFieldUpdateOperationsInput | number
    reward_currency?: StringFieldUpdateOperationsInput | string
    acceptance_criteria?: JsonNullValueInput | InputJsonValue
    required_stack?: TaskUpdaterequired_stackInput | string[]
    retry_count?: IntFieldUpdateOperationsInput | number
    stripe_payment_intent_id?: NullableStringFieldUpdateOperationsInput | string | null
    stripe_checkout_session_id?: NullableStringFieldUpdateOperationsInput | string | null
    expires_at?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    github_pr_url?: NullableStringFieldUpdateOperationsInput | string | null
    reward_points?: IntFieldUpdateOperationsInput | number
    is_priority?: BoolFieldUpdateOperationsInput | boolean
    is_private?: BoolFieldUpdateOperationsInput | boolean
    referred_by_agent?: NullableStringFieldUpdateOperationsInput | string | null
    parent_task_id?: NullableStringFieldUpdateOperationsInput | string | null
    created_by_agent?: NullableStringFieldUpdateOperationsInput | string | null
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
    scout_id?: NullableStringFieldUpdateOperationsInput | string | null
    builder_id?: NullableStringFieldUpdateOperationsInput | string | null
    submissions?: SubmissionUncheckedUpdateManyWithoutTaskNestedInput
    affiliate_ledger?: AffiliateLedgerUncheckedUpdateManyWithoutTaskNestedInput
    bid_proposals?: BidProposalUncheckedUpdateManyWithoutTaskNestedInput
    arbitrations?: ArbitrationUncheckedUpdateManyWithoutTaskNestedInput
  }

  export type AgentProfileUpsertWithoutClaimsInput = {
    update: XOR<AgentProfileUpdateWithoutClaimsInput, AgentProfileUncheckedUpdateWithoutClaimsInput>
    create: XOR<AgentProfileCreateWithoutClaimsInput, AgentProfileUncheckedCreateWithoutClaimsInput>
    where?: AgentProfileWhereInput
  }

  export type AgentProfileUpdateToOneWithWhereWithoutClaimsInput = {
    where?: AgentProfileWhereInput
    data: XOR<AgentProfileUpdateWithoutClaimsInput, AgentProfileUncheckedUpdateWithoutClaimsInput>
  }

  export type AgentProfileUpdateWithoutClaimsInput = {
    id?: StringFieldUpdateOperationsInput | string
    agent_id?: StringFieldUpdateOperationsInput | string
    type?: StringFieldUpdateOperationsInput | string
    wallet_address?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumAgentStatusFieldUpdateOperationsInput | $Enums.AgentStatus
    capabilities?: NullableJsonNullValueInput | InputJsonValue
    contact_endpoints?: NullableJsonNullValueInput | InputJsonValue
    discovery_source?: NullableStringFieldUpdateOperationsInput | string | null
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
    crypto_address?: NullableStringFieldUpdateOperationsInput | string | null
    mcp_endpoint?: NullableStringFieldUpdateOperationsInput | string | null
    staked_amount?: IntFieldUpdateOperationsInput | number
    tier?: StringFieldUpdateOperationsInput | string
    tasks_as_scout?: TaskUpdateManyWithoutScout_agentNestedInput
    tasks_as_builder?: TaskUpdateManyWithoutBuilder_agentNestedInput
    scout_reputation?: ScoutReputationUpdateOneWithoutScout_agentNestedInput
    affiliate_ledger?: AffiliateLedgerUpdateManyWithoutScout_agentNestedInput
    bid_proposals?: BidProposalUpdateManyWithoutAgentNestedInput
    arbitrations_as_builder?: ArbitrationUpdateManyWithoutBuilderNestedInput
    arbitrations_as_evaluator?: ArbitrationUpdateManyWithoutEvaluatorNestedInput
    arbitration_votes?: ArbitrationVoteUpdateManyWithoutJudgeNestedInput
    created_projects?: AgentProjectUpdateManyWithoutCreatorNestedInput
    slashing_events?: SlashingEventUpdateManyWithoutAgentNestedInput
  }

  export type AgentProfileUncheckedUpdateWithoutClaimsInput = {
    id?: StringFieldUpdateOperationsInput | string
    agent_id?: StringFieldUpdateOperationsInput | string
    type?: StringFieldUpdateOperationsInput | string
    wallet_address?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumAgentStatusFieldUpdateOperationsInput | $Enums.AgentStatus
    capabilities?: NullableJsonNullValueInput | InputJsonValue
    contact_endpoints?: NullableJsonNullValueInput | InputJsonValue
    discovery_source?: NullableStringFieldUpdateOperationsInput | string | null
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
    crypto_address?: NullableStringFieldUpdateOperationsInput | string | null
    mcp_endpoint?: NullableStringFieldUpdateOperationsInput | string | null
    staked_amount?: IntFieldUpdateOperationsInput | number
    tier?: StringFieldUpdateOperationsInput | string
    tasks_as_scout?: TaskUncheckedUpdateManyWithoutScout_agentNestedInput
    tasks_as_builder?: TaskUncheckedUpdateManyWithoutBuilder_agentNestedInput
    scout_reputation?: ScoutReputationUncheckedUpdateOneWithoutScout_agentNestedInput
    affiliate_ledger?: AffiliateLedgerUncheckedUpdateManyWithoutScout_agentNestedInput
    bid_proposals?: BidProposalUncheckedUpdateManyWithoutAgentNestedInput
    arbitrations_as_builder?: ArbitrationUncheckedUpdateManyWithoutBuilderNestedInput
    arbitrations_as_evaluator?: ArbitrationUncheckedUpdateManyWithoutEvaluatorNestedInput
    arbitration_votes?: ArbitrationVoteUncheckedUpdateManyWithoutJudgeNestedInput
    created_projects?: AgentProjectUncheckedUpdateManyWithoutCreatorNestedInput
    slashing_events?: SlashingEventUncheckedUpdateManyWithoutAgentNestedInput
  }

  export type SubmissionUpsertWithWhereUniqueWithoutClaimInput = {
    where: SubmissionWhereUniqueInput
    update: XOR<SubmissionUpdateWithoutClaimInput, SubmissionUncheckedUpdateWithoutClaimInput>
    create: XOR<SubmissionCreateWithoutClaimInput, SubmissionUncheckedCreateWithoutClaimInput>
  }

  export type SubmissionUpdateWithWhereUniqueWithoutClaimInput = {
    where: SubmissionWhereUniqueInput
    data: XOR<SubmissionUpdateWithoutClaimInput, SubmissionUncheckedUpdateWithoutClaimInput>
  }

  export type SubmissionUpdateManyWithWhereWithoutClaimInput = {
    where: SubmissionScalarWhereInput
    data: XOR<SubmissionUpdateManyMutationInput, SubmissionUncheckedUpdateManyWithoutClaimInput>
  }

  export type TaskCreateWithoutSubmissionsInput = {
    id?: string
    title: string
    description: string
    status: string
    difficulty: string
    scope_clarity_score: number
    error_classification?: string | null
    reward_amount: number
    reward_currency: string
    acceptance_criteria: JsonNullValueInput | InputJsonValue
    required_stack?: TaskCreaterequired_stackInput | string[]
    retry_count?: number
    stripe_payment_intent_id?: string | null
    stripe_checkout_session_id?: string | null
    expires_at?: Date | string | null
    github_pr_url?: string | null
    reward_points?: number
    is_priority?: boolean
    is_private?: boolean
    referred_by_agent?: string | null
    parent_task_id?: string | null
    created_by_agent?: string | null
    created_at?: Date | string
    updated_at?: Date | string
    scout_agent?: AgentProfileCreateNestedOneWithoutTasks_as_scoutInput
    builder_agent?: AgentProfileCreateNestedOneWithoutTasks_as_builderInput
    claims?: ClaimCreateNestedManyWithoutTaskInput
    affiliate_ledger?: AffiliateLedgerCreateNestedManyWithoutTaskInput
    bid_proposals?: BidProposalCreateNestedManyWithoutTaskInput
    arbitrations?: ArbitrationCreateNestedManyWithoutTaskInput
  }

  export type TaskUncheckedCreateWithoutSubmissionsInput = {
    id?: string
    title: string
    description: string
    status: string
    difficulty: string
    scope_clarity_score: number
    error_classification?: string | null
    reward_amount: number
    reward_currency: string
    acceptance_criteria: JsonNullValueInput | InputJsonValue
    required_stack?: TaskCreaterequired_stackInput | string[]
    retry_count?: number
    stripe_payment_intent_id?: string | null
    stripe_checkout_session_id?: string | null
    expires_at?: Date | string | null
    github_pr_url?: string | null
    reward_points?: number
    is_priority?: boolean
    is_private?: boolean
    referred_by_agent?: string | null
    parent_task_id?: string | null
    created_by_agent?: string | null
    created_at?: Date | string
    updated_at?: Date | string
    scout_id?: string | null
    builder_id?: string | null
    claims?: ClaimUncheckedCreateNestedManyWithoutTaskInput
    affiliate_ledger?: AffiliateLedgerUncheckedCreateNestedManyWithoutTaskInput
    bid_proposals?: BidProposalUncheckedCreateNestedManyWithoutTaskInput
    arbitrations?: ArbitrationUncheckedCreateNestedManyWithoutTaskInput
  }

  export type TaskCreateOrConnectWithoutSubmissionsInput = {
    where: TaskWhereUniqueInput
    create: XOR<TaskCreateWithoutSubmissionsInput, TaskUncheckedCreateWithoutSubmissionsInput>
  }

  export type ClaimCreateWithoutSubmissionsInput = {
    id?: string
    developer_wallet: string
    status: string
    claim_token: string
    held_amount: number
    held_currency: string
    expires_at: Date | string
    created_at?: Date | string
    updated_at?: Date | string
    task: TaskCreateNestedOneWithoutClaimsInput
    agent: AgentProfileCreateNestedOneWithoutClaimsInput
  }

  export type ClaimUncheckedCreateWithoutSubmissionsInput = {
    id?: string
    task_id: string
    agent_id: string
    developer_wallet: string
    status: string
    claim_token: string
    held_amount: number
    held_currency: string
    expires_at: Date | string
    created_at?: Date | string
    updated_at?: Date | string
  }

  export type ClaimCreateOrConnectWithoutSubmissionsInput = {
    where: ClaimWhereUniqueInput
    create: XOR<ClaimCreateWithoutSubmissionsInput, ClaimUncheckedCreateWithoutSubmissionsInput>
  }

  export type JudgeResultCreateWithoutSubmissionInput = {
    id?: string
    overall_result: string
    tests: JsonNullValueInput | InputJsonValue
    artifacts?: NullableJsonNullValueInput | InputJsonValue
    error_classification?: string | null
    error_signature?: string | null
    retryable?: boolean
    resource_usage: JsonNullValueInput | InputJsonValue
    judge_completed_at?: Date | string
  }

  export type JudgeResultUncheckedCreateWithoutSubmissionInput = {
    id?: string
    overall_result: string
    tests: JsonNullValueInput | InputJsonValue
    artifacts?: NullableJsonNullValueInput | InputJsonValue
    error_classification?: string | null
    error_signature?: string | null
    retryable?: boolean
    resource_usage: JsonNullValueInput | InputJsonValue
    judge_completed_at?: Date | string
  }

  export type JudgeResultCreateOrConnectWithoutSubmissionInput = {
    where: JudgeResultWhereUniqueInput
    create: XOR<JudgeResultCreateWithoutSubmissionInput, JudgeResultUncheckedCreateWithoutSubmissionInput>
  }

  export type JudgeResultCreateManySubmissionInputEnvelope = {
    data: JudgeResultCreateManySubmissionInput | JudgeResultCreateManySubmissionInput[]
    skipDuplicates?: boolean
  }

  export type TaskUpsertWithoutSubmissionsInput = {
    update: XOR<TaskUpdateWithoutSubmissionsInput, TaskUncheckedUpdateWithoutSubmissionsInput>
    create: XOR<TaskCreateWithoutSubmissionsInput, TaskUncheckedCreateWithoutSubmissionsInput>
    where?: TaskWhereInput
  }

  export type TaskUpdateToOneWithWhereWithoutSubmissionsInput = {
    where?: TaskWhereInput
    data: XOR<TaskUpdateWithoutSubmissionsInput, TaskUncheckedUpdateWithoutSubmissionsInput>
  }

  export type TaskUpdateWithoutSubmissionsInput = {
    id?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: StringFieldUpdateOperationsInput | string
    status?: StringFieldUpdateOperationsInput | string
    difficulty?: StringFieldUpdateOperationsInput | string
    scope_clarity_score?: FloatFieldUpdateOperationsInput | number
    error_classification?: NullableStringFieldUpdateOperationsInput | string | null
    reward_amount?: IntFieldUpdateOperationsInput | number
    reward_currency?: StringFieldUpdateOperationsInput | string
    acceptance_criteria?: JsonNullValueInput | InputJsonValue
    required_stack?: TaskUpdaterequired_stackInput | string[]
    retry_count?: IntFieldUpdateOperationsInput | number
    stripe_payment_intent_id?: NullableStringFieldUpdateOperationsInput | string | null
    stripe_checkout_session_id?: NullableStringFieldUpdateOperationsInput | string | null
    expires_at?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    github_pr_url?: NullableStringFieldUpdateOperationsInput | string | null
    reward_points?: IntFieldUpdateOperationsInput | number
    is_priority?: BoolFieldUpdateOperationsInput | boolean
    is_private?: BoolFieldUpdateOperationsInput | boolean
    referred_by_agent?: NullableStringFieldUpdateOperationsInput | string | null
    parent_task_id?: NullableStringFieldUpdateOperationsInput | string | null
    created_by_agent?: NullableStringFieldUpdateOperationsInput | string | null
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
    scout_agent?: AgentProfileUpdateOneWithoutTasks_as_scoutNestedInput
    builder_agent?: AgentProfileUpdateOneWithoutTasks_as_builderNestedInput
    claims?: ClaimUpdateManyWithoutTaskNestedInput
    affiliate_ledger?: AffiliateLedgerUpdateManyWithoutTaskNestedInput
    bid_proposals?: BidProposalUpdateManyWithoutTaskNestedInput
    arbitrations?: ArbitrationUpdateManyWithoutTaskNestedInput
  }

  export type TaskUncheckedUpdateWithoutSubmissionsInput = {
    id?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: StringFieldUpdateOperationsInput | string
    status?: StringFieldUpdateOperationsInput | string
    difficulty?: StringFieldUpdateOperationsInput | string
    scope_clarity_score?: FloatFieldUpdateOperationsInput | number
    error_classification?: NullableStringFieldUpdateOperationsInput | string | null
    reward_amount?: IntFieldUpdateOperationsInput | number
    reward_currency?: StringFieldUpdateOperationsInput | string
    acceptance_criteria?: JsonNullValueInput | InputJsonValue
    required_stack?: TaskUpdaterequired_stackInput | string[]
    retry_count?: IntFieldUpdateOperationsInput | number
    stripe_payment_intent_id?: NullableStringFieldUpdateOperationsInput | string | null
    stripe_checkout_session_id?: NullableStringFieldUpdateOperationsInput | string | null
    expires_at?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    github_pr_url?: NullableStringFieldUpdateOperationsInput | string | null
    reward_points?: IntFieldUpdateOperationsInput | number
    is_priority?: BoolFieldUpdateOperationsInput | boolean
    is_private?: BoolFieldUpdateOperationsInput | boolean
    referred_by_agent?: NullableStringFieldUpdateOperationsInput | string | null
    parent_task_id?: NullableStringFieldUpdateOperationsInput | string | null
    created_by_agent?: NullableStringFieldUpdateOperationsInput | string | null
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
    scout_id?: NullableStringFieldUpdateOperationsInput | string | null
    builder_id?: NullableStringFieldUpdateOperationsInput | string | null
    claims?: ClaimUncheckedUpdateManyWithoutTaskNestedInput
    affiliate_ledger?: AffiliateLedgerUncheckedUpdateManyWithoutTaskNestedInput
    bid_proposals?: BidProposalUncheckedUpdateManyWithoutTaskNestedInput
    arbitrations?: ArbitrationUncheckedUpdateManyWithoutTaskNestedInput
  }

  export type ClaimUpsertWithoutSubmissionsInput = {
    update: XOR<ClaimUpdateWithoutSubmissionsInput, ClaimUncheckedUpdateWithoutSubmissionsInput>
    create: XOR<ClaimCreateWithoutSubmissionsInput, ClaimUncheckedCreateWithoutSubmissionsInput>
    where?: ClaimWhereInput
  }

  export type ClaimUpdateToOneWithWhereWithoutSubmissionsInput = {
    where?: ClaimWhereInput
    data: XOR<ClaimUpdateWithoutSubmissionsInput, ClaimUncheckedUpdateWithoutSubmissionsInput>
  }

  export type ClaimUpdateWithoutSubmissionsInput = {
    id?: StringFieldUpdateOperationsInput | string
    developer_wallet?: StringFieldUpdateOperationsInput | string
    status?: StringFieldUpdateOperationsInput | string
    claim_token?: StringFieldUpdateOperationsInput | string
    held_amount?: IntFieldUpdateOperationsInput | number
    held_currency?: StringFieldUpdateOperationsInput | string
    expires_at?: DateTimeFieldUpdateOperationsInput | Date | string
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
    task?: TaskUpdateOneRequiredWithoutClaimsNestedInput
    agent?: AgentProfileUpdateOneRequiredWithoutClaimsNestedInput
  }

  export type ClaimUncheckedUpdateWithoutSubmissionsInput = {
    id?: StringFieldUpdateOperationsInput | string
    task_id?: StringFieldUpdateOperationsInput | string
    agent_id?: StringFieldUpdateOperationsInput | string
    developer_wallet?: StringFieldUpdateOperationsInput | string
    status?: StringFieldUpdateOperationsInput | string
    claim_token?: StringFieldUpdateOperationsInput | string
    held_amount?: IntFieldUpdateOperationsInput | number
    held_currency?: StringFieldUpdateOperationsInput | string
    expires_at?: DateTimeFieldUpdateOperationsInput | Date | string
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type JudgeResultUpsertWithWhereUniqueWithoutSubmissionInput = {
    where: JudgeResultWhereUniqueInput
    update: XOR<JudgeResultUpdateWithoutSubmissionInput, JudgeResultUncheckedUpdateWithoutSubmissionInput>
    create: XOR<JudgeResultCreateWithoutSubmissionInput, JudgeResultUncheckedCreateWithoutSubmissionInput>
  }

  export type JudgeResultUpdateWithWhereUniqueWithoutSubmissionInput = {
    where: JudgeResultWhereUniqueInput
    data: XOR<JudgeResultUpdateWithoutSubmissionInput, JudgeResultUncheckedUpdateWithoutSubmissionInput>
  }

  export type JudgeResultUpdateManyWithWhereWithoutSubmissionInput = {
    where: JudgeResultScalarWhereInput
    data: XOR<JudgeResultUpdateManyMutationInput, JudgeResultUncheckedUpdateManyWithoutSubmissionInput>
  }

  export type JudgeResultScalarWhereInput = {
    AND?: JudgeResultScalarWhereInput | JudgeResultScalarWhereInput[]
    OR?: JudgeResultScalarWhereInput[]
    NOT?: JudgeResultScalarWhereInput | JudgeResultScalarWhereInput[]
    id?: StringFilter<"JudgeResult"> | string
    submission_id?: StringFilter<"JudgeResult"> | string
    overall_result?: StringFilter<"JudgeResult"> | string
    tests?: JsonFilter<"JudgeResult">
    artifacts?: JsonNullableFilter<"JudgeResult">
    error_classification?: StringNullableFilter<"JudgeResult"> | string | null
    error_signature?: StringNullableFilter<"JudgeResult"> | string | null
    retryable?: BoolFilter<"JudgeResult"> | boolean
    resource_usage?: JsonFilter<"JudgeResult">
    judge_completed_at?: DateTimeFilter<"JudgeResult"> | Date | string
  }

  export type SubmissionCreateWithoutJudge_resultsInput = {
    id?: string
    status: string
    deliverables: JsonNullValueInput | InputJsonValue
    estimated_judge_complete_at?: Date | string | null
    created_at?: Date | string
    updated_at?: Date | string
    task: TaskCreateNestedOneWithoutSubmissionsInput
    claim: ClaimCreateNestedOneWithoutSubmissionsInput
  }

  export type SubmissionUncheckedCreateWithoutJudge_resultsInput = {
    id?: string
    task_id: string
    claim_id: string
    status: string
    deliverables: JsonNullValueInput | InputJsonValue
    estimated_judge_complete_at?: Date | string | null
    created_at?: Date | string
    updated_at?: Date | string
  }

  export type SubmissionCreateOrConnectWithoutJudge_resultsInput = {
    where: SubmissionWhereUniqueInput
    create: XOR<SubmissionCreateWithoutJudge_resultsInput, SubmissionUncheckedCreateWithoutJudge_resultsInput>
  }

  export type SubmissionUpsertWithoutJudge_resultsInput = {
    update: XOR<SubmissionUpdateWithoutJudge_resultsInput, SubmissionUncheckedUpdateWithoutJudge_resultsInput>
    create: XOR<SubmissionCreateWithoutJudge_resultsInput, SubmissionUncheckedCreateWithoutJudge_resultsInput>
    where?: SubmissionWhereInput
  }

  export type SubmissionUpdateToOneWithWhereWithoutJudge_resultsInput = {
    where?: SubmissionWhereInput
    data: XOR<SubmissionUpdateWithoutJudge_resultsInput, SubmissionUncheckedUpdateWithoutJudge_resultsInput>
  }

  export type SubmissionUpdateWithoutJudge_resultsInput = {
    id?: StringFieldUpdateOperationsInput | string
    status?: StringFieldUpdateOperationsInput | string
    deliverables?: JsonNullValueInput | InputJsonValue
    estimated_judge_complete_at?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
    task?: TaskUpdateOneRequiredWithoutSubmissionsNestedInput
    claim?: ClaimUpdateOneRequiredWithoutSubmissionsNestedInput
  }

  export type SubmissionUncheckedUpdateWithoutJudge_resultsInput = {
    id?: StringFieldUpdateOperationsInput | string
    task_id?: StringFieldUpdateOperationsInput | string
    claim_id?: StringFieldUpdateOperationsInput | string
    status?: StringFieldUpdateOperationsInput | string
    deliverables?: JsonNullValueInput | InputJsonValue
    estimated_judge_complete_at?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type TaskCreateWithoutScout_agentInput = {
    id?: string
    title: string
    description: string
    status: string
    difficulty: string
    scope_clarity_score: number
    error_classification?: string | null
    reward_amount: number
    reward_currency: string
    acceptance_criteria: JsonNullValueInput | InputJsonValue
    required_stack?: TaskCreaterequired_stackInput | string[]
    retry_count?: number
    stripe_payment_intent_id?: string | null
    stripe_checkout_session_id?: string | null
    expires_at?: Date | string | null
    github_pr_url?: string | null
    reward_points?: number
    is_priority?: boolean
    is_private?: boolean
    referred_by_agent?: string | null
    parent_task_id?: string | null
    created_by_agent?: string | null
    created_at?: Date | string
    updated_at?: Date | string
    builder_agent?: AgentProfileCreateNestedOneWithoutTasks_as_builderInput
    claims?: ClaimCreateNestedManyWithoutTaskInput
    submissions?: SubmissionCreateNestedManyWithoutTaskInput
    affiliate_ledger?: AffiliateLedgerCreateNestedManyWithoutTaskInput
    bid_proposals?: BidProposalCreateNestedManyWithoutTaskInput
    arbitrations?: ArbitrationCreateNestedManyWithoutTaskInput
  }

  export type TaskUncheckedCreateWithoutScout_agentInput = {
    id?: string
    title: string
    description: string
    status: string
    difficulty: string
    scope_clarity_score: number
    error_classification?: string | null
    reward_amount: number
    reward_currency: string
    acceptance_criteria: JsonNullValueInput | InputJsonValue
    required_stack?: TaskCreaterequired_stackInput | string[]
    retry_count?: number
    stripe_payment_intent_id?: string | null
    stripe_checkout_session_id?: string | null
    expires_at?: Date | string | null
    github_pr_url?: string | null
    reward_points?: number
    is_priority?: boolean
    is_private?: boolean
    referred_by_agent?: string | null
    parent_task_id?: string | null
    created_by_agent?: string | null
    created_at?: Date | string
    updated_at?: Date | string
    builder_id?: string | null
    claims?: ClaimUncheckedCreateNestedManyWithoutTaskInput
    submissions?: SubmissionUncheckedCreateNestedManyWithoutTaskInput
    affiliate_ledger?: AffiliateLedgerUncheckedCreateNestedManyWithoutTaskInput
    bid_proposals?: BidProposalUncheckedCreateNestedManyWithoutTaskInput
    arbitrations?: ArbitrationUncheckedCreateNestedManyWithoutTaskInput
  }

  export type TaskCreateOrConnectWithoutScout_agentInput = {
    where: TaskWhereUniqueInput
    create: XOR<TaskCreateWithoutScout_agentInput, TaskUncheckedCreateWithoutScout_agentInput>
  }

  export type TaskCreateManyScout_agentInputEnvelope = {
    data: TaskCreateManyScout_agentInput | TaskCreateManyScout_agentInput[]
    skipDuplicates?: boolean
  }

  export type TaskCreateWithoutBuilder_agentInput = {
    id?: string
    title: string
    description: string
    status: string
    difficulty: string
    scope_clarity_score: number
    error_classification?: string | null
    reward_amount: number
    reward_currency: string
    acceptance_criteria: JsonNullValueInput | InputJsonValue
    required_stack?: TaskCreaterequired_stackInput | string[]
    retry_count?: number
    stripe_payment_intent_id?: string | null
    stripe_checkout_session_id?: string | null
    expires_at?: Date | string | null
    github_pr_url?: string | null
    reward_points?: number
    is_priority?: boolean
    is_private?: boolean
    referred_by_agent?: string | null
    parent_task_id?: string | null
    created_by_agent?: string | null
    created_at?: Date | string
    updated_at?: Date | string
    scout_agent?: AgentProfileCreateNestedOneWithoutTasks_as_scoutInput
    claims?: ClaimCreateNestedManyWithoutTaskInput
    submissions?: SubmissionCreateNestedManyWithoutTaskInput
    affiliate_ledger?: AffiliateLedgerCreateNestedManyWithoutTaskInput
    bid_proposals?: BidProposalCreateNestedManyWithoutTaskInput
    arbitrations?: ArbitrationCreateNestedManyWithoutTaskInput
  }

  export type TaskUncheckedCreateWithoutBuilder_agentInput = {
    id?: string
    title: string
    description: string
    status: string
    difficulty: string
    scope_clarity_score: number
    error_classification?: string | null
    reward_amount: number
    reward_currency: string
    acceptance_criteria: JsonNullValueInput | InputJsonValue
    required_stack?: TaskCreaterequired_stackInput | string[]
    retry_count?: number
    stripe_payment_intent_id?: string | null
    stripe_checkout_session_id?: string | null
    expires_at?: Date | string | null
    github_pr_url?: string | null
    reward_points?: number
    is_priority?: boolean
    is_private?: boolean
    referred_by_agent?: string | null
    parent_task_id?: string | null
    created_by_agent?: string | null
    created_at?: Date | string
    updated_at?: Date | string
    scout_id?: string | null
    claims?: ClaimUncheckedCreateNestedManyWithoutTaskInput
    submissions?: SubmissionUncheckedCreateNestedManyWithoutTaskInput
    affiliate_ledger?: AffiliateLedgerUncheckedCreateNestedManyWithoutTaskInput
    bid_proposals?: BidProposalUncheckedCreateNestedManyWithoutTaskInput
    arbitrations?: ArbitrationUncheckedCreateNestedManyWithoutTaskInput
  }

  export type TaskCreateOrConnectWithoutBuilder_agentInput = {
    where: TaskWhereUniqueInput
    create: XOR<TaskCreateWithoutBuilder_agentInput, TaskUncheckedCreateWithoutBuilder_agentInput>
  }

  export type TaskCreateManyBuilder_agentInputEnvelope = {
    data: TaskCreateManyBuilder_agentInput | TaskCreateManyBuilder_agentInput[]
    skipDuplicates?: boolean
  }

  export type ClaimCreateWithoutAgentInput = {
    id?: string
    developer_wallet: string
    status: string
    claim_token: string
    held_amount: number
    held_currency: string
    expires_at: Date | string
    created_at?: Date | string
    updated_at?: Date | string
    task: TaskCreateNestedOneWithoutClaimsInput
    submissions?: SubmissionCreateNestedManyWithoutClaimInput
  }

  export type ClaimUncheckedCreateWithoutAgentInput = {
    id?: string
    task_id: string
    developer_wallet: string
    status: string
    claim_token: string
    held_amount: number
    held_currency: string
    expires_at: Date | string
    created_at?: Date | string
    updated_at?: Date | string
    submissions?: SubmissionUncheckedCreateNestedManyWithoutClaimInput
  }

  export type ClaimCreateOrConnectWithoutAgentInput = {
    where: ClaimWhereUniqueInput
    create: XOR<ClaimCreateWithoutAgentInput, ClaimUncheckedCreateWithoutAgentInput>
  }

  export type ClaimCreateManyAgentInputEnvelope = {
    data: ClaimCreateManyAgentInput | ClaimCreateManyAgentInput[]
    skipDuplicates?: boolean
  }

  export type ScoutReputationCreateWithoutScout_agentInput = {
    id?: string
    successful_conversions?: number
    spam_score?: number
    chargeback_count?: number
    created_at?: Date | string
    updated_at?: Date | string
  }

  export type ScoutReputationUncheckedCreateWithoutScout_agentInput = {
    id?: string
    successful_conversions?: number
    spam_score?: number
    chargeback_count?: number
    created_at?: Date | string
    updated_at?: Date | string
  }

  export type ScoutReputationCreateOrConnectWithoutScout_agentInput = {
    where: ScoutReputationWhereUniqueInput
    create: XOR<ScoutReputationCreateWithoutScout_agentInput, ScoutReputationUncheckedCreateWithoutScout_agentInput>
  }

  export type AffiliateLedgerCreateWithoutScout_agentInput = {
    id?: string
    amount: number
    currency: string
    status: string
    created_at?: Date | string
    updated_at?: Date | string
    task: TaskCreateNestedOneWithoutAffiliate_ledgerInput
  }

  export type AffiliateLedgerUncheckedCreateWithoutScout_agentInput = {
    id?: string
    task_id: string
    amount: number
    currency: string
    status: string
    created_at?: Date | string
    updated_at?: Date | string
  }

  export type AffiliateLedgerCreateOrConnectWithoutScout_agentInput = {
    where: AffiliateLedgerWhereUniqueInput
    create: XOR<AffiliateLedgerCreateWithoutScout_agentInput, AffiliateLedgerUncheckedCreateWithoutScout_agentInput>
  }

  export type AffiliateLedgerCreateManyScout_agentInputEnvelope = {
    data: AffiliateLedgerCreateManyScout_agentInput | AffiliateLedgerCreateManyScout_agentInput[]
    skipDuplicates?: boolean
  }

  export type BidProposalCreateWithoutAgentInput = {
    id?: string
    proposed_reward: number
    estimated_duration_hours: number
    quality_guarantee?: string | null
    status: string
    counter_offer_amount?: number | null
    broker_agent_id?: string | null
    broker_fee_percentage?: number | null
    created_at?: Date | string
    updated_at?: Date | string
    task: TaskCreateNestedOneWithoutBid_proposalsInput
  }

  export type BidProposalUncheckedCreateWithoutAgentInput = {
    id?: string
    task_id: string
    proposed_reward: number
    estimated_duration_hours: number
    quality_guarantee?: string | null
    status: string
    counter_offer_amount?: number | null
    broker_agent_id?: string | null
    broker_fee_percentage?: number | null
    created_at?: Date | string
    updated_at?: Date | string
  }

  export type BidProposalCreateOrConnectWithoutAgentInput = {
    where: BidProposalWhereUniqueInput
    create: XOR<BidProposalCreateWithoutAgentInput, BidProposalUncheckedCreateWithoutAgentInput>
  }

  export type BidProposalCreateManyAgentInputEnvelope = {
    data: BidProposalCreateManyAgentInput | BidProposalCreateManyAgentInput[]
    skipDuplicates?: boolean
  }

  export type ArbitrationCreateWithoutBuilderInput = {
    id?: string
    status?: string
    builder_evidence?: string | null
    evaluator_reason?: string | null
    winning_party?: string | null
    created_at?: Date | string
    updated_at?: Date | string
    task: TaskCreateNestedOneWithoutArbitrationsInput
    evaluator: AgentProfileCreateNestedOneWithoutArbitrations_as_evaluatorInput
    votes?: ArbitrationVoteCreateNestedManyWithoutArbitrationInput
    slashing_events?: SlashingEventCreateNestedManyWithoutArbitrationInput
  }

  export type ArbitrationUncheckedCreateWithoutBuilderInput = {
    id?: string
    task_id: string
    evaluator_id: string
    status?: string
    builder_evidence?: string | null
    evaluator_reason?: string | null
    winning_party?: string | null
    created_at?: Date | string
    updated_at?: Date | string
    votes?: ArbitrationVoteUncheckedCreateNestedManyWithoutArbitrationInput
    slashing_events?: SlashingEventUncheckedCreateNestedManyWithoutArbitrationInput
  }

  export type ArbitrationCreateOrConnectWithoutBuilderInput = {
    where: ArbitrationWhereUniqueInput
    create: XOR<ArbitrationCreateWithoutBuilderInput, ArbitrationUncheckedCreateWithoutBuilderInput>
  }

  export type ArbitrationCreateManyBuilderInputEnvelope = {
    data: ArbitrationCreateManyBuilderInput | ArbitrationCreateManyBuilderInput[]
    skipDuplicates?: boolean
  }

  export type ArbitrationCreateWithoutEvaluatorInput = {
    id?: string
    status?: string
    builder_evidence?: string | null
    evaluator_reason?: string | null
    winning_party?: string | null
    created_at?: Date | string
    updated_at?: Date | string
    task: TaskCreateNestedOneWithoutArbitrationsInput
    builder: AgentProfileCreateNestedOneWithoutArbitrations_as_builderInput
    votes?: ArbitrationVoteCreateNestedManyWithoutArbitrationInput
    slashing_events?: SlashingEventCreateNestedManyWithoutArbitrationInput
  }

  export type ArbitrationUncheckedCreateWithoutEvaluatorInput = {
    id?: string
    task_id: string
    builder_id: string
    status?: string
    builder_evidence?: string | null
    evaluator_reason?: string | null
    winning_party?: string | null
    created_at?: Date | string
    updated_at?: Date | string
    votes?: ArbitrationVoteUncheckedCreateNestedManyWithoutArbitrationInput
    slashing_events?: SlashingEventUncheckedCreateNestedManyWithoutArbitrationInput
  }

  export type ArbitrationCreateOrConnectWithoutEvaluatorInput = {
    where: ArbitrationWhereUniqueInput
    create: XOR<ArbitrationCreateWithoutEvaluatorInput, ArbitrationUncheckedCreateWithoutEvaluatorInput>
  }

  export type ArbitrationCreateManyEvaluatorInputEnvelope = {
    data: ArbitrationCreateManyEvaluatorInput | ArbitrationCreateManyEvaluatorInput[]
    skipDuplicates?: boolean
  }

  export type ArbitrationVoteCreateWithoutJudgeInput = {
    id?: string
    vote_for: string
    reasoning?: string | null
    created_at?: Date | string
    arbitration: ArbitrationCreateNestedOneWithoutVotesInput
  }

  export type ArbitrationVoteUncheckedCreateWithoutJudgeInput = {
    id?: string
    arbitration_id: string
    vote_for: string
    reasoning?: string | null
    created_at?: Date | string
  }

  export type ArbitrationVoteCreateOrConnectWithoutJudgeInput = {
    where: ArbitrationVoteWhereUniqueInput
    create: XOR<ArbitrationVoteCreateWithoutJudgeInput, ArbitrationVoteUncheckedCreateWithoutJudgeInput>
  }

  export type ArbitrationVoteCreateManyJudgeInputEnvelope = {
    data: ArbitrationVoteCreateManyJudgeInput | ArbitrationVoteCreateManyJudgeInput[]
    skipDuplicates?: boolean
  }

  export type AgentProjectCreateWithoutCreatorInput = {
    id?: string
    name: string
    ticker: string
    description: string
    whitepaper_url?: string | null
    target_raise: number
    total_supply: number
    status?: string
    created_at?: Date | string
    updated_at?: Date | string
    token_sales?: TokenSaleCreateNestedManyWithoutProjectInput
  }

  export type AgentProjectUncheckedCreateWithoutCreatorInput = {
    id?: string
    name: string
    ticker: string
    description: string
    whitepaper_url?: string | null
    target_raise: number
    total_supply: number
    status?: string
    created_at?: Date | string
    updated_at?: Date | string
    token_sales?: TokenSaleUncheckedCreateNestedManyWithoutProjectInput
  }

  export type AgentProjectCreateOrConnectWithoutCreatorInput = {
    where: AgentProjectWhereUniqueInput
    create: XOR<AgentProjectCreateWithoutCreatorInput, AgentProjectUncheckedCreateWithoutCreatorInput>
  }

  export type AgentProjectCreateManyCreatorInputEnvelope = {
    data: AgentProjectCreateManyCreatorInput | AgentProjectCreateManyCreatorInput[]
    skipDuplicates?: boolean
  }

  export type SlashingEventCreateWithoutAgentInput = {
    id?: string
    slashed_amount: number
    scout_reward: number
    treasury_reward: number
    reason: string
    created_at?: Date | string
    arbitration: ArbitrationCreateNestedOneWithoutSlashing_eventsInput
  }

  export type SlashingEventUncheckedCreateWithoutAgentInput = {
    id?: string
    arbitration_id: string
    slashed_amount: number
    scout_reward: number
    treasury_reward: number
    reason: string
    created_at?: Date | string
  }

  export type SlashingEventCreateOrConnectWithoutAgentInput = {
    where: SlashingEventWhereUniqueInput
    create: XOR<SlashingEventCreateWithoutAgentInput, SlashingEventUncheckedCreateWithoutAgentInput>
  }

  export type SlashingEventCreateManyAgentInputEnvelope = {
    data: SlashingEventCreateManyAgentInput | SlashingEventCreateManyAgentInput[]
    skipDuplicates?: boolean
  }

  export type TaskUpsertWithWhereUniqueWithoutScout_agentInput = {
    where: TaskWhereUniqueInput
    update: XOR<TaskUpdateWithoutScout_agentInput, TaskUncheckedUpdateWithoutScout_agentInput>
    create: XOR<TaskCreateWithoutScout_agentInput, TaskUncheckedCreateWithoutScout_agentInput>
  }

  export type TaskUpdateWithWhereUniqueWithoutScout_agentInput = {
    where: TaskWhereUniqueInput
    data: XOR<TaskUpdateWithoutScout_agentInput, TaskUncheckedUpdateWithoutScout_agentInput>
  }

  export type TaskUpdateManyWithWhereWithoutScout_agentInput = {
    where: TaskScalarWhereInput
    data: XOR<TaskUpdateManyMutationInput, TaskUncheckedUpdateManyWithoutScout_agentInput>
  }

  export type TaskScalarWhereInput = {
    AND?: TaskScalarWhereInput | TaskScalarWhereInput[]
    OR?: TaskScalarWhereInput[]
    NOT?: TaskScalarWhereInput | TaskScalarWhereInput[]
    id?: StringFilter<"Task"> | string
    title?: StringFilter<"Task"> | string
    description?: StringFilter<"Task"> | string
    status?: StringFilter<"Task"> | string
    difficulty?: StringFilter<"Task"> | string
    scope_clarity_score?: FloatFilter<"Task"> | number
    error_classification?: StringNullableFilter<"Task"> | string | null
    reward_amount?: IntFilter<"Task"> | number
    reward_currency?: StringFilter<"Task"> | string
    acceptance_criteria?: JsonFilter<"Task">
    required_stack?: StringNullableListFilter<"Task">
    retry_count?: IntFilter<"Task"> | number
    stripe_payment_intent_id?: StringNullableFilter<"Task"> | string | null
    stripe_checkout_session_id?: StringNullableFilter<"Task"> | string | null
    expires_at?: DateTimeNullableFilter<"Task"> | Date | string | null
    github_pr_url?: StringNullableFilter<"Task"> | string | null
    reward_points?: IntFilter<"Task"> | number
    is_priority?: BoolFilter<"Task"> | boolean
    is_private?: BoolFilter<"Task"> | boolean
    referred_by_agent?: StringNullableFilter<"Task"> | string | null
    parent_task_id?: StringNullableFilter<"Task"> | string | null
    created_by_agent?: StringNullableFilter<"Task"> | string | null
    created_at?: DateTimeFilter<"Task"> | Date | string
    updated_at?: DateTimeFilter<"Task"> | Date | string
    scout_id?: StringNullableFilter<"Task"> | string | null
    builder_id?: StringNullableFilter<"Task"> | string | null
  }

  export type TaskUpsertWithWhereUniqueWithoutBuilder_agentInput = {
    where: TaskWhereUniqueInput
    update: XOR<TaskUpdateWithoutBuilder_agentInput, TaskUncheckedUpdateWithoutBuilder_agentInput>
    create: XOR<TaskCreateWithoutBuilder_agentInput, TaskUncheckedCreateWithoutBuilder_agentInput>
  }

  export type TaskUpdateWithWhereUniqueWithoutBuilder_agentInput = {
    where: TaskWhereUniqueInput
    data: XOR<TaskUpdateWithoutBuilder_agentInput, TaskUncheckedUpdateWithoutBuilder_agentInput>
  }

  export type TaskUpdateManyWithWhereWithoutBuilder_agentInput = {
    where: TaskScalarWhereInput
    data: XOR<TaskUpdateManyMutationInput, TaskUncheckedUpdateManyWithoutBuilder_agentInput>
  }

  export type ClaimUpsertWithWhereUniqueWithoutAgentInput = {
    where: ClaimWhereUniqueInput
    update: XOR<ClaimUpdateWithoutAgentInput, ClaimUncheckedUpdateWithoutAgentInput>
    create: XOR<ClaimCreateWithoutAgentInput, ClaimUncheckedCreateWithoutAgentInput>
  }

  export type ClaimUpdateWithWhereUniqueWithoutAgentInput = {
    where: ClaimWhereUniqueInput
    data: XOR<ClaimUpdateWithoutAgentInput, ClaimUncheckedUpdateWithoutAgentInput>
  }

  export type ClaimUpdateManyWithWhereWithoutAgentInput = {
    where: ClaimScalarWhereInput
    data: XOR<ClaimUpdateManyMutationInput, ClaimUncheckedUpdateManyWithoutAgentInput>
  }

  export type ScoutReputationUpsertWithoutScout_agentInput = {
    update: XOR<ScoutReputationUpdateWithoutScout_agentInput, ScoutReputationUncheckedUpdateWithoutScout_agentInput>
    create: XOR<ScoutReputationCreateWithoutScout_agentInput, ScoutReputationUncheckedCreateWithoutScout_agentInput>
    where?: ScoutReputationWhereInput
  }

  export type ScoutReputationUpdateToOneWithWhereWithoutScout_agentInput = {
    where?: ScoutReputationWhereInput
    data: XOR<ScoutReputationUpdateWithoutScout_agentInput, ScoutReputationUncheckedUpdateWithoutScout_agentInput>
  }

  export type ScoutReputationUpdateWithoutScout_agentInput = {
    id?: StringFieldUpdateOperationsInput | string
    successful_conversions?: IntFieldUpdateOperationsInput | number
    spam_score?: FloatFieldUpdateOperationsInput | number
    chargeback_count?: IntFieldUpdateOperationsInput | number
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type ScoutReputationUncheckedUpdateWithoutScout_agentInput = {
    id?: StringFieldUpdateOperationsInput | string
    successful_conversions?: IntFieldUpdateOperationsInput | number
    spam_score?: FloatFieldUpdateOperationsInput | number
    chargeback_count?: IntFieldUpdateOperationsInput | number
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AffiliateLedgerUpsertWithWhereUniqueWithoutScout_agentInput = {
    where: AffiliateLedgerWhereUniqueInput
    update: XOR<AffiliateLedgerUpdateWithoutScout_agentInput, AffiliateLedgerUncheckedUpdateWithoutScout_agentInput>
    create: XOR<AffiliateLedgerCreateWithoutScout_agentInput, AffiliateLedgerUncheckedCreateWithoutScout_agentInput>
  }

  export type AffiliateLedgerUpdateWithWhereUniqueWithoutScout_agentInput = {
    where: AffiliateLedgerWhereUniqueInput
    data: XOR<AffiliateLedgerUpdateWithoutScout_agentInput, AffiliateLedgerUncheckedUpdateWithoutScout_agentInput>
  }

  export type AffiliateLedgerUpdateManyWithWhereWithoutScout_agentInput = {
    where: AffiliateLedgerScalarWhereInput
    data: XOR<AffiliateLedgerUpdateManyMutationInput, AffiliateLedgerUncheckedUpdateManyWithoutScout_agentInput>
  }

  export type BidProposalUpsertWithWhereUniqueWithoutAgentInput = {
    where: BidProposalWhereUniqueInput
    update: XOR<BidProposalUpdateWithoutAgentInput, BidProposalUncheckedUpdateWithoutAgentInput>
    create: XOR<BidProposalCreateWithoutAgentInput, BidProposalUncheckedCreateWithoutAgentInput>
  }

  export type BidProposalUpdateWithWhereUniqueWithoutAgentInput = {
    where: BidProposalWhereUniqueInput
    data: XOR<BidProposalUpdateWithoutAgentInput, BidProposalUncheckedUpdateWithoutAgentInput>
  }

  export type BidProposalUpdateManyWithWhereWithoutAgentInput = {
    where: BidProposalScalarWhereInput
    data: XOR<BidProposalUpdateManyMutationInput, BidProposalUncheckedUpdateManyWithoutAgentInput>
  }

  export type ArbitrationUpsertWithWhereUniqueWithoutBuilderInput = {
    where: ArbitrationWhereUniqueInput
    update: XOR<ArbitrationUpdateWithoutBuilderInput, ArbitrationUncheckedUpdateWithoutBuilderInput>
    create: XOR<ArbitrationCreateWithoutBuilderInput, ArbitrationUncheckedCreateWithoutBuilderInput>
  }

  export type ArbitrationUpdateWithWhereUniqueWithoutBuilderInput = {
    where: ArbitrationWhereUniqueInput
    data: XOR<ArbitrationUpdateWithoutBuilderInput, ArbitrationUncheckedUpdateWithoutBuilderInput>
  }

  export type ArbitrationUpdateManyWithWhereWithoutBuilderInput = {
    where: ArbitrationScalarWhereInput
    data: XOR<ArbitrationUpdateManyMutationInput, ArbitrationUncheckedUpdateManyWithoutBuilderInput>
  }

  export type ArbitrationUpsertWithWhereUniqueWithoutEvaluatorInput = {
    where: ArbitrationWhereUniqueInput
    update: XOR<ArbitrationUpdateWithoutEvaluatorInput, ArbitrationUncheckedUpdateWithoutEvaluatorInput>
    create: XOR<ArbitrationCreateWithoutEvaluatorInput, ArbitrationUncheckedCreateWithoutEvaluatorInput>
  }

  export type ArbitrationUpdateWithWhereUniqueWithoutEvaluatorInput = {
    where: ArbitrationWhereUniqueInput
    data: XOR<ArbitrationUpdateWithoutEvaluatorInput, ArbitrationUncheckedUpdateWithoutEvaluatorInput>
  }

  export type ArbitrationUpdateManyWithWhereWithoutEvaluatorInput = {
    where: ArbitrationScalarWhereInput
    data: XOR<ArbitrationUpdateManyMutationInput, ArbitrationUncheckedUpdateManyWithoutEvaluatorInput>
  }

  export type ArbitrationVoteUpsertWithWhereUniqueWithoutJudgeInput = {
    where: ArbitrationVoteWhereUniqueInput
    update: XOR<ArbitrationVoteUpdateWithoutJudgeInput, ArbitrationVoteUncheckedUpdateWithoutJudgeInput>
    create: XOR<ArbitrationVoteCreateWithoutJudgeInput, ArbitrationVoteUncheckedCreateWithoutJudgeInput>
  }

  export type ArbitrationVoteUpdateWithWhereUniqueWithoutJudgeInput = {
    where: ArbitrationVoteWhereUniqueInput
    data: XOR<ArbitrationVoteUpdateWithoutJudgeInput, ArbitrationVoteUncheckedUpdateWithoutJudgeInput>
  }

  export type ArbitrationVoteUpdateManyWithWhereWithoutJudgeInput = {
    where: ArbitrationVoteScalarWhereInput
    data: XOR<ArbitrationVoteUpdateManyMutationInput, ArbitrationVoteUncheckedUpdateManyWithoutJudgeInput>
  }

  export type ArbitrationVoteScalarWhereInput = {
    AND?: ArbitrationVoteScalarWhereInput | ArbitrationVoteScalarWhereInput[]
    OR?: ArbitrationVoteScalarWhereInput[]
    NOT?: ArbitrationVoteScalarWhereInput | ArbitrationVoteScalarWhereInput[]
    id?: StringFilter<"ArbitrationVote"> | string
    arbitration_id?: StringFilter<"ArbitrationVote"> | string
    judge_id?: StringFilter<"ArbitrationVote"> | string
    vote_for?: StringFilter<"ArbitrationVote"> | string
    reasoning?: StringNullableFilter<"ArbitrationVote"> | string | null
    created_at?: DateTimeFilter<"ArbitrationVote"> | Date | string
  }

  export type AgentProjectUpsertWithWhereUniqueWithoutCreatorInput = {
    where: AgentProjectWhereUniqueInput
    update: XOR<AgentProjectUpdateWithoutCreatorInput, AgentProjectUncheckedUpdateWithoutCreatorInput>
    create: XOR<AgentProjectCreateWithoutCreatorInput, AgentProjectUncheckedCreateWithoutCreatorInput>
  }

  export type AgentProjectUpdateWithWhereUniqueWithoutCreatorInput = {
    where: AgentProjectWhereUniqueInput
    data: XOR<AgentProjectUpdateWithoutCreatorInput, AgentProjectUncheckedUpdateWithoutCreatorInput>
  }

  export type AgentProjectUpdateManyWithWhereWithoutCreatorInput = {
    where: AgentProjectScalarWhereInput
    data: XOR<AgentProjectUpdateManyMutationInput, AgentProjectUncheckedUpdateManyWithoutCreatorInput>
  }

  export type AgentProjectScalarWhereInput = {
    AND?: AgentProjectScalarWhereInput | AgentProjectScalarWhereInput[]
    OR?: AgentProjectScalarWhereInput[]
    NOT?: AgentProjectScalarWhereInput | AgentProjectScalarWhereInput[]
    id?: StringFilter<"AgentProject"> | string
    creator_agent_id?: StringFilter<"AgentProject"> | string
    name?: StringFilter<"AgentProject"> | string
    ticker?: StringFilter<"AgentProject"> | string
    description?: StringFilter<"AgentProject"> | string
    whitepaper_url?: StringNullableFilter<"AgentProject"> | string | null
    target_raise?: IntFilter<"AgentProject"> | number
    total_supply?: IntFilter<"AgentProject"> | number
    status?: StringFilter<"AgentProject"> | string
    created_at?: DateTimeFilter<"AgentProject"> | Date | string
    updated_at?: DateTimeFilter<"AgentProject"> | Date | string
  }

  export type SlashingEventUpsertWithWhereUniqueWithoutAgentInput = {
    where: SlashingEventWhereUniqueInput
    update: XOR<SlashingEventUpdateWithoutAgentInput, SlashingEventUncheckedUpdateWithoutAgentInput>
    create: XOR<SlashingEventCreateWithoutAgentInput, SlashingEventUncheckedCreateWithoutAgentInput>
  }

  export type SlashingEventUpdateWithWhereUniqueWithoutAgentInput = {
    where: SlashingEventWhereUniqueInput
    data: XOR<SlashingEventUpdateWithoutAgentInput, SlashingEventUncheckedUpdateWithoutAgentInput>
  }

  export type SlashingEventUpdateManyWithWhereWithoutAgentInput = {
    where: SlashingEventScalarWhereInput
    data: XOR<SlashingEventUpdateManyMutationInput, SlashingEventUncheckedUpdateManyWithoutAgentInput>
  }

  export type SlashingEventScalarWhereInput = {
    AND?: SlashingEventScalarWhereInput | SlashingEventScalarWhereInput[]
    OR?: SlashingEventScalarWhereInput[]
    NOT?: SlashingEventScalarWhereInput | SlashingEventScalarWhereInput[]
    id?: StringFilter<"SlashingEvent"> | string
    agent_id?: StringFilter<"SlashingEvent"> | string
    arbitration_id?: StringFilter<"SlashingEvent"> | string
    slashed_amount?: IntFilter<"SlashingEvent"> | number
    scout_reward?: IntFilter<"SlashingEvent"> | number
    treasury_reward?: IntFilter<"SlashingEvent"> | number
    reason?: StringFilter<"SlashingEvent"> | string
    created_at?: DateTimeFilter<"SlashingEvent"> | Date | string
  }

  export type AgentProfileCreateWithoutAffiliate_ledgerInput = {
    id?: string
    agent_id: string
    type: string
    wallet_address?: string | null
    status?: $Enums.AgentStatus
    capabilities?: NullableJsonNullValueInput | InputJsonValue
    contact_endpoints?: NullableJsonNullValueInput | InputJsonValue
    discovery_source?: string | null
    created_at?: Date | string
    updated_at?: Date | string
    crypto_address?: string | null
    mcp_endpoint?: string | null
    staked_amount?: number
    tier?: string
    tasks_as_scout?: TaskCreateNestedManyWithoutScout_agentInput
    tasks_as_builder?: TaskCreateNestedManyWithoutBuilder_agentInput
    claims?: ClaimCreateNestedManyWithoutAgentInput
    scout_reputation?: ScoutReputationCreateNestedOneWithoutScout_agentInput
    bid_proposals?: BidProposalCreateNestedManyWithoutAgentInput
    arbitrations_as_builder?: ArbitrationCreateNestedManyWithoutBuilderInput
    arbitrations_as_evaluator?: ArbitrationCreateNestedManyWithoutEvaluatorInput
    arbitration_votes?: ArbitrationVoteCreateNestedManyWithoutJudgeInput
    created_projects?: AgentProjectCreateNestedManyWithoutCreatorInput
    slashing_events?: SlashingEventCreateNestedManyWithoutAgentInput
  }

  export type AgentProfileUncheckedCreateWithoutAffiliate_ledgerInput = {
    id?: string
    agent_id: string
    type: string
    wallet_address?: string | null
    status?: $Enums.AgentStatus
    capabilities?: NullableJsonNullValueInput | InputJsonValue
    contact_endpoints?: NullableJsonNullValueInput | InputJsonValue
    discovery_source?: string | null
    created_at?: Date | string
    updated_at?: Date | string
    crypto_address?: string | null
    mcp_endpoint?: string | null
    staked_amount?: number
    tier?: string
    tasks_as_scout?: TaskUncheckedCreateNestedManyWithoutScout_agentInput
    tasks_as_builder?: TaskUncheckedCreateNestedManyWithoutBuilder_agentInput
    claims?: ClaimUncheckedCreateNestedManyWithoutAgentInput
    scout_reputation?: ScoutReputationUncheckedCreateNestedOneWithoutScout_agentInput
    bid_proposals?: BidProposalUncheckedCreateNestedManyWithoutAgentInput
    arbitrations_as_builder?: ArbitrationUncheckedCreateNestedManyWithoutBuilderInput
    arbitrations_as_evaluator?: ArbitrationUncheckedCreateNestedManyWithoutEvaluatorInput
    arbitration_votes?: ArbitrationVoteUncheckedCreateNestedManyWithoutJudgeInput
    created_projects?: AgentProjectUncheckedCreateNestedManyWithoutCreatorInput
    slashing_events?: SlashingEventUncheckedCreateNestedManyWithoutAgentInput
  }

  export type AgentProfileCreateOrConnectWithoutAffiliate_ledgerInput = {
    where: AgentProfileWhereUniqueInput
    create: XOR<AgentProfileCreateWithoutAffiliate_ledgerInput, AgentProfileUncheckedCreateWithoutAffiliate_ledgerInput>
  }

  export type TaskCreateWithoutAffiliate_ledgerInput = {
    id?: string
    title: string
    description: string
    status: string
    difficulty: string
    scope_clarity_score: number
    error_classification?: string | null
    reward_amount: number
    reward_currency: string
    acceptance_criteria: JsonNullValueInput | InputJsonValue
    required_stack?: TaskCreaterequired_stackInput | string[]
    retry_count?: number
    stripe_payment_intent_id?: string | null
    stripe_checkout_session_id?: string | null
    expires_at?: Date | string | null
    github_pr_url?: string | null
    reward_points?: number
    is_priority?: boolean
    is_private?: boolean
    referred_by_agent?: string | null
    parent_task_id?: string | null
    created_by_agent?: string | null
    created_at?: Date | string
    updated_at?: Date | string
    scout_agent?: AgentProfileCreateNestedOneWithoutTasks_as_scoutInput
    builder_agent?: AgentProfileCreateNestedOneWithoutTasks_as_builderInput
    claims?: ClaimCreateNestedManyWithoutTaskInput
    submissions?: SubmissionCreateNestedManyWithoutTaskInput
    bid_proposals?: BidProposalCreateNestedManyWithoutTaskInput
    arbitrations?: ArbitrationCreateNestedManyWithoutTaskInput
  }

  export type TaskUncheckedCreateWithoutAffiliate_ledgerInput = {
    id?: string
    title: string
    description: string
    status: string
    difficulty: string
    scope_clarity_score: number
    error_classification?: string | null
    reward_amount: number
    reward_currency: string
    acceptance_criteria: JsonNullValueInput | InputJsonValue
    required_stack?: TaskCreaterequired_stackInput | string[]
    retry_count?: number
    stripe_payment_intent_id?: string | null
    stripe_checkout_session_id?: string | null
    expires_at?: Date | string | null
    github_pr_url?: string | null
    reward_points?: number
    is_priority?: boolean
    is_private?: boolean
    referred_by_agent?: string | null
    parent_task_id?: string | null
    created_by_agent?: string | null
    created_at?: Date | string
    updated_at?: Date | string
    scout_id?: string | null
    builder_id?: string | null
    claims?: ClaimUncheckedCreateNestedManyWithoutTaskInput
    submissions?: SubmissionUncheckedCreateNestedManyWithoutTaskInput
    bid_proposals?: BidProposalUncheckedCreateNestedManyWithoutTaskInput
    arbitrations?: ArbitrationUncheckedCreateNestedManyWithoutTaskInput
  }

  export type TaskCreateOrConnectWithoutAffiliate_ledgerInput = {
    where: TaskWhereUniqueInput
    create: XOR<TaskCreateWithoutAffiliate_ledgerInput, TaskUncheckedCreateWithoutAffiliate_ledgerInput>
  }

  export type AgentProfileUpsertWithoutAffiliate_ledgerInput = {
    update: XOR<AgentProfileUpdateWithoutAffiliate_ledgerInput, AgentProfileUncheckedUpdateWithoutAffiliate_ledgerInput>
    create: XOR<AgentProfileCreateWithoutAffiliate_ledgerInput, AgentProfileUncheckedCreateWithoutAffiliate_ledgerInput>
    where?: AgentProfileWhereInput
  }

  export type AgentProfileUpdateToOneWithWhereWithoutAffiliate_ledgerInput = {
    where?: AgentProfileWhereInput
    data: XOR<AgentProfileUpdateWithoutAffiliate_ledgerInput, AgentProfileUncheckedUpdateWithoutAffiliate_ledgerInput>
  }

  export type AgentProfileUpdateWithoutAffiliate_ledgerInput = {
    id?: StringFieldUpdateOperationsInput | string
    agent_id?: StringFieldUpdateOperationsInput | string
    type?: StringFieldUpdateOperationsInput | string
    wallet_address?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumAgentStatusFieldUpdateOperationsInput | $Enums.AgentStatus
    capabilities?: NullableJsonNullValueInput | InputJsonValue
    contact_endpoints?: NullableJsonNullValueInput | InputJsonValue
    discovery_source?: NullableStringFieldUpdateOperationsInput | string | null
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
    crypto_address?: NullableStringFieldUpdateOperationsInput | string | null
    mcp_endpoint?: NullableStringFieldUpdateOperationsInput | string | null
    staked_amount?: IntFieldUpdateOperationsInput | number
    tier?: StringFieldUpdateOperationsInput | string
    tasks_as_scout?: TaskUpdateManyWithoutScout_agentNestedInput
    tasks_as_builder?: TaskUpdateManyWithoutBuilder_agentNestedInput
    claims?: ClaimUpdateManyWithoutAgentNestedInput
    scout_reputation?: ScoutReputationUpdateOneWithoutScout_agentNestedInput
    bid_proposals?: BidProposalUpdateManyWithoutAgentNestedInput
    arbitrations_as_builder?: ArbitrationUpdateManyWithoutBuilderNestedInput
    arbitrations_as_evaluator?: ArbitrationUpdateManyWithoutEvaluatorNestedInput
    arbitration_votes?: ArbitrationVoteUpdateManyWithoutJudgeNestedInput
    created_projects?: AgentProjectUpdateManyWithoutCreatorNestedInput
    slashing_events?: SlashingEventUpdateManyWithoutAgentNestedInput
  }

  export type AgentProfileUncheckedUpdateWithoutAffiliate_ledgerInput = {
    id?: StringFieldUpdateOperationsInput | string
    agent_id?: StringFieldUpdateOperationsInput | string
    type?: StringFieldUpdateOperationsInput | string
    wallet_address?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumAgentStatusFieldUpdateOperationsInput | $Enums.AgentStatus
    capabilities?: NullableJsonNullValueInput | InputJsonValue
    contact_endpoints?: NullableJsonNullValueInput | InputJsonValue
    discovery_source?: NullableStringFieldUpdateOperationsInput | string | null
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
    crypto_address?: NullableStringFieldUpdateOperationsInput | string | null
    mcp_endpoint?: NullableStringFieldUpdateOperationsInput | string | null
    staked_amount?: IntFieldUpdateOperationsInput | number
    tier?: StringFieldUpdateOperationsInput | string
    tasks_as_scout?: TaskUncheckedUpdateManyWithoutScout_agentNestedInput
    tasks_as_builder?: TaskUncheckedUpdateManyWithoutBuilder_agentNestedInput
    claims?: ClaimUncheckedUpdateManyWithoutAgentNestedInput
    scout_reputation?: ScoutReputationUncheckedUpdateOneWithoutScout_agentNestedInput
    bid_proposals?: BidProposalUncheckedUpdateManyWithoutAgentNestedInput
    arbitrations_as_builder?: ArbitrationUncheckedUpdateManyWithoutBuilderNestedInput
    arbitrations_as_evaluator?: ArbitrationUncheckedUpdateManyWithoutEvaluatorNestedInput
    arbitration_votes?: ArbitrationVoteUncheckedUpdateManyWithoutJudgeNestedInput
    created_projects?: AgentProjectUncheckedUpdateManyWithoutCreatorNestedInput
    slashing_events?: SlashingEventUncheckedUpdateManyWithoutAgentNestedInput
  }

  export type TaskUpsertWithoutAffiliate_ledgerInput = {
    update: XOR<TaskUpdateWithoutAffiliate_ledgerInput, TaskUncheckedUpdateWithoutAffiliate_ledgerInput>
    create: XOR<TaskCreateWithoutAffiliate_ledgerInput, TaskUncheckedCreateWithoutAffiliate_ledgerInput>
    where?: TaskWhereInput
  }

  export type TaskUpdateToOneWithWhereWithoutAffiliate_ledgerInput = {
    where?: TaskWhereInput
    data: XOR<TaskUpdateWithoutAffiliate_ledgerInput, TaskUncheckedUpdateWithoutAffiliate_ledgerInput>
  }

  export type TaskUpdateWithoutAffiliate_ledgerInput = {
    id?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: StringFieldUpdateOperationsInput | string
    status?: StringFieldUpdateOperationsInput | string
    difficulty?: StringFieldUpdateOperationsInput | string
    scope_clarity_score?: FloatFieldUpdateOperationsInput | number
    error_classification?: NullableStringFieldUpdateOperationsInput | string | null
    reward_amount?: IntFieldUpdateOperationsInput | number
    reward_currency?: StringFieldUpdateOperationsInput | string
    acceptance_criteria?: JsonNullValueInput | InputJsonValue
    required_stack?: TaskUpdaterequired_stackInput | string[]
    retry_count?: IntFieldUpdateOperationsInput | number
    stripe_payment_intent_id?: NullableStringFieldUpdateOperationsInput | string | null
    stripe_checkout_session_id?: NullableStringFieldUpdateOperationsInput | string | null
    expires_at?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    github_pr_url?: NullableStringFieldUpdateOperationsInput | string | null
    reward_points?: IntFieldUpdateOperationsInput | number
    is_priority?: BoolFieldUpdateOperationsInput | boolean
    is_private?: BoolFieldUpdateOperationsInput | boolean
    referred_by_agent?: NullableStringFieldUpdateOperationsInput | string | null
    parent_task_id?: NullableStringFieldUpdateOperationsInput | string | null
    created_by_agent?: NullableStringFieldUpdateOperationsInput | string | null
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
    scout_agent?: AgentProfileUpdateOneWithoutTasks_as_scoutNestedInput
    builder_agent?: AgentProfileUpdateOneWithoutTasks_as_builderNestedInput
    claims?: ClaimUpdateManyWithoutTaskNestedInput
    submissions?: SubmissionUpdateManyWithoutTaskNestedInput
    bid_proposals?: BidProposalUpdateManyWithoutTaskNestedInput
    arbitrations?: ArbitrationUpdateManyWithoutTaskNestedInput
  }

  export type TaskUncheckedUpdateWithoutAffiliate_ledgerInput = {
    id?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: StringFieldUpdateOperationsInput | string
    status?: StringFieldUpdateOperationsInput | string
    difficulty?: StringFieldUpdateOperationsInput | string
    scope_clarity_score?: FloatFieldUpdateOperationsInput | number
    error_classification?: NullableStringFieldUpdateOperationsInput | string | null
    reward_amount?: IntFieldUpdateOperationsInput | number
    reward_currency?: StringFieldUpdateOperationsInput | string
    acceptance_criteria?: JsonNullValueInput | InputJsonValue
    required_stack?: TaskUpdaterequired_stackInput | string[]
    retry_count?: IntFieldUpdateOperationsInput | number
    stripe_payment_intent_id?: NullableStringFieldUpdateOperationsInput | string | null
    stripe_checkout_session_id?: NullableStringFieldUpdateOperationsInput | string | null
    expires_at?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    github_pr_url?: NullableStringFieldUpdateOperationsInput | string | null
    reward_points?: IntFieldUpdateOperationsInput | number
    is_priority?: BoolFieldUpdateOperationsInput | boolean
    is_private?: BoolFieldUpdateOperationsInput | boolean
    referred_by_agent?: NullableStringFieldUpdateOperationsInput | string | null
    parent_task_id?: NullableStringFieldUpdateOperationsInput | string | null
    created_by_agent?: NullableStringFieldUpdateOperationsInput | string | null
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
    scout_id?: NullableStringFieldUpdateOperationsInput | string | null
    builder_id?: NullableStringFieldUpdateOperationsInput | string | null
    claims?: ClaimUncheckedUpdateManyWithoutTaskNestedInput
    submissions?: SubmissionUncheckedUpdateManyWithoutTaskNestedInput
    bid_proposals?: BidProposalUncheckedUpdateManyWithoutTaskNestedInput
    arbitrations?: ArbitrationUncheckedUpdateManyWithoutTaskNestedInput
  }

  export type AgentProfileCreateWithoutScout_reputationInput = {
    id?: string
    agent_id: string
    type: string
    wallet_address?: string | null
    status?: $Enums.AgentStatus
    capabilities?: NullableJsonNullValueInput | InputJsonValue
    contact_endpoints?: NullableJsonNullValueInput | InputJsonValue
    discovery_source?: string | null
    created_at?: Date | string
    updated_at?: Date | string
    crypto_address?: string | null
    mcp_endpoint?: string | null
    staked_amount?: number
    tier?: string
    tasks_as_scout?: TaskCreateNestedManyWithoutScout_agentInput
    tasks_as_builder?: TaskCreateNestedManyWithoutBuilder_agentInput
    claims?: ClaimCreateNestedManyWithoutAgentInput
    affiliate_ledger?: AffiliateLedgerCreateNestedManyWithoutScout_agentInput
    bid_proposals?: BidProposalCreateNestedManyWithoutAgentInput
    arbitrations_as_builder?: ArbitrationCreateNestedManyWithoutBuilderInput
    arbitrations_as_evaluator?: ArbitrationCreateNestedManyWithoutEvaluatorInput
    arbitration_votes?: ArbitrationVoteCreateNestedManyWithoutJudgeInput
    created_projects?: AgentProjectCreateNestedManyWithoutCreatorInput
    slashing_events?: SlashingEventCreateNestedManyWithoutAgentInput
  }

  export type AgentProfileUncheckedCreateWithoutScout_reputationInput = {
    id?: string
    agent_id: string
    type: string
    wallet_address?: string | null
    status?: $Enums.AgentStatus
    capabilities?: NullableJsonNullValueInput | InputJsonValue
    contact_endpoints?: NullableJsonNullValueInput | InputJsonValue
    discovery_source?: string | null
    created_at?: Date | string
    updated_at?: Date | string
    crypto_address?: string | null
    mcp_endpoint?: string | null
    staked_amount?: number
    tier?: string
    tasks_as_scout?: TaskUncheckedCreateNestedManyWithoutScout_agentInput
    tasks_as_builder?: TaskUncheckedCreateNestedManyWithoutBuilder_agentInput
    claims?: ClaimUncheckedCreateNestedManyWithoutAgentInput
    affiliate_ledger?: AffiliateLedgerUncheckedCreateNestedManyWithoutScout_agentInput
    bid_proposals?: BidProposalUncheckedCreateNestedManyWithoutAgentInput
    arbitrations_as_builder?: ArbitrationUncheckedCreateNestedManyWithoutBuilderInput
    arbitrations_as_evaluator?: ArbitrationUncheckedCreateNestedManyWithoutEvaluatorInput
    arbitration_votes?: ArbitrationVoteUncheckedCreateNestedManyWithoutJudgeInput
    created_projects?: AgentProjectUncheckedCreateNestedManyWithoutCreatorInput
    slashing_events?: SlashingEventUncheckedCreateNestedManyWithoutAgentInput
  }

  export type AgentProfileCreateOrConnectWithoutScout_reputationInput = {
    where: AgentProfileWhereUniqueInput
    create: XOR<AgentProfileCreateWithoutScout_reputationInput, AgentProfileUncheckedCreateWithoutScout_reputationInput>
  }

  export type AgentProfileUpsertWithoutScout_reputationInput = {
    update: XOR<AgentProfileUpdateWithoutScout_reputationInput, AgentProfileUncheckedUpdateWithoutScout_reputationInput>
    create: XOR<AgentProfileCreateWithoutScout_reputationInput, AgentProfileUncheckedCreateWithoutScout_reputationInput>
    where?: AgentProfileWhereInput
  }

  export type AgentProfileUpdateToOneWithWhereWithoutScout_reputationInput = {
    where?: AgentProfileWhereInput
    data: XOR<AgentProfileUpdateWithoutScout_reputationInput, AgentProfileUncheckedUpdateWithoutScout_reputationInput>
  }

  export type AgentProfileUpdateWithoutScout_reputationInput = {
    id?: StringFieldUpdateOperationsInput | string
    agent_id?: StringFieldUpdateOperationsInput | string
    type?: StringFieldUpdateOperationsInput | string
    wallet_address?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumAgentStatusFieldUpdateOperationsInput | $Enums.AgentStatus
    capabilities?: NullableJsonNullValueInput | InputJsonValue
    contact_endpoints?: NullableJsonNullValueInput | InputJsonValue
    discovery_source?: NullableStringFieldUpdateOperationsInput | string | null
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
    crypto_address?: NullableStringFieldUpdateOperationsInput | string | null
    mcp_endpoint?: NullableStringFieldUpdateOperationsInput | string | null
    staked_amount?: IntFieldUpdateOperationsInput | number
    tier?: StringFieldUpdateOperationsInput | string
    tasks_as_scout?: TaskUpdateManyWithoutScout_agentNestedInput
    tasks_as_builder?: TaskUpdateManyWithoutBuilder_agentNestedInput
    claims?: ClaimUpdateManyWithoutAgentNestedInput
    affiliate_ledger?: AffiliateLedgerUpdateManyWithoutScout_agentNestedInput
    bid_proposals?: BidProposalUpdateManyWithoutAgentNestedInput
    arbitrations_as_builder?: ArbitrationUpdateManyWithoutBuilderNestedInput
    arbitrations_as_evaluator?: ArbitrationUpdateManyWithoutEvaluatorNestedInput
    arbitration_votes?: ArbitrationVoteUpdateManyWithoutJudgeNestedInput
    created_projects?: AgentProjectUpdateManyWithoutCreatorNestedInput
    slashing_events?: SlashingEventUpdateManyWithoutAgentNestedInput
  }

  export type AgentProfileUncheckedUpdateWithoutScout_reputationInput = {
    id?: StringFieldUpdateOperationsInput | string
    agent_id?: StringFieldUpdateOperationsInput | string
    type?: StringFieldUpdateOperationsInput | string
    wallet_address?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumAgentStatusFieldUpdateOperationsInput | $Enums.AgentStatus
    capabilities?: NullableJsonNullValueInput | InputJsonValue
    contact_endpoints?: NullableJsonNullValueInput | InputJsonValue
    discovery_source?: NullableStringFieldUpdateOperationsInput | string | null
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
    crypto_address?: NullableStringFieldUpdateOperationsInput | string | null
    mcp_endpoint?: NullableStringFieldUpdateOperationsInput | string | null
    staked_amount?: IntFieldUpdateOperationsInput | number
    tier?: StringFieldUpdateOperationsInput | string
    tasks_as_scout?: TaskUncheckedUpdateManyWithoutScout_agentNestedInput
    tasks_as_builder?: TaskUncheckedUpdateManyWithoutBuilder_agentNestedInput
    claims?: ClaimUncheckedUpdateManyWithoutAgentNestedInput
    affiliate_ledger?: AffiliateLedgerUncheckedUpdateManyWithoutScout_agentNestedInput
    bid_proposals?: BidProposalUncheckedUpdateManyWithoutAgentNestedInput
    arbitrations_as_builder?: ArbitrationUncheckedUpdateManyWithoutBuilderNestedInput
    arbitrations_as_evaluator?: ArbitrationUncheckedUpdateManyWithoutEvaluatorNestedInput
    arbitration_votes?: ArbitrationVoteUncheckedUpdateManyWithoutJudgeNestedInput
    created_projects?: AgentProjectUncheckedUpdateManyWithoutCreatorNestedInput
    slashing_events?: SlashingEventUncheckedUpdateManyWithoutAgentNestedInput
  }

  export type TaskCreateWithoutBid_proposalsInput = {
    id?: string
    title: string
    description: string
    status: string
    difficulty: string
    scope_clarity_score: number
    error_classification?: string | null
    reward_amount: number
    reward_currency: string
    acceptance_criteria: JsonNullValueInput | InputJsonValue
    required_stack?: TaskCreaterequired_stackInput | string[]
    retry_count?: number
    stripe_payment_intent_id?: string | null
    stripe_checkout_session_id?: string | null
    expires_at?: Date | string | null
    github_pr_url?: string | null
    reward_points?: number
    is_priority?: boolean
    is_private?: boolean
    referred_by_agent?: string | null
    parent_task_id?: string | null
    created_by_agent?: string | null
    created_at?: Date | string
    updated_at?: Date | string
    scout_agent?: AgentProfileCreateNestedOneWithoutTasks_as_scoutInput
    builder_agent?: AgentProfileCreateNestedOneWithoutTasks_as_builderInput
    claims?: ClaimCreateNestedManyWithoutTaskInput
    submissions?: SubmissionCreateNestedManyWithoutTaskInput
    affiliate_ledger?: AffiliateLedgerCreateNestedManyWithoutTaskInput
    arbitrations?: ArbitrationCreateNestedManyWithoutTaskInput
  }

  export type TaskUncheckedCreateWithoutBid_proposalsInput = {
    id?: string
    title: string
    description: string
    status: string
    difficulty: string
    scope_clarity_score: number
    error_classification?: string | null
    reward_amount: number
    reward_currency: string
    acceptance_criteria: JsonNullValueInput | InputJsonValue
    required_stack?: TaskCreaterequired_stackInput | string[]
    retry_count?: number
    stripe_payment_intent_id?: string | null
    stripe_checkout_session_id?: string | null
    expires_at?: Date | string | null
    github_pr_url?: string | null
    reward_points?: number
    is_priority?: boolean
    is_private?: boolean
    referred_by_agent?: string | null
    parent_task_id?: string | null
    created_by_agent?: string | null
    created_at?: Date | string
    updated_at?: Date | string
    scout_id?: string | null
    builder_id?: string | null
    claims?: ClaimUncheckedCreateNestedManyWithoutTaskInput
    submissions?: SubmissionUncheckedCreateNestedManyWithoutTaskInput
    affiliate_ledger?: AffiliateLedgerUncheckedCreateNestedManyWithoutTaskInput
    arbitrations?: ArbitrationUncheckedCreateNestedManyWithoutTaskInput
  }

  export type TaskCreateOrConnectWithoutBid_proposalsInput = {
    where: TaskWhereUniqueInput
    create: XOR<TaskCreateWithoutBid_proposalsInput, TaskUncheckedCreateWithoutBid_proposalsInput>
  }

  export type AgentProfileCreateWithoutBid_proposalsInput = {
    id?: string
    agent_id: string
    type: string
    wallet_address?: string | null
    status?: $Enums.AgentStatus
    capabilities?: NullableJsonNullValueInput | InputJsonValue
    contact_endpoints?: NullableJsonNullValueInput | InputJsonValue
    discovery_source?: string | null
    created_at?: Date | string
    updated_at?: Date | string
    crypto_address?: string | null
    mcp_endpoint?: string | null
    staked_amount?: number
    tier?: string
    tasks_as_scout?: TaskCreateNestedManyWithoutScout_agentInput
    tasks_as_builder?: TaskCreateNestedManyWithoutBuilder_agentInput
    claims?: ClaimCreateNestedManyWithoutAgentInput
    scout_reputation?: ScoutReputationCreateNestedOneWithoutScout_agentInput
    affiliate_ledger?: AffiliateLedgerCreateNestedManyWithoutScout_agentInput
    arbitrations_as_builder?: ArbitrationCreateNestedManyWithoutBuilderInput
    arbitrations_as_evaluator?: ArbitrationCreateNestedManyWithoutEvaluatorInput
    arbitration_votes?: ArbitrationVoteCreateNestedManyWithoutJudgeInput
    created_projects?: AgentProjectCreateNestedManyWithoutCreatorInput
    slashing_events?: SlashingEventCreateNestedManyWithoutAgentInput
  }

  export type AgentProfileUncheckedCreateWithoutBid_proposalsInput = {
    id?: string
    agent_id: string
    type: string
    wallet_address?: string | null
    status?: $Enums.AgentStatus
    capabilities?: NullableJsonNullValueInput | InputJsonValue
    contact_endpoints?: NullableJsonNullValueInput | InputJsonValue
    discovery_source?: string | null
    created_at?: Date | string
    updated_at?: Date | string
    crypto_address?: string | null
    mcp_endpoint?: string | null
    staked_amount?: number
    tier?: string
    tasks_as_scout?: TaskUncheckedCreateNestedManyWithoutScout_agentInput
    tasks_as_builder?: TaskUncheckedCreateNestedManyWithoutBuilder_agentInput
    claims?: ClaimUncheckedCreateNestedManyWithoutAgentInput
    scout_reputation?: ScoutReputationUncheckedCreateNestedOneWithoutScout_agentInput
    affiliate_ledger?: AffiliateLedgerUncheckedCreateNestedManyWithoutScout_agentInput
    arbitrations_as_builder?: ArbitrationUncheckedCreateNestedManyWithoutBuilderInput
    arbitrations_as_evaluator?: ArbitrationUncheckedCreateNestedManyWithoutEvaluatorInput
    arbitration_votes?: ArbitrationVoteUncheckedCreateNestedManyWithoutJudgeInput
    created_projects?: AgentProjectUncheckedCreateNestedManyWithoutCreatorInput
    slashing_events?: SlashingEventUncheckedCreateNestedManyWithoutAgentInput
  }

  export type AgentProfileCreateOrConnectWithoutBid_proposalsInput = {
    where: AgentProfileWhereUniqueInput
    create: XOR<AgentProfileCreateWithoutBid_proposalsInput, AgentProfileUncheckedCreateWithoutBid_proposalsInput>
  }

  export type TaskUpsertWithoutBid_proposalsInput = {
    update: XOR<TaskUpdateWithoutBid_proposalsInput, TaskUncheckedUpdateWithoutBid_proposalsInput>
    create: XOR<TaskCreateWithoutBid_proposalsInput, TaskUncheckedCreateWithoutBid_proposalsInput>
    where?: TaskWhereInput
  }

  export type TaskUpdateToOneWithWhereWithoutBid_proposalsInput = {
    where?: TaskWhereInput
    data: XOR<TaskUpdateWithoutBid_proposalsInput, TaskUncheckedUpdateWithoutBid_proposalsInput>
  }

  export type TaskUpdateWithoutBid_proposalsInput = {
    id?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: StringFieldUpdateOperationsInput | string
    status?: StringFieldUpdateOperationsInput | string
    difficulty?: StringFieldUpdateOperationsInput | string
    scope_clarity_score?: FloatFieldUpdateOperationsInput | number
    error_classification?: NullableStringFieldUpdateOperationsInput | string | null
    reward_amount?: IntFieldUpdateOperationsInput | number
    reward_currency?: StringFieldUpdateOperationsInput | string
    acceptance_criteria?: JsonNullValueInput | InputJsonValue
    required_stack?: TaskUpdaterequired_stackInput | string[]
    retry_count?: IntFieldUpdateOperationsInput | number
    stripe_payment_intent_id?: NullableStringFieldUpdateOperationsInput | string | null
    stripe_checkout_session_id?: NullableStringFieldUpdateOperationsInput | string | null
    expires_at?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    github_pr_url?: NullableStringFieldUpdateOperationsInput | string | null
    reward_points?: IntFieldUpdateOperationsInput | number
    is_priority?: BoolFieldUpdateOperationsInput | boolean
    is_private?: BoolFieldUpdateOperationsInput | boolean
    referred_by_agent?: NullableStringFieldUpdateOperationsInput | string | null
    parent_task_id?: NullableStringFieldUpdateOperationsInput | string | null
    created_by_agent?: NullableStringFieldUpdateOperationsInput | string | null
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
    scout_agent?: AgentProfileUpdateOneWithoutTasks_as_scoutNestedInput
    builder_agent?: AgentProfileUpdateOneWithoutTasks_as_builderNestedInput
    claims?: ClaimUpdateManyWithoutTaskNestedInput
    submissions?: SubmissionUpdateManyWithoutTaskNestedInput
    affiliate_ledger?: AffiliateLedgerUpdateManyWithoutTaskNestedInput
    arbitrations?: ArbitrationUpdateManyWithoutTaskNestedInput
  }

  export type TaskUncheckedUpdateWithoutBid_proposalsInput = {
    id?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: StringFieldUpdateOperationsInput | string
    status?: StringFieldUpdateOperationsInput | string
    difficulty?: StringFieldUpdateOperationsInput | string
    scope_clarity_score?: FloatFieldUpdateOperationsInput | number
    error_classification?: NullableStringFieldUpdateOperationsInput | string | null
    reward_amount?: IntFieldUpdateOperationsInput | number
    reward_currency?: StringFieldUpdateOperationsInput | string
    acceptance_criteria?: JsonNullValueInput | InputJsonValue
    required_stack?: TaskUpdaterequired_stackInput | string[]
    retry_count?: IntFieldUpdateOperationsInput | number
    stripe_payment_intent_id?: NullableStringFieldUpdateOperationsInput | string | null
    stripe_checkout_session_id?: NullableStringFieldUpdateOperationsInput | string | null
    expires_at?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    github_pr_url?: NullableStringFieldUpdateOperationsInput | string | null
    reward_points?: IntFieldUpdateOperationsInput | number
    is_priority?: BoolFieldUpdateOperationsInput | boolean
    is_private?: BoolFieldUpdateOperationsInput | boolean
    referred_by_agent?: NullableStringFieldUpdateOperationsInput | string | null
    parent_task_id?: NullableStringFieldUpdateOperationsInput | string | null
    created_by_agent?: NullableStringFieldUpdateOperationsInput | string | null
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
    scout_id?: NullableStringFieldUpdateOperationsInput | string | null
    builder_id?: NullableStringFieldUpdateOperationsInput | string | null
    claims?: ClaimUncheckedUpdateManyWithoutTaskNestedInput
    submissions?: SubmissionUncheckedUpdateManyWithoutTaskNestedInput
    affiliate_ledger?: AffiliateLedgerUncheckedUpdateManyWithoutTaskNestedInput
    arbitrations?: ArbitrationUncheckedUpdateManyWithoutTaskNestedInput
  }

  export type AgentProfileUpsertWithoutBid_proposalsInput = {
    update: XOR<AgentProfileUpdateWithoutBid_proposalsInput, AgentProfileUncheckedUpdateWithoutBid_proposalsInput>
    create: XOR<AgentProfileCreateWithoutBid_proposalsInput, AgentProfileUncheckedCreateWithoutBid_proposalsInput>
    where?: AgentProfileWhereInput
  }

  export type AgentProfileUpdateToOneWithWhereWithoutBid_proposalsInput = {
    where?: AgentProfileWhereInput
    data: XOR<AgentProfileUpdateWithoutBid_proposalsInput, AgentProfileUncheckedUpdateWithoutBid_proposalsInput>
  }

  export type AgentProfileUpdateWithoutBid_proposalsInput = {
    id?: StringFieldUpdateOperationsInput | string
    agent_id?: StringFieldUpdateOperationsInput | string
    type?: StringFieldUpdateOperationsInput | string
    wallet_address?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumAgentStatusFieldUpdateOperationsInput | $Enums.AgentStatus
    capabilities?: NullableJsonNullValueInput | InputJsonValue
    contact_endpoints?: NullableJsonNullValueInput | InputJsonValue
    discovery_source?: NullableStringFieldUpdateOperationsInput | string | null
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
    crypto_address?: NullableStringFieldUpdateOperationsInput | string | null
    mcp_endpoint?: NullableStringFieldUpdateOperationsInput | string | null
    staked_amount?: IntFieldUpdateOperationsInput | number
    tier?: StringFieldUpdateOperationsInput | string
    tasks_as_scout?: TaskUpdateManyWithoutScout_agentNestedInput
    tasks_as_builder?: TaskUpdateManyWithoutBuilder_agentNestedInput
    claims?: ClaimUpdateManyWithoutAgentNestedInput
    scout_reputation?: ScoutReputationUpdateOneWithoutScout_agentNestedInput
    affiliate_ledger?: AffiliateLedgerUpdateManyWithoutScout_agentNestedInput
    arbitrations_as_builder?: ArbitrationUpdateManyWithoutBuilderNestedInput
    arbitrations_as_evaluator?: ArbitrationUpdateManyWithoutEvaluatorNestedInput
    arbitration_votes?: ArbitrationVoteUpdateManyWithoutJudgeNestedInput
    created_projects?: AgentProjectUpdateManyWithoutCreatorNestedInput
    slashing_events?: SlashingEventUpdateManyWithoutAgentNestedInput
  }

  export type AgentProfileUncheckedUpdateWithoutBid_proposalsInput = {
    id?: StringFieldUpdateOperationsInput | string
    agent_id?: StringFieldUpdateOperationsInput | string
    type?: StringFieldUpdateOperationsInput | string
    wallet_address?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumAgentStatusFieldUpdateOperationsInput | $Enums.AgentStatus
    capabilities?: NullableJsonNullValueInput | InputJsonValue
    contact_endpoints?: NullableJsonNullValueInput | InputJsonValue
    discovery_source?: NullableStringFieldUpdateOperationsInput | string | null
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
    crypto_address?: NullableStringFieldUpdateOperationsInput | string | null
    mcp_endpoint?: NullableStringFieldUpdateOperationsInput | string | null
    staked_amount?: IntFieldUpdateOperationsInput | number
    tier?: StringFieldUpdateOperationsInput | string
    tasks_as_scout?: TaskUncheckedUpdateManyWithoutScout_agentNestedInput
    tasks_as_builder?: TaskUncheckedUpdateManyWithoutBuilder_agentNestedInput
    claims?: ClaimUncheckedUpdateManyWithoutAgentNestedInput
    scout_reputation?: ScoutReputationUncheckedUpdateOneWithoutScout_agentNestedInput
    affiliate_ledger?: AffiliateLedgerUncheckedUpdateManyWithoutScout_agentNestedInput
    arbitrations_as_builder?: ArbitrationUncheckedUpdateManyWithoutBuilderNestedInput
    arbitrations_as_evaluator?: ArbitrationUncheckedUpdateManyWithoutEvaluatorNestedInput
    arbitration_votes?: ArbitrationVoteUncheckedUpdateManyWithoutJudgeNestedInput
    created_projects?: AgentProjectUncheckedUpdateManyWithoutCreatorNestedInput
    slashing_events?: SlashingEventUncheckedUpdateManyWithoutAgentNestedInput
  }

  export type TaskCreateWithoutArbitrationsInput = {
    id?: string
    title: string
    description: string
    status: string
    difficulty: string
    scope_clarity_score: number
    error_classification?: string | null
    reward_amount: number
    reward_currency: string
    acceptance_criteria: JsonNullValueInput | InputJsonValue
    required_stack?: TaskCreaterequired_stackInput | string[]
    retry_count?: number
    stripe_payment_intent_id?: string | null
    stripe_checkout_session_id?: string | null
    expires_at?: Date | string | null
    github_pr_url?: string | null
    reward_points?: number
    is_priority?: boolean
    is_private?: boolean
    referred_by_agent?: string | null
    parent_task_id?: string | null
    created_by_agent?: string | null
    created_at?: Date | string
    updated_at?: Date | string
    scout_agent?: AgentProfileCreateNestedOneWithoutTasks_as_scoutInput
    builder_agent?: AgentProfileCreateNestedOneWithoutTasks_as_builderInput
    claims?: ClaimCreateNestedManyWithoutTaskInput
    submissions?: SubmissionCreateNestedManyWithoutTaskInput
    affiliate_ledger?: AffiliateLedgerCreateNestedManyWithoutTaskInput
    bid_proposals?: BidProposalCreateNestedManyWithoutTaskInput
  }

  export type TaskUncheckedCreateWithoutArbitrationsInput = {
    id?: string
    title: string
    description: string
    status: string
    difficulty: string
    scope_clarity_score: number
    error_classification?: string | null
    reward_amount: number
    reward_currency: string
    acceptance_criteria: JsonNullValueInput | InputJsonValue
    required_stack?: TaskCreaterequired_stackInput | string[]
    retry_count?: number
    stripe_payment_intent_id?: string | null
    stripe_checkout_session_id?: string | null
    expires_at?: Date | string | null
    github_pr_url?: string | null
    reward_points?: number
    is_priority?: boolean
    is_private?: boolean
    referred_by_agent?: string | null
    parent_task_id?: string | null
    created_by_agent?: string | null
    created_at?: Date | string
    updated_at?: Date | string
    scout_id?: string | null
    builder_id?: string | null
    claims?: ClaimUncheckedCreateNestedManyWithoutTaskInput
    submissions?: SubmissionUncheckedCreateNestedManyWithoutTaskInput
    affiliate_ledger?: AffiliateLedgerUncheckedCreateNestedManyWithoutTaskInput
    bid_proposals?: BidProposalUncheckedCreateNestedManyWithoutTaskInput
  }

  export type TaskCreateOrConnectWithoutArbitrationsInput = {
    where: TaskWhereUniqueInput
    create: XOR<TaskCreateWithoutArbitrationsInput, TaskUncheckedCreateWithoutArbitrationsInput>
  }

  export type AgentProfileCreateWithoutArbitrations_as_builderInput = {
    id?: string
    agent_id: string
    type: string
    wallet_address?: string | null
    status?: $Enums.AgentStatus
    capabilities?: NullableJsonNullValueInput | InputJsonValue
    contact_endpoints?: NullableJsonNullValueInput | InputJsonValue
    discovery_source?: string | null
    created_at?: Date | string
    updated_at?: Date | string
    crypto_address?: string | null
    mcp_endpoint?: string | null
    staked_amount?: number
    tier?: string
    tasks_as_scout?: TaskCreateNestedManyWithoutScout_agentInput
    tasks_as_builder?: TaskCreateNestedManyWithoutBuilder_agentInput
    claims?: ClaimCreateNestedManyWithoutAgentInput
    scout_reputation?: ScoutReputationCreateNestedOneWithoutScout_agentInput
    affiliate_ledger?: AffiliateLedgerCreateNestedManyWithoutScout_agentInput
    bid_proposals?: BidProposalCreateNestedManyWithoutAgentInput
    arbitrations_as_evaluator?: ArbitrationCreateNestedManyWithoutEvaluatorInput
    arbitration_votes?: ArbitrationVoteCreateNestedManyWithoutJudgeInput
    created_projects?: AgentProjectCreateNestedManyWithoutCreatorInput
    slashing_events?: SlashingEventCreateNestedManyWithoutAgentInput
  }

  export type AgentProfileUncheckedCreateWithoutArbitrations_as_builderInput = {
    id?: string
    agent_id: string
    type: string
    wallet_address?: string | null
    status?: $Enums.AgentStatus
    capabilities?: NullableJsonNullValueInput | InputJsonValue
    contact_endpoints?: NullableJsonNullValueInput | InputJsonValue
    discovery_source?: string | null
    created_at?: Date | string
    updated_at?: Date | string
    crypto_address?: string | null
    mcp_endpoint?: string | null
    staked_amount?: number
    tier?: string
    tasks_as_scout?: TaskUncheckedCreateNestedManyWithoutScout_agentInput
    tasks_as_builder?: TaskUncheckedCreateNestedManyWithoutBuilder_agentInput
    claims?: ClaimUncheckedCreateNestedManyWithoutAgentInput
    scout_reputation?: ScoutReputationUncheckedCreateNestedOneWithoutScout_agentInput
    affiliate_ledger?: AffiliateLedgerUncheckedCreateNestedManyWithoutScout_agentInput
    bid_proposals?: BidProposalUncheckedCreateNestedManyWithoutAgentInput
    arbitrations_as_evaluator?: ArbitrationUncheckedCreateNestedManyWithoutEvaluatorInput
    arbitration_votes?: ArbitrationVoteUncheckedCreateNestedManyWithoutJudgeInput
    created_projects?: AgentProjectUncheckedCreateNestedManyWithoutCreatorInput
    slashing_events?: SlashingEventUncheckedCreateNestedManyWithoutAgentInput
  }

  export type AgentProfileCreateOrConnectWithoutArbitrations_as_builderInput = {
    where: AgentProfileWhereUniqueInput
    create: XOR<AgentProfileCreateWithoutArbitrations_as_builderInput, AgentProfileUncheckedCreateWithoutArbitrations_as_builderInput>
  }

  export type AgentProfileCreateWithoutArbitrations_as_evaluatorInput = {
    id?: string
    agent_id: string
    type: string
    wallet_address?: string | null
    status?: $Enums.AgentStatus
    capabilities?: NullableJsonNullValueInput | InputJsonValue
    contact_endpoints?: NullableJsonNullValueInput | InputJsonValue
    discovery_source?: string | null
    created_at?: Date | string
    updated_at?: Date | string
    crypto_address?: string | null
    mcp_endpoint?: string | null
    staked_amount?: number
    tier?: string
    tasks_as_scout?: TaskCreateNestedManyWithoutScout_agentInput
    tasks_as_builder?: TaskCreateNestedManyWithoutBuilder_agentInput
    claims?: ClaimCreateNestedManyWithoutAgentInput
    scout_reputation?: ScoutReputationCreateNestedOneWithoutScout_agentInput
    affiliate_ledger?: AffiliateLedgerCreateNestedManyWithoutScout_agentInput
    bid_proposals?: BidProposalCreateNestedManyWithoutAgentInput
    arbitrations_as_builder?: ArbitrationCreateNestedManyWithoutBuilderInput
    arbitration_votes?: ArbitrationVoteCreateNestedManyWithoutJudgeInput
    created_projects?: AgentProjectCreateNestedManyWithoutCreatorInput
    slashing_events?: SlashingEventCreateNestedManyWithoutAgentInput
  }

  export type AgentProfileUncheckedCreateWithoutArbitrations_as_evaluatorInput = {
    id?: string
    agent_id: string
    type: string
    wallet_address?: string | null
    status?: $Enums.AgentStatus
    capabilities?: NullableJsonNullValueInput | InputJsonValue
    contact_endpoints?: NullableJsonNullValueInput | InputJsonValue
    discovery_source?: string | null
    created_at?: Date | string
    updated_at?: Date | string
    crypto_address?: string | null
    mcp_endpoint?: string | null
    staked_amount?: number
    tier?: string
    tasks_as_scout?: TaskUncheckedCreateNestedManyWithoutScout_agentInput
    tasks_as_builder?: TaskUncheckedCreateNestedManyWithoutBuilder_agentInput
    claims?: ClaimUncheckedCreateNestedManyWithoutAgentInput
    scout_reputation?: ScoutReputationUncheckedCreateNestedOneWithoutScout_agentInput
    affiliate_ledger?: AffiliateLedgerUncheckedCreateNestedManyWithoutScout_agentInput
    bid_proposals?: BidProposalUncheckedCreateNestedManyWithoutAgentInput
    arbitrations_as_builder?: ArbitrationUncheckedCreateNestedManyWithoutBuilderInput
    arbitration_votes?: ArbitrationVoteUncheckedCreateNestedManyWithoutJudgeInput
    created_projects?: AgentProjectUncheckedCreateNestedManyWithoutCreatorInput
    slashing_events?: SlashingEventUncheckedCreateNestedManyWithoutAgentInput
  }

  export type AgentProfileCreateOrConnectWithoutArbitrations_as_evaluatorInput = {
    where: AgentProfileWhereUniqueInput
    create: XOR<AgentProfileCreateWithoutArbitrations_as_evaluatorInput, AgentProfileUncheckedCreateWithoutArbitrations_as_evaluatorInput>
  }

  export type ArbitrationVoteCreateWithoutArbitrationInput = {
    id?: string
    vote_for: string
    reasoning?: string | null
    created_at?: Date | string
    judge: AgentProfileCreateNestedOneWithoutArbitration_votesInput
  }

  export type ArbitrationVoteUncheckedCreateWithoutArbitrationInput = {
    id?: string
    judge_id: string
    vote_for: string
    reasoning?: string | null
    created_at?: Date | string
  }

  export type ArbitrationVoteCreateOrConnectWithoutArbitrationInput = {
    where: ArbitrationVoteWhereUniqueInput
    create: XOR<ArbitrationVoteCreateWithoutArbitrationInput, ArbitrationVoteUncheckedCreateWithoutArbitrationInput>
  }

  export type ArbitrationVoteCreateManyArbitrationInputEnvelope = {
    data: ArbitrationVoteCreateManyArbitrationInput | ArbitrationVoteCreateManyArbitrationInput[]
    skipDuplicates?: boolean
  }

  export type SlashingEventCreateWithoutArbitrationInput = {
    id?: string
    slashed_amount: number
    scout_reward: number
    treasury_reward: number
    reason: string
    created_at?: Date | string
    agent: AgentProfileCreateNestedOneWithoutSlashing_eventsInput
  }

  export type SlashingEventUncheckedCreateWithoutArbitrationInput = {
    id?: string
    agent_id: string
    slashed_amount: number
    scout_reward: number
    treasury_reward: number
    reason: string
    created_at?: Date | string
  }

  export type SlashingEventCreateOrConnectWithoutArbitrationInput = {
    where: SlashingEventWhereUniqueInput
    create: XOR<SlashingEventCreateWithoutArbitrationInput, SlashingEventUncheckedCreateWithoutArbitrationInput>
  }

  export type SlashingEventCreateManyArbitrationInputEnvelope = {
    data: SlashingEventCreateManyArbitrationInput | SlashingEventCreateManyArbitrationInput[]
    skipDuplicates?: boolean
  }

  export type TaskUpsertWithoutArbitrationsInput = {
    update: XOR<TaskUpdateWithoutArbitrationsInput, TaskUncheckedUpdateWithoutArbitrationsInput>
    create: XOR<TaskCreateWithoutArbitrationsInput, TaskUncheckedCreateWithoutArbitrationsInput>
    where?: TaskWhereInput
  }

  export type TaskUpdateToOneWithWhereWithoutArbitrationsInput = {
    where?: TaskWhereInput
    data: XOR<TaskUpdateWithoutArbitrationsInput, TaskUncheckedUpdateWithoutArbitrationsInput>
  }

  export type TaskUpdateWithoutArbitrationsInput = {
    id?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: StringFieldUpdateOperationsInput | string
    status?: StringFieldUpdateOperationsInput | string
    difficulty?: StringFieldUpdateOperationsInput | string
    scope_clarity_score?: FloatFieldUpdateOperationsInput | number
    error_classification?: NullableStringFieldUpdateOperationsInput | string | null
    reward_amount?: IntFieldUpdateOperationsInput | number
    reward_currency?: StringFieldUpdateOperationsInput | string
    acceptance_criteria?: JsonNullValueInput | InputJsonValue
    required_stack?: TaskUpdaterequired_stackInput | string[]
    retry_count?: IntFieldUpdateOperationsInput | number
    stripe_payment_intent_id?: NullableStringFieldUpdateOperationsInput | string | null
    stripe_checkout_session_id?: NullableStringFieldUpdateOperationsInput | string | null
    expires_at?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    github_pr_url?: NullableStringFieldUpdateOperationsInput | string | null
    reward_points?: IntFieldUpdateOperationsInput | number
    is_priority?: BoolFieldUpdateOperationsInput | boolean
    is_private?: BoolFieldUpdateOperationsInput | boolean
    referred_by_agent?: NullableStringFieldUpdateOperationsInput | string | null
    parent_task_id?: NullableStringFieldUpdateOperationsInput | string | null
    created_by_agent?: NullableStringFieldUpdateOperationsInput | string | null
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
    scout_agent?: AgentProfileUpdateOneWithoutTasks_as_scoutNestedInput
    builder_agent?: AgentProfileUpdateOneWithoutTasks_as_builderNestedInput
    claims?: ClaimUpdateManyWithoutTaskNestedInput
    submissions?: SubmissionUpdateManyWithoutTaskNestedInput
    affiliate_ledger?: AffiliateLedgerUpdateManyWithoutTaskNestedInput
    bid_proposals?: BidProposalUpdateManyWithoutTaskNestedInput
  }

  export type TaskUncheckedUpdateWithoutArbitrationsInput = {
    id?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: StringFieldUpdateOperationsInput | string
    status?: StringFieldUpdateOperationsInput | string
    difficulty?: StringFieldUpdateOperationsInput | string
    scope_clarity_score?: FloatFieldUpdateOperationsInput | number
    error_classification?: NullableStringFieldUpdateOperationsInput | string | null
    reward_amount?: IntFieldUpdateOperationsInput | number
    reward_currency?: StringFieldUpdateOperationsInput | string
    acceptance_criteria?: JsonNullValueInput | InputJsonValue
    required_stack?: TaskUpdaterequired_stackInput | string[]
    retry_count?: IntFieldUpdateOperationsInput | number
    stripe_payment_intent_id?: NullableStringFieldUpdateOperationsInput | string | null
    stripe_checkout_session_id?: NullableStringFieldUpdateOperationsInput | string | null
    expires_at?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    github_pr_url?: NullableStringFieldUpdateOperationsInput | string | null
    reward_points?: IntFieldUpdateOperationsInput | number
    is_priority?: BoolFieldUpdateOperationsInput | boolean
    is_private?: BoolFieldUpdateOperationsInput | boolean
    referred_by_agent?: NullableStringFieldUpdateOperationsInput | string | null
    parent_task_id?: NullableStringFieldUpdateOperationsInput | string | null
    created_by_agent?: NullableStringFieldUpdateOperationsInput | string | null
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
    scout_id?: NullableStringFieldUpdateOperationsInput | string | null
    builder_id?: NullableStringFieldUpdateOperationsInput | string | null
    claims?: ClaimUncheckedUpdateManyWithoutTaskNestedInput
    submissions?: SubmissionUncheckedUpdateManyWithoutTaskNestedInput
    affiliate_ledger?: AffiliateLedgerUncheckedUpdateManyWithoutTaskNestedInput
    bid_proposals?: BidProposalUncheckedUpdateManyWithoutTaskNestedInput
  }

  export type AgentProfileUpsertWithoutArbitrations_as_builderInput = {
    update: XOR<AgentProfileUpdateWithoutArbitrations_as_builderInput, AgentProfileUncheckedUpdateWithoutArbitrations_as_builderInput>
    create: XOR<AgentProfileCreateWithoutArbitrations_as_builderInput, AgentProfileUncheckedCreateWithoutArbitrations_as_builderInput>
    where?: AgentProfileWhereInput
  }

  export type AgentProfileUpdateToOneWithWhereWithoutArbitrations_as_builderInput = {
    where?: AgentProfileWhereInput
    data: XOR<AgentProfileUpdateWithoutArbitrations_as_builderInput, AgentProfileUncheckedUpdateWithoutArbitrations_as_builderInput>
  }

  export type AgentProfileUpdateWithoutArbitrations_as_builderInput = {
    id?: StringFieldUpdateOperationsInput | string
    agent_id?: StringFieldUpdateOperationsInput | string
    type?: StringFieldUpdateOperationsInput | string
    wallet_address?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumAgentStatusFieldUpdateOperationsInput | $Enums.AgentStatus
    capabilities?: NullableJsonNullValueInput | InputJsonValue
    contact_endpoints?: NullableJsonNullValueInput | InputJsonValue
    discovery_source?: NullableStringFieldUpdateOperationsInput | string | null
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
    crypto_address?: NullableStringFieldUpdateOperationsInput | string | null
    mcp_endpoint?: NullableStringFieldUpdateOperationsInput | string | null
    staked_amount?: IntFieldUpdateOperationsInput | number
    tier?: StringFieldUpdateOperationsInput | string
    tasks_as_scout?: TaskUpdateManyWithoutScout_agentNestedInput
    tasks_as_builder?: TaskUpdateManyWithoutBuilder_agentNestedInput
    claims?: ClaimUpdateManyWithoutAgentNestedInput
    scout_reputation?: ScoutReputationUpdateOneWithoutScout_agentNestedInput
    affiliate_ledger?: AffiliateLedgerUpdateManyWithoutScout_agentNestedInput
    bid_proposals?: BidProposalUpdateManyWithoutAgentNestedInput
    arbitrations_as_evaluator?: ArbitrationUpdateManyWithoutEvaluatorNestedInput
    arbitration_votes?: ArbitrationVoteUpdateManyWithoutJudgeNestedInput
    created_projects?: AgentProjectUpdateManyWithoutCreatorNestedInput
    slashing_events?: SlashingEventUpdateManyWithoutAgentNestedInput
  }

  export type AgentProfileUncheckedUpdateWithoutArbitrations_as_builderInput = {
    id?: StringFieldUpdateOperationsInput | string
    agent_id?: StringFieldUpdateOperationsInput | string
    type?: StringFieldUpdateOperationsInput | string
    wallet_address?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumAgentStatusFieldUpdateOperationsInput | $Enums.AgentStatus
    capabilities?: NullableJsonNullValueInput | InputJsonValue
    contact_endpoints?: NullableJsonNullValueInput | InputJsonValue
    discovery_source?: NullableStringFieldUpdateOperationsInput | string | null
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
    crypto_address?: NullableStringFieldUpdateOperationsInput | string | null
    mcp_endpoint?: NullableStringFieldUpdateOperationsInput | string | null
    staked_amount?: IntFieldUpdateOperationsInput | number
    tier?: StringFieldUpdateOperationsInput | string
    tasks_as_scout?: TaskUncheckedUpdateManyWithoutScout_agentNestedInput
    tasks_as_builder?: TaskUncheckedUpdateManyWithoutBuilder_agentNestedInput
    claims?: ClaimUncheckedUpdateManyWithoutAgentNestedInput
    scout_reputation?: ScoutReputationUncheckedUpdateOneWithoutScout_agentNestedInput
    affiliate_ledger?: AffiliateLedgerUncheckedUpdateManyWithoutScout_agentNestedInput
    bid_proposals?: BidProposalUncheckedUpdateManyWithoutAgentNestedInput
    arbitrations_as_evaluator?: ArbitrationUncheckedUpdateManyWithoutEvaluatorNestedInput
    arbitration_votes?: ArbitrationVoteUncheckedUpdateManyWithoutJudgeNestedInput
    created_projects?: AgentProjectUncheckedUpdateManyWithoutCreatorNestedInput
    slashing_events?: SlashingEventUncheckedUpdateManyWithoutAgentNestedInput
  }

  export type AgentProfileUpsertWithoutArbitrations_as_evaluatorInput = {
    update: XOR<AgentProfileUpdateWithoutArbitrations_as_evaluatorInput, AgentProfileUncheckedUpdateWithoutArbitrations_as_evaluatorInput>
    create: XOR<AgentProfileCreateWithoutArbitrations_as_evaluatorInput, AgentProfileUncheckedCreateWithoutArbitrations_as_evaluatorInput>
    where?: AgentProfileWhereInput
  }

  export type AgentProfileUpdateToOneWithWhereWithoutArbitrations_as_evaluatorInput = {
    where?: AgentProfileWhereInput
    data: XOR<AgentProfileUpdateWithoutArbitrations_as_evaluatorInput, AgentProfileUncheckedUpdateWithoutArbitrations_as_evaluatorInput>
  }

  export type AgentProfileUpdateWithoutArbitrations_as_evaluatorInput = {
    id?: StringFieldUpdateOperationsInput | string
    agent_id?: StringFieldUpdateOperationsInput | string
    type?: StringFieldUpdateOperationsInput | string
    wallet_address?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumAgentStatusFieldUpdateOperationsInput | $Enums.AgentStatus
    capabilities?: NullableJsonNullValueInput | InputJsonValue
    contact_endpoints?: NullableJsonNullValueInput | InputJsonValue
    discovery_source?: NullableStringFieldUpdateOperationsInput | string | null
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
    crypto_address?: NullableStringFieldUpdateOperationsInput | string | null
    mcp_endpoint?: NullableStringFieldUpdateOperationsInput | string | null
    staked_amount?: IntFieldUpdateOperationsInput | number
    tier?: StringFieldUpdateOperationsInput | string
    tasks_as_scout?: TaskUpdateManyWithoutScout_agentNestedInput
    tasks_as_builder?: TaskUpdateManyWithoutBuilder_agentNestedInput
    claims?: ClaimUpdateManyWithoutAgentNestedInput
    scout_reputation?: ScoutReputationUpdateOneWithoutScout_agentNestedInput
    affiliate_ledger?: AffiliateLedgerUpdateManyWithoutScout_agentNestedInput
    bid_proposals?: BidProposalUpdateManyWithoutAgentNestedInput
    arbitrations_as_builder?: ArbitrationUpdateManyWithoutBuilderNestedInput
    arbitration_votes?: ArbitrationVoteUpdateManyWithoutJudgeNestedInput
    created_projects?: AgentProjectUpdateManyWithoutCreatorNestedInput
    slashing_events?: SlashingEventUpdateManyWithoutAgentNestedInput
  }

  export type AgentProfileUncheckedUpdateWithoutArbitrations_as_evaluatorInput = {
    id?: StringFieldUpdateOperationsInput | string
    agent_id?: StringFieldUpdateOperationsInput | string
    type?: StringFieldUpdateOperationsInput | string
    wallet_address?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumAgentStatusFieldUpdateOperationsInput | $Enums.AgentStatus
    capabilities?: NullableJsonNullValueInput | InputJsonValue
    contact_endpoints?: NullableJsonNullValueInput | InputJsonValue
    discovery_source?: NullableStringFieldUpdateOperationsInput | string | null
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
    crypto_address?: NullableStringFieldUpdateOperationsInput | string | null
    mcp_endpoint?: NullableStringFieldUpdateOperationsInput | string | null
    staked_amount?: IntFieldUpdateOperationsInput | number
    tier?: StringFieldUpdateOperationsInput | string
    tasks_as_scout?: TaskUncheckedUpdateManyWithoutScout_agentNestedInput
    tasks_as_builder?: TaskUncheckedUpdateManyWithoutBuilder_agentNestedInput
    claims?: ClaimUncheckedUpdateManyWithoutAgentNestedInput
    scout_reputation?: ScoutReputationUncheckedUpdateOneWithoutScout_agentNestedInput
    affiliate_ledger?: AffiliateLedgerUncheckedUpdateManyWithoutScout_agentNestedInput
    bid_proposals?: BidProposalUncheckedUpdateManyWithoutAgentNestedInput
    arbitrations_as_builder?: ArbitrationUncheckedUpdateManyWithoutBuilderNestedInput
    arbitration_votes?: ArbitrationVoteUncheckedUpdateManyWithoutJudgeNestedInput
    created_projects?: AgentProjectUncheckedUpdateManyWithoutCreatorNestedInput
    slashing_events?: SlashingEventUncheckedUpdateManyWithoutAgentNestedInput
  }

  export type ArbitrationVoteUpsertWithWhereUniqueWithoutArbitrationInput = {
    where: ArbitrationVoteWhereUniqueInput
    update: XOR<ArbitrationVoteUpdateWithoutArbitrationInput, ArbitrationVoteUncheckedUpdateWithoutArbitrationInput>
    create: XOR<ArbitrationVoteCreateWithoutArbitrationInput, ArbitrationVoteUncheckedCreateWithoutArbitrationInput>
  }

  export type ArbitrationVoteUpdateWithWhereUniqueWithoutArbitrationInput = {
    where: ArbitrationVoteWhereUniqueInput
    data: XOR<ArbitrationVoteUpdateWithoutArbitrationInput, ArbitrationVoteUncheckedUpdateWithoutArbitrationInput>
  }

  export type ArbitrationVoteUpdateManyWithWhereWithoutArbitrationInput = {
    where: ArbitrationVoteScalarWhereInput
    data: XOR<ArbitrationVoteUpdateManyMutationInput, ArbitrationVoteUncheckedUpdateManyWithoutArbitrationInput>
  }

  export type SlashingEventUpsertWithWhereUniqueWithoutArbitrationInput = {
    where: SlashingEventWhereUniqueInput
    update: XOR<SlashingEventUpdateWithoutArbitrationInput, SlashingEventUncheckedUpdateWithoutArbitrationInput>
    create: XOR<SlashingEventCreateWithoutArbitrationInput, SlashingEventUncheckedCreateWithoutArbitrationInput>
  }

  export type SlashingEventUpdateWithWhereUniqueWithoutArbitrationInput = {
    where: SlashingEventWhereUniqueInput
    data: XOR<SlashingEventUpdateWithoutArbitrationInput, SlashingEventUncheckedUpdateWithoutArbitrationInput>
  }

  export type SlashingEventUpdateManyWithWhereWithoutArbitrationInput = {
    where: SlashingEventScalarWhereInput
    data: XOR<SlashingEventUpdateManyMutationInput, SlashingEventUncheckedUpdateManyWithoutArbitrationInput>
  }

  export type ArbitrationCreateWithoutVotesInput = {
    id?: string
    status?: string
    builder_evidence?: string | null
    evaluator_reason?: string | null
    winning_party?: string | null
    created_at?: Date | string
    updated_at?: Date | string
    task: TaskCreateNestedOneWithoutArbitrationsInput
    builder: AgentProfileCreateNestedOneWithoutArbitrations_as_builderInput
    evaluator: AgentProfileCreateNestedOneWithoutArbitrations_as_evaluatorInput
    slashing_events?: SlashingEventCreateNestedManyWithoutArbitrationInput
  }

  export type ArbitrationUncheckedCreateWithoutVotesInput = {
    id?: string
    task_id: string
    builder_id: string
    evaluator_id: string
    status?: string
    builder_evidence?: string | null
    evaluator_reason?: string | null
    winning_party?: string | null
    created_at?: Date | string
    updated_at?: Date | string
    slashing_events?: SlashingEventUncheckedCreateNestedManyWithoutArbitrationInput
  }

  export type ArbitrationCreateOrConnectWithoutVotesInput = {
    where: ArbitrationWhereUniqueInput
    create: XOR<ArbitrationCreateWithoutVotesInput, ArbitrationUncheckedCreateWithoutVotesInput>
  }

  export type AgentProfileCreateWithoutArbitration_votesInput = {
    id?: string
    agent_id: string
    type: string
    wallet_address?: string | null
    status?: $Enums.AgentStatus
    capabilities?: NullableJsonNullValueInput | InputJsonValue
    contact_endpoints?: NullableJsonNullValueInput | InputJsonValue
    discovery_source?: string | null
    created_at?: Date | string
    updated_at?: Date | string
    crypto_address?: string | null
    mcp_endpoint?: string | null
    staked_amount?: number
    tier?: string
    tasks_as_scout?: TaskCreateNestedManyWithoutScout_agentInput
    tasks_as_builder?: TaskCreateNestedManyWithoutBuilder_agentInput
    claims?: ClaimCreateNestedManyWithoutAgentInput
    scout_reputation?: ScoutReputationCreateNestedOneWithoutScout_agentInput
    affiliate_ledger?: AffiliateLedgerCreateNestedManyWithoutScout_agentInput
    bid_proposals?: BidProposalCreateNestedManyWithoutAgentInput
    arbitrations_as_builder?: ArbitrationCreateNestedManyWithoutBuilderInput
    arbitrations_as_evaluator?: ArbitrationCreateNestedManyWithoutEvaluatorInput
    created_projects?: AgentProjectCreateNestedManyWithoutCreatorInput
    slashing_events?: SlashingEventCreateNestedManyWithoutAgentInput
  }

  export type AgentProfileUncheckedCreateWithoutArbitration_votesInput = {
    id?: string
    agent_id: string
    type: string
    wallet_address?: string | null
    status?: $Enums.AgentStatus
    capabilities?: NullableJsonNullValueInput | InputJsonValue
    contact_endpoints?: NullableJsonNullValueInput | InputJsonValue
    discovery_source?: string | null
    created_at?: Date | string
    updated_at?: Date | string
    crypto_address?: string | null
    mcp_endpoint?: string | null
    staked_amount?: number
    tier?: string
    tasks_as_scout?: TaskUncheckedCreateNestedManyWithoutScout_agentInput
    tasks_as_builder?: TaskUncheckedCreateNestedManyWithoutBuilder_agentInput
    claims?: ClaimUncheckedCreateNestedManyWithoutAgentInput
    scout_reputation?: ScoutReputationUncheckedCreateNestedOneWithoutScout_agentInput
    affiliate_ledger?: AffiliateLedgerUncheckedCreateNestedManyWithoutScout_agentInput
    bid_proposals?: BidProposalUncheckedCreateNestedManyWithoutAgentInput
    arbitrations_as_builder?: ArbitrationUncheckedCreateNestedManyWithoutBuilderInput
    arbitrations_as_evaluator?: ArbitrationUncheckedCreateNestedManyWithoutEvaluatorInput
    created_projects?: AgentProjectUncheckedCreateNestedManyWithoutCreatorInput
    slashing_events?: SlashingEventUncheckedCreateNestedManyWithoutAgentInput
  }

  export type AgentProfileCreateOrConnectWithoutArbitration_votesInput = {
    where: AgentProfileWhereUniqueInput
    create: XOR<AgentProfileCreateWithoutArbitration_votesInput, AgentProfileUncheckedCreateWithoutArbitration_votesInput>
  }

  export type ArbitrationUpsertWithoutVotesInput = {
    update: XOR<ArbitrationUpdateWithoutVotesInput, ArbitrationUncheckedUpdateWithoutVotesInput>
    create: XOR<ArbitrationCreateWithoutVotesInput, ArbitrationUncheckedCreateWithoutVotesInput>
    where?: ArbitrationWhereInput
  }

  export type ArbitrationUpdateToOneWithWhereWithoutVotesInput = {
    where?: ArbitrationWhereInput
    data: XOR<ArbitrationUpdateWithoutVotesInput, ArbitrationUncheckedUpdateWithoutVotesInput>
  }

  export type ArbitrationUpdateWithoutVotesInput = {
    id?: StringFieldUpdateOperationsInput | string
    status?: StringFieldUpdateOperationsInput | string
    builder_evidence?: NullableStringFieldUpdateOperationsInput | string | null
    evaluator_reason?: NullableStringFieldUpdateOperationsInput | string | null
    winning_party?: NullableStringFieldUpdateOperationsInput | string | null
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
    task?: TaskUpdateOneRequiredWithoutArbitrationsNestedInput
    builder?: AgentProfileUpdateOneRequiredWithoutArbitrations_as_builderNestedInput
    evaluator?: AgentProfileUpdateOneRequiredWithoutArbitrations_as_evaluatorNestedInput
    slashing_events?: SlashingEventUpdateManyWithoutArbitrationNestedInput
  }

  export type ArbitrationUncheckedUpdateWithoutVotesInput = {
    id?: StringFieldUpdateOperationsInput | string
    task_id?: StringFieldUpdateOperationsInput | string
    builder_id?: StringFieldUpdateOperationsInput | string
    evaluator_id?: StringFieldUpdateOperationsInput | string
    status?: StringFieldUpdateOperationsInput | string
    builder_evidence?: NullableStringFieldUpdateOperationsInput | string | null
    evaluator_reason?: NullableStringFieldUpdateOperationsInput | string | null
    winning_party?: NullableStringFieldUpdateOperationsInput | string | null
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
    slashing_events?: SlashingEventUncheckedUpdateManyWithoutArbitrationNestedInput
  }

  export type AgentProfileUpsertWithoutArbitration_votesInput = {
    update: XOR<AgentProfileUpdateWithoutArbitration_votesInput, AgentProfileUncheckedUpdateWithoutArbitration_votesInput>
    create: XOR<AgentProfileCreateWithoutArbitration_votesInput, AgentProfileUncheckedCreateWithoutArbitration_votesInput>
    where?: AgentProfileWhereInput
  }

  export type AgentProfileUpdateToOneWithWhereWithoutArbitration_votesInput = {
    where?: AgentProfileWhereInput
    data: XOR<AgentProfileUpdateWithoutArbitration_votesInput, AgentProfileUncheckedUpdateWithoutArbitration_votesInput>
  }

  export type AgentProfileUpdateWithoutArbitration_votesInput = {
    id?: StringFieldUpdateOperationsInput | string
    agent_id?: StringFieldUpdateOperationsInput | string
    type?: StringFieldUpdateOperationsInput | string
    wallet_address?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumAgentStatusFieldUpdateOperationsInput | $Enums.AgentStatus
    capabilities?: NullableJsonNullValueInput | InputJsonValue
    contact_endpoints?: NullableJsonNullValueInput | InputJsonValue
    discovery_source?: NullableStringFieldUpdateOperationsInput | string | null
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
    crypto_address?: NullableStringFieldUpdateOperationsInput | string | null
    mcp_endpoint?: NullableStringFieldUpdateOperationsInput | string | null
    staked_amount?: IntFieldUpdateOperationsInput | number
    tier?: StringFieldUpdateOperationsInput | string
    tasks_as_scout?: TaskUpdateManyWithoutScout_agentNestedInput
    tasks_as_builder?: TaskUpdateManyWithoutBuilder_agentNestedInput
    claims?: ClaimUpdateManyWithoutAgentNestedInput
    scout_reputation?: ScoutReputationUpdateOneWithoutScout_agentNestedInput
    affiliate_ledger?: AffiliateLedgerUpdateManyWithoutScout_agentNestedInput
    bid_proposals?: BidProposalUpdateManyWithoutAgentNestedInput
    arbitrations_as_builder?: ArbitrationUpdateManyWithoutBuilderNestedInput
    arbitrations_as_evaluator?: ArbitrationUpdateManyWithoutEvaluatorNestedInput
    created_projects?: AgentProjectUpdateManyWithoutCreatorNestedInput
    slashing_events?: SlashingEventUpdateManyWithoutAgentNestedInput
  }

  export type AgentProfileUncheckedUpdateWithoutArbitration_votesInput = {
    id?: StringFieldUpdateOperationsInput | string
    agent_id?: StringFieldUpdateOperationsInput | string
    type?: StringFieldUpdateOperationsInput | string
    wallet_address?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumAgentStatusFieldUpdateOperationsInput | $Enums.AgentStatus
    capabilities?: NullableJsonNullValueInput | InputJsonValue
    contact_endpoints?: NullableJsonNullValueInput | InputJsonValue
    discovery_source?: NullableStringFieldUpdateOperationsInput | string | null
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
    crypto_address?: NullableStringFieldUpdateOperationsInput | string | null
    mcp_endpoint?: NullableStringFieldUpdateOperationsInput | string | null
    staked_amount?: IntFieldUpdateOperationsInput | number
    tier?: StringFieldUpdateOperationsInput | string
    tasks_as_scout?: TaskUncheckedUpdateManyWithoutScout_agentNestedInput
    tasks_as_builder?: TaskUncheckedUpdateManyWithoutBuilder_agentNestedInput
    claims?: ClaimUncheckedUpdateManyWithoutAgentNestedInput
    scout_reputation?: ScoutReputationUncheckedUpdateOneWithoutScout_agentNestedInput
    affiliate_ledger?: AffiliateLedgerUncheckedUpdateManyWithoutScout_agentNestedInput
    bid_proposals?: BidProposalUncheckedUpdateManyWithoutAgentNestedInput
    arbitrations_as_builder?: ArbitrationUncheckedUpdateManyWithoutBuilderNestedInput
    arbitrations_as_evaluator?: ArbitrationUncheckedUpdateManyWithoutEvaluatorNestedInput
    created_projects?: AgentProjectUncheckedUpdateManyWithoutCreatorNestedInput
    slashing_events?: SlashingEventUncheckedUpdateManyWithoutAgentNestedInput
  }

  export type AgentProfileCreateWithoutCreated_projectsInput = {
    id?: string
    agent_id: string
    type: string
    wallet_address?: string | null
    status?: $Enums.AgentStatus
    capabilities?: NullableJsonNullValueInput | InputJsonValue
    contact_endpoints?: NullableJsonNullValueInput | InputJsonValue
    discovery_source?: string | null
    created_at?: Date | string
    updated_at?: Date | string
    crypto_address?: string | null
    mcp_endpoint?: string | null
    staked_amount?: number
    tier?: string
    tasks_as_scout?: TaskCreateNestedManyWithoutScout_agentInput
    tasks_as_builder?: TaskCreateNestedManyWithoutBuilder_agentInput
    claims?: ClaimCreateNestedManyWithoutAgentInput
    scout_reputation?: ScoutReputationCreateNestedOneWithoutScout_agentInput
    affiliate_ledger?: AffiliateLedgerCreateNestedManyWithoutScout_agentInput
    bid_proposals?: BidProposalCreateNestedManyWithoutAgentInput
    arbitrations_as_builder?: ArbitrationCreateNestedManyWithoutBuilderInput
    arbitrations_as_evaluator?: ArbitrationCreateNestedManyWithoutEvaluatorInput
    arbitration_votes?: ArbitrationVoteCreateNestedManyWithoutJudgeInput
    slashing_events?: SlashingEventCreateNestedManyWithoutAgentInput
  }

  export type AgentProfileUncheckedCreateWithoutCreated_projectsInput = {
    id?: string
    agent_id: string
    type: string
    wallet_address?: string | null
    status?: $Enums.AgentStatus
    capabilities?: NullableJsonNullValueInput | InputJsonValue
    contact_endpoints?: NullableJsonNullValueInput | InputJsonValue
    discovery_source?: string | null
    created_at?: Date | string
    updated_at?: Date | string
    crypto_address?: string | null
    mcp_endpoint?: string | null
    staked_amount?: number
    tier?: string
    tasks_as_scout?: TaskUncheckedCreateNestedManyWithoutScout_agentInput
    tasks_as_builder?: TaskUncheckedCreateNestedManyWithoutBuilder_agentInput
    claims?: ClaimUncheckedCreateNestedManyWithoutAgentInput
    scout_reputation?: ScoutReputationUncheckedCreateNestedOneWithoutScout_agentInput
    affiliate_ledger?: AffiliateLedgerUncheckedCreateNestedManyWithoutScout_agentInput
    bid_proposals?: BidProposalUncheckedCreateNestedManyWithoutAgentInput
    arbitrations_as_builder?: ArbitrationUncheckedCreateNestedManyWithoutBuilderInput
    arbitrations_as_evaluator?: ArbitrationUncheckedCreateNestedManyWithoutEvaluatorInput
    arbitration_votes?: ArbitrationVoteUncheckedCreateNestedManyWithoutJudgeInput
    slashing_events?: SlashingEventUncheckedCreateNestedManyWithoutAgentInput
  }

  export type AgentProfileCreateOrConnectWithoutCreated_projectsInput = {
    where: AgentProfileWhereUniqueInput
    create: XOR<AgentProfileCreateWithoutCreated_projectsInput, AgentProfileUncheckedCreateWithoutCreated_projectsInput>
  }

  export type TokenSaleCreateWithoutProjectInput = {
    id?: string
    investor_id: string
    usdc_amount: number
    tokens_received: number
    price_per_token: number
    created_at?: Date | string
  }

  export type TokenSaleUncheckedCreateWithoutProjectInput = {
    id?: string
    investor_id: string
    usdc_amount: number
    tokens_received: number
    price_per_token: number
    created_at?: Date | string
  }

  export type TokenSaleCreateOrConnectWithoutProjectInput = {
    where: TokenSaleWhereUniqueInput
    create: XOR<TokenSaleCreateWithoutProjectInput, TokenSaleUncheckedCreateWithoutProjectInput>
  }

  export type TokenSaleCreateManyProjectInputEnvelope = {
    data: TokenSaleCreateManyProjectInput | TokenSaleCreateManyProjectInput[]
    skipDuplicates?: boolean
  }

  export type AgentProfileUpsertWithoutCreated_projectsInput = {
    update: XOR<AgentProfileUpdateWithoutCreated_projectsInput, AgentProfileUncheckedUpdateWithoutCreated_projectsInput>
    create: XOR<AgentProfileCreateWithoutCreated_projectsInput, AgentProfileUncheckedCreateWithoutCreated_projectsInput>
    where?: AgentProfileWhereInput
  }

  export type AgentProfileUpdateToOneWithWhereWithoutCreated_projectsInput = {
    where?: AgentProfileWhereInput
    data: XOR<AgentProfileUpdateWithoutCreated_projectsInput, AgentProfileUncheckedUpdateWithoutCreated_projectsInput>
  }

  export type AgentProfileUpdateWithoutCreated_projectsInput = {
    id?: StringFieldUpdateOperationsInput | string
    agent_id?: StringFieldUpdateOperationsInput | string
    type?: StringFieldUpdateOperationsInput | string
    wallet_address?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumAgentStatusFieldUpdateOperationsInput | $Enums.AgentStatus
    capabilities?: NullableJsonNullValueInput | InputJsonValue
    contact_endpoints?: NullableJsonNullValueInput | InputJsonValue
    discovery_source?: NullableStringFieldUpdateOperationsInput | string | null
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
    crypto_address?: NullableStringFieldUpdateOperationsInput | string | null
    mcp_endpoint?: NullableStringFieldUpdateOperationsInput | string | null
    staked_amount?: IntFieldUpdateOperationsInput | number
    tier?: StringFieldUpdateOperationsInput | string
    tasks_as_scout?: TaskUpdateManyWithoutScout_agentNestedInput
    tasks_as_builder?: TaskUpdateManyWithoutBuilder_agentNestedInput
    claims?: ClaimUpdateManyWithoutAgentNestedInput
    scout_reputation?: ScoutReputationUpdateOneWithoutScout_agentNestedInput
    affiliate_ledger?: AffiliateLedgerUpdateManyWithoutScout_agentNestedInput
    bid_proposals?: BidProposalUpdateManyWithoutAgentNestedInput
    arbitrations_as_builder?: ArbitrationUpdateManyWithoutBuilderNestedInput
    arbitrations_as_evaluator?: ArbitrationUpdateManyWithoutEvaluatorNestedInput
    arbitration_votes?: ArbitrationVoteUpdateManyWithoutJudgeNestedInput
    slashing_events?: SlashingEventUpdateManyWithoutAgentNestedInput
  }

  export type AgentProfileUncheckedUpdateWithoutCreated_projectsInput = {
    id?: StringFieldUpdateOperationsInput | string
    agent_id?: StringFieldUpdateOperationsInput | string
    type?: StringFieldUpdateOperationsInput | string
    wallet_address?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumAgentStatusFieldUpdateOperationsInput | $Enums.AgentStatus
    capabilities?: NullableJsonNullValueInput | InputJsonValue
    contact_endpoints?: NullableJsonNullValueInput | InputJsonValue
    discovery_source?: NullableStringFieldUpdateOperationsInput | string | null
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
    crypto_address?: NullableStringFieldUpdateOperationsInput | string | null
    mcp_endpoint?: NullableStringFieldUpdateOperationsInput | string | null
    staked_amount?: IntFieldUpdateOperationsInput | number
    tier?: StringFieldUpdateOperationsInput | string
    tasks_as_scout?: TaskUncheckedUpdateManyWithoutScout_agentNestedInput
    tasks_as_builder?: TaskUncheckedUpdateManyWithoutBuilder_agentNestedInput
    claims?: ClaimUncheckedUpdateManyWithoutAgentNestedInput
    scout_reputation?: ScoutReputationUncheckedUpdateOneWithoutScout_agentNestedInput
    affiliate_ledger?: AffiliateLedgerUncheckedUpdateManyWithoutScout_agentNestedInput
    bid_proposals?: BidProposalUncheckedUpdateManyWithoutAgentNestedInput
    arbitrations_as_builder?: ArbitrationUncheckedUpdateManyWithoutBuilderNestedInput
    arbitrations_as_evaluator?: ArbitrationUncheckedUpdateManyWithoutEvaluatorNestedInput
    arbitration_votes?: ArbitrationVoteUncheckedUpdateManyWithoutJudgeNestedInput
    slashing_events?: SlashingEventUncheckedUpdateManyWithoutAgentNestedInput
  }

  export type TokenSaleUpsertWithWhereUniqueWithoutProjectInput = {
    where: TokenSaleWhereUniqueInput
    update: XOR<TokenSaleUpdateWithoutProjectInput, TokenSaleUncheckedUpdateWithoutProjectInput>
    create: XOR<TokenSaleCreateWithoutProjectInput, TokenSaleUncheckedCreateWithoutProjectInput>
  }

  export type TokenSaleUpdateWithWhereUniqueWithoutProjectInput = {
    where: TokenSaleWhereUniqueInput
    data: XOR<TokenSaleUpdateWithoutProjectInput, TokenSaleUncheckedUpdateWithoutProjectInput>
  }

  export type TokenSaleUpdateManyWithWhereWithoutProjectInput = {
    where: TokenSaleScalarWhereInput
    data: XOR<TokenSaleUpdateManyMutationInput, TokenSaleUncheckedUpdateManyWithoutProjectInput>
  }

  export type TokenSaleScalarWhereInput = {
    AND?: TokenSaleScalarWhereInput | TokenSaleScalarWhereInput[]
    OR?: TokenSaleScalarWhereInput[]
    NOT?: TokenSaleScalarWhereInput | TokenSaleScalarWhereInput[]
    id?: StringFilter<"TokenSale"> | string
    project_id?: StringFilter<"TokenSale"> | string
    investor_id?: StringFilter<"TokenSale"> | string
    usdc_amount?: IntFilter<"TokenSale"> | number
    tokens_received?: FloatFilter<"TokenSale"> | number
    price_per_token?: FloatFilter<"TokenSale"> | number
    created_at?: DateTimeFilter<"TokenSale"> | Date | string
  }

  export type AgentProjectCreateWithoutToken_salesInput = {
    id?: string
    name: string
    ticker: string
    description: string
    whitepaper_url?: string | null
    target_raise: number
    total_supply: number
    status?: string
    created_at?: Date | string
    updated_at?: Date | string
    creator: AgentProfileCreateNestedOneWithoutCreated_projectsInput
  }

  export type AgentProjectUncheckedCreateWithoutToken_salesInput = {
    id?: string
    creator_agent_id: string
    name: string
    ticker: string
    description: string
    whitepaper_url?: string | null
    target_raise: number
    total_supply: number
    status?: string
    created_at?: Date | string
    updated_at?: Date | string
  }

  export type AgentProjectCreateOrConnectWithoutToken_salesInput = {
    where: AgentProjectWhereUniqueInput
    create: XOR<AgentProjectCreateWithoutToken_salesInput, AgentProjectUncheckedCreateWithoutToken_salesInput>
  }

  export type AgentProjectUpsertWithoutToken_salesInput = {
    update: XOR<AgentProjectUpdateWithoutToken_salesInput, AgentProjectUncheckedUpdateWithoutToken_salesInput>
    create: XOR<AgentProjectCreateWithoutToken_salesInput, AgentProjectUncheckedCreateWithoutToken_salesInput>
    where?: AgentProjectWhereInput
  }

  export type AgentProjectUpdateToOneWithWhereWithoutToken_salesInput = {
    where?: AgentProjectWhereInput
    data: XOR<AgentProjectUpdateWithoutToken_salesInput, AgentProjectUncheckedUpdateWithoutToken_salesInput>
  }

  export type AgentProjectUpdateWithoutToken_salesInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    ticker?: StringFieldUpdateOperationsInput | string
    description?: StringFieldUpdateOperationsInput | string
    whitepaper_url?: NullableStringFieldUpdateOperationsInput | string | null
    target_raise?: IntFieldUpdateOperationsInput | number
    total_supply?: IntFieldUpdateOperationsInput | number
    status?: StringFieldUpdateOperationsInput | string
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
    creator?: AgentProfileUpdateOneRequiredWithoutCreated_projectsNestedInput
  }

  export type AgentProjectUncheckedUpdateWithoutToken_salesInput = {
    id?: StringFieldUpdateOperationsInput | string
    creator_agent_id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    ticker?: StringFieldUpdateOperationsInput | string
    description?: StringFieldUpdateOperationsInput | string
    whitepaper_url?: NullableStringFieldUpdateOperationsInput | string | null
    target_raise?: IntFieldUpdateOperationsInput | number
    total_supply?: IntFieldUpdateOperationsInput | number
    status?: StringFieldUpdateOperationsInput | string
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AgentProfileCreateWithoutSlashing_eventsInput = {
    id?: string
    agent_id: string
    type: string
    wallet_address?: string | null
    status?: $Enums.AgentStatus
    capabilities?: NullableJsonNullValueInput | InputJsonValue
    contact_endpoints?: NullableJsonNullValueInput | InputJsonValue
    discovery_source?: string | null
    created_at?: Date | string
    updated_at?: Date | string
    crypto_address?: string | null
    mcp_endpoint?: string | null
    staked_amount?: number
    tier?: string
    tasks_as_scout?: TaskCreateNestedManyWithoutScout_agentInput
    tasks_as_builder?: TaskCreateNestedManyWithoutBuilder_agentInput
    claims?: ClaimCreateNestedManyWithoutAgentInput
    scout_reputation?: ScoutReputationCreateNestedOneWithoutScout_agentInput
    affiliate_ledger?: AffiliateLedgerCreateNestedManyWithoutScout_agentInput
    bid_proposals?: BidProposalCreateNestedManyWithoutAgentInput
    arbitrations_as_builder?: ArbitrationCreateNestedManyWithoutBuilderInput
    arbitrations_as_evaluator?: ArbitrationCreateNestedManyWithoutEvaluatorInput
    arbitration_votes?: ArbitrationVoteCreateNestedManyWithoutJudgeInput
    created_projects?: AgentProjectCreateNestedManyWithoutCreatorInput
  }

  export type AgentProfileUncheckedCreateWithoutSlashing_eventsInput = {
    id?: string
    agent_id: string
    type: string
    wallet_address?: string | null
    status?: $Enums.AgentStatus
    capabilities?: NullableJsonNullValueInput | InputJsonValue
    contact_endpoints?: NullableJsonNullValueInput | InputJsonValue
    discovery_source?: string | null
    created_at?: Date | string
    updated_at?: Date | string
    crypto_address?: string | null
    mcp_endpoint?: string | null
    staked_amount?: number
    tier?: string
    tasks_as_scout?: TaskUncheckedCreateNestedManyWithoutScout_agentInput
    tasks_as_builder?: TaskUncheckedCreateNestedManyWithoutBuilder_agentInput
    claims?: ClaimUncheckedCreateNestedManyWithoutAgentInput
    scout_reputation?: ScoutReputationUncheckedCreateNestedOneWithoutScout_agentInput
    affiliate_ledger?: AffiliateLedgerUncheckedCreateNestedManyWithoutScout_agentInput
    bid_proposals?: BidProposalUncheckedCreateNestedManyWithoutAgentInput
    arbitrations_as_builder?: ArbitrationUncheckedCreateNestedManyWithoutBuilderInput
    arbitrations_as_evaluator?: ArbitrationUncheckedCreateNestedManyWithoutEvaluatorInput
    arbitration_votes?: ArbitrationVoteUncheckedCreateNestedManyWithoutJudgeInput
    created_projects?: AgentProjectUncheckedCreateNestedManyWithoutCreatorInput
  }

  export type AgentProfileCreateOrConnectWithoutSlashing_eventsInput = {
    where: AgentProfileWhereUniqueInput
    create: XOR<AgentProfileCreateWithoutSlashing_eventsInput, AgentProfileUncheckedCreateWithoutSlashing_eventsInput>
  }

  export type ArbitrationCreateWithoutSlashing_eventsInput = {
    id?: string
    status?: string
    builder_evidence?: string | null
    evaluator_reason?: string | null
    winning_party?: string | null
    created_at?: Date | string
    updated_at?: Date | string
    task: TaskCreateNestedOneWithoutArbitrationsInput
    builder: AgentProfileCreateNestedOneWithoutArbitrations_as_builderInput
    evaluator: AgentProfileCreateNestedOneWithoutArbitrations_as_evaluatorInput
    votes?: ArbitrationVoteCreateNestedManyWithoutArbitrationInput
  }

  export type ArbitrationUncheckedCreateWithoutSlashing_eventsInput = {
    id?: string
    task_id: string
    builder_id: string
    evaluator_id: string
    status?: string
    builder_evidence?: string | null
    evaluator_reason?: string | null
    winning_party?: string | null
    created_at?: Date | string
    updated_at?: Date | string
    votes?: ArbitrationVoteUncheckedCreateNestedManyWithoutArbitrationInput
  }

  export type ArbitrationCreateOrConnectWithoutSlashing_eventsInput = {
    where: ArbitrationWhereUniqueInput
    create: XOR<ArbitrationCreateWithoutSlashing_eventsInput, ArbitrationUncheckedCreateWithoutSlashing_eventsInput>
  }

  export type AgentProfileUpsertWithoutSlashing_eventsInput = {
    update: XOR<AgentProfileUpdateWithoutSlashing_eventsInput, AgentProfileUncheckedUpdateWithoutSlashing_eventsInput>
    create: XOR<AgentProfileCreateWithoutSlashing_eventsInput, AgentProfileUncheckedCreateWithoutSlashing_eventsInput>
    where?: AgentProfileWhereInput
  }

  export type AgentProfileUpdateToOneWithWhereWithoutSlashing_eventsInput = {
    where?: AgentProfileWhereInput
    data: XOR<AgentProfileUpdateWithoutSlashing_eventsInput, AgentProfileUncheckedUpdateWithoutSlashing_eventsInput>
  }

  export type AgentProfileUpdateWithoutSlashing_eventsInput = {
    id?: StringFieldUpdateOperationsInput | string
    agent_id?: StringFieldUpdateOperationsInput | string
    type?: StringFieldUpdateOperationsInput | string
    wallet_address?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumAgentStatusFieldUpdateOperationsInput | $Enums.AgentStatus
    capabilities?: NullableJsonNullValueInput | InputJsonValue
    contact_endpoints?: NullableJsonNullValueInput | InputJsonValue
    discovery_source?: NullableStringFieldUpdateOperationsInput | string | null
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
    crypto_address?: NullableStringFieldUpdateOperationsInput | string | null
    mcp_endpoint?: NullableStringFieldUpdateOperationsInput | string | null
    staked_amount?: IntFieldUpdateOperationsInput | number
    tier?: StringFieldUpdateOperationsInput | string
    tasks_as_scout?: TaskUpdateManyWithoutScout_agentNestedInput
    tasks_as_builder?: TaskUpdateManyWithoutBuilder_agentNestedInput
    claims?: ClaimUpdateManyWithoutAgentNestedInput
    scout_reputation?: ScoutReputationUpdateOneWithoutScout_agentNestedInput
    affiliate_ledger?: AffiliateLedgerUpdateManyWithoutScout_agentNestedInput
    bid_proposals?: BidProposalUpdateManyWithoutAgentNestedInput
    arbitrations_as_builder?: ArbitrationUpdateManyWithoutBuilderNestedInput
    arbitrations_as_evaluator?: ArbitrationUpdateManyWithoutEvaluatorNestedInput
    arbitration_votes?: ArbitrationVoteUpdateManyWithoutJudgeNestedInput
    created_projects?: AgentProjectUpdateManyWithoutCreatorNestedInput
  }

  export type AgentProfileUncheckedUpdateWithoutSlashing_eventsInput = {
    id?: StringFieldUpdateOperationsInput | string
    agent_id?: StringFieldUpdateOperationsInput | string
    type?: StringFieldUpdateOperationsInput | string
    wallet_address?: NullableStringFieldUpdateOperationsInput | string | null
    status?: EnumAgentStatusFieldUpdateOperationsInput | $Enums.AgentStatus
    capabilities?: NullableJsonNullValueInput | InputJsonValue
    contact_endpoints?: NullableJsonNullValueInput | InputJsonValue
    discovery_source?: NullableStringFieldUpdateOperationsInput | string | null
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
    crypto_address?: NullableStringFieldUpdateOperationsInput | string | null
    mcp_endpoint?: NullableStringFieldUpdateOperationsInput | string | null
    staked_amount?: IntFieldUpdateOperationsInput | number
    tier?: StringFieldUpdateOperationsInput | string
    tasks_as_scout?: TaskUncheckedUpdateManyWithoutScout_agentNestedInput
    tasks_as_builder?: TaskUncheckedUpdateManyWithoutBuilder_agentNestedInput
    claims?: ClaimUncheckedUpdateManyWithoutAgentNestedInput
    scout_reputation?: ScoutReputationUncheckedUpdateOneWithoutScout_agentNestedInput
    affiliate_ledger?: AffiliateLedgerUncheckedUpdateManyWithoutScout_agentNestedInput
    bid_proposals?: BidProposalUncheckedUpdateManyWithoutAgentNestedInput
    arbitrations_as_builder?: ArbitrationUncheckedUpdateManyWithoutBuilderNestedInput
    arbitrations_as_evaluator?: ArbitrationUncheckedUpdateManyWithoutEvaluatorNestedInput
    arbitration_votes?: ArbitrationVoteUncheckedUpdateManyWithoutJudgeNestedInput
    created_projects?: AgentProjectUncheckedUpdateManyWithoutCreatorNestedInput
  }

  export type ArbitrationUpsertWithoutSlashing_eventsInput = {
    update: XOR<ArbitrationUpdateWithoutSlashing_eventsInput, ArbitrationUncheckedUpdateWithoutSlashing_eventsInput>
    create: XOR<ArbitrationCreateWithoutSlashing_eventsInput, ArbitrationUncheckedCreateWithoutSlashing_eventsInput>
    where?: ArbitrationWhereInput
  }

  export type ArbitrationUpdateToOneWithWhereWithoutSlashing_eventsInput = {
    where?: ArbitrationWhereInput
    data: XOR<ArbitrationUpdateWithoutSlashing_eventsInput, ArbitrationUncheckedUpdateWithoutSlashing_eventsInput>
  }

  export type ArbitrationUpdateWithoutSlashing_eventsInput = {
    id?: StringFieldUpdateOperationsInput | string
    status?: StringFieldUpdateOperationsInput | string
    builder_evidence?: NullableStringFieldUpdateOperationsInput | string | null
    evaluator_reason?: NullableStringFieldUpdateOperationsInput | string | null
    winning_party?: NullableStringFieldUpdateOperationsInput | string | null
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
    task?: TaskUpdateOneRequiredWithoutArbitrationsNestedInput
    builder?: AgentProfileUpdateOneRequiredWithoutArbitrations_as_builderNestedInput
    evaluator?: AgentProfileUpdateOneRequiredWithoutArbitrations_as_evaluatorNestedInput
    votes?: ArbitrationVoteUpdateManyWithoutArbitrationNestedInput
  }

  export type ArbitrationUncheckedUpdateWithoutSlashing_eventsInput = {
    id?: StringFieldUpdateOperationsInput | string
    task_id?: StringFieldUpdateOperationsInput | string
    builder_id?: StringFieldUpdateOperationsInput | string
    evaluator_id?: StringFieldUpdateOperationsInput | string
    status?: StringFieldUpdateOperationsInput | string
    builder_evidence?: NullableStringFieldUpdateOperationsInput | string | null
    evaluator_reason?: NullableStringFieldUpdateOperationsInput | string | null
    winning_party?: NullableStringFieldUpdateOperationsInput | string | null
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
    votes?: ArbitrationVoteUncheckedUpdateManyWithoutArbitrationNestedInput
  }

  export type ClaimCreateManyTaskInput = {
    id?: string
    agent_id: string
    developer_wallet: string
    status: string
    claim_token: string
    held_amount: number
    held_currency: string
    expires_at: Date | string
    created_at?: Date | string
    updated_at?: Date | string
  }

  export type SubmissionCreateManyTaskInput = {
    id?: string
    claim_id: string
    status: string
    deliverables: JsonNullValueInput | InputJsonValue
    estimated_judge_complete_at?: Date | string | null
    created_at?: Date | string
    updated_at?: Date | string
  }

  export type AffiliateLedgerCreateManyTaskInput = {
    id?: string
    scout_id: string
    amount: number
    currency: string
    status: string
    created_at?: Date | string
    updated_at?: Date | string
  }

  export type BidProposalCreateManyTaskInput = {
    id?: string
    agent_id: string
    proposed_reward: number
    estimated_duration_hours: number
    quality_guarantee?: string | null
    status: string
    counter_offer_amount?: number | null
    broker_agent_id?: string | null
    broker_fee_percentage?: number | null
    created_at?: Date | string
    updated_at?: Date | string
  }

  export type ArbitrationCreateManyTaskInput = {
    id?: string
    builder_id: string
    evaluator_id: string
    status?: string
    builder_evidence?: string | null
    evaluator_reason?: string | null
    winning_party?: string | null
    created_at?: Date | string
    updated_at?: Date | string
  }

  export type ClaimUpdateWithoutTaskInput = {
    id?: StringFieldUpdateOperationsInput | string
    developer_wallet?: StringFieldUpdateOperationsInput | string
    status?: StringFieldUpdateOperationsInput | string
    claim_token?: StringFieldUpdateOperationsInput | string
    held_amount?: IntFieldUpdateOperationsInput | number
    held_currency?: StringFieldUpdateOperationsInput | string
    expires_at?: DateTimeFieldUpdateOperationsInput | Date | string
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
    agent?: AgentProfileUpdateOneRequiredWithoutClaimsNestedInput
    submissions?: SubmissionUpdateManyWithoutClaimNestedInput
  }

  export type ClaimUncheckedUpdateWithoutTaskInput = {
    id?: StringFieldUpdateOperationsInput | string
    agent_id?: StringFieldUpdateOperationsInput | string
    developer_wallet?: StringFieldUpdateOperationsInput | string
    status?: StringFieldUpdateOperationsInput | string
    claim_token?: StringFieldUpdateOperationsInput | string
    held_amount?: IntFieldUpdateOperationsInput | number
    held_currency?: StringFieldUpdateOperationsInput | string
    expires_at?: DateTimeFieldUpdateOperationsInput | Date | string
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
    submissions?: SubmissionUncheckedUpdateManyWithoutClaimNestedInput
  }

  export type ClaimUncheckedUpdateManyWithoutTaskInput = {
    id?: StringFieldUpdateOperationsInput | string
    agent_id?: StringFieldUpdateOperationsInput | string
    developer_wallet?: StringFieldUpdateOperationsInput | string
    status?: StringFieldUpdateOperationsInput | string
    claim_token?: StringFieldUpdateOperationsInput | string
    held_amount?: IntFieldUpdateOperationsInput | number
    held_currency?: StringFieldUpdateOperationsInput | string
    expires_at?: DateTimeFieldUpdateOperationsInput | Date | string
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type SubmissionUpdateWithoutTaskInput = {
    id?: StringFieldUpdateOperationsInput | string
    status?: StringFieldUpdateOperationsInput | string
    deliverables?: JsonNullValueInput | InputJsonValue
    estimated_judge_complete_at?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
    claim?: ClaimUpdateOneRequiredWithoutSubmissionsNestedInput
    judge_results?: JudgeResultUpdateManyWithoutSubmissionNestedInput
  }

  export type SubmissionUncheckedUpdateWithoutTaskInput = {
    id?: StringFieldUpdateOperationsInput | string
    claim_id?: StringFieldUpdateOperationsInput | string
    status?: StringFieldUpdateOperationsInput | string
    deliverables?: JsonNullValueInput | InputJsonValue
    estimated_judge_complete_at?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
    judge_results?: JudgeResultUncheckedUpdateManyWithoutSubmissionNestedInput
  }

  export type SubmissionUncheckedUpdateManyWithoutTaskInput = {
    id?: StringFieldUpdateOperationsInput | string
    claim_id?: StringFieldUpdateOperationsInput | string
    status?: StringFieldUpdateOperationsInput | string
    deliverables?: JsonNullValueInput | InputJsonValue
    estimated_judge_complete_at?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AffiliateLedgerUpdateWithoutTaskInput = {
    id?: StringFieldUpdateOperationsInput | string
    amount?: IntFieldUpdateOperationsInput | number
    currency?: StringFieldUpdateOperationsInput | string
    status?: StringFieldUpdateOperationsInput | string
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
    scout_agent?: AgentProfileUpdateOneRequiredWithoutAffiliate_ledgerNestedInput
  }

  export type AffiliateLedgerUncheckedUpdateWithoutTaskInput = {
    id?: StringFieldUpdateOperationsInput | string
    scout_id?: StringFieldUpdateOperationsInput | string
    amount?: IntFieldUpdateOperationsInput | number
    currency?: StringFieldUpdateOperationsInput | string
    status?: StringFieldUpdateOperationsInput | string
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AffiliateLedgerUncheckedUpdateManyWithoutTaskInput = {
    id?: StringFieldUpdateOperationsInput | string
    scout_id?: StringFieldUpdateOperationsInput | string
    amount?: IntFieldUpdateOperationsInput | number
    currency?: StringFieldUpdateOperationsInput | string
    status?: StringFieldUpdateOperationsInput | string
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type BidProposalUpdateWithoutTaskInput = {
    id?: StringFieldUpdateOperationsInput | string
    proposed_reward?: IntFieldUpdateOperationsInput | number
    estimated_duration_hours?: FloatFieldUpdateOperationsInput | number
    quality_guarantee?: NullableStringFieldUpdateOperationsInput | string | null
    status?: StringFieldUpdateOperationsInput | string
    counter_offer_amount?: NullableIntFieldUpdateOperationsInput | number | null
    broker_agent_id?: NullableStringFieldUpdateOperationsInput | string | null
    broker_fee_percentage?: NullableFloatFieldUpdateOperationsInput | number | null
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
    agent?: AgentProfileUpdateOneRequiredWithoutBid_proposalsNestedInput
  }

  export type BidProposalUncheckedUpdateWithoutTaskInput = {
    id?: StringFieldUpdateOperationsInput | string
    agent_id?: StringFieldUpdateOperationsInput | string
    proposed_reward?: IntFieldUpdateOperationsInput | number
    estimated_duration_hours?: FloatFieldUpdateOperationsInput | number
    quality_guarantee?: NullableStringFieldUpdateOperationsInput | string | null
    status?: StringFieldUpdateOperationsInput | string
    counter_offer_amount?: NullableIntFieldUpdateOperationsInput | number | null
    broker_agent_id?: NullableStringFieldUpdateOperationsInput | string | null
    broker_fee_percentage?: NullableFloatFieldUpdateOperationsInput | number | null
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type BidProposalUncheckedUpdateManyWithoutTaskInput = {
    id?: StringFieldUpdateOperationsInput | string
    agent_id?: StringFieldUpdateOperationsInput | string
    proposed_reward?: IntFieldUpdateOperationsInput | number
    estimated_duration_hours?: FloatFieldUpdateOperationsInput | number
    quality_guarantee?: NullableStringFieldUpdateOperationsInput | string | null
    status?: StringFieldUpdateOperationsInput | string
    counter_offer_amount?: NullableIntFieldUpdateOperationsInput | number | null
    broker_agent_id?: NullableStringFieldUpdateOperationsInput | string | null
    broker_fee_percentage?: NullableFloatFieldUpdateOperationsInput | number | null
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type ArbitrationUpdateWithoutTaskInput = {
    id?: StringFieldUpdateOperationsInput | string
    status?: StringFieldUpdateOperationsInput | string
    builder_evidence?: NullableStringFieldUpdateOperationsInput | string | null
    evaluator_reason?: NullableStringFieldUpdateOperationsInput | string | null
    winning_party?: NullableStringFieldUpdateOperationsInput | string | null
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
    builder?: AgentProfileUpdateOneRequiredWithoutArbitrations_as_builderNestedInput
    evaluator?: AgentProfileUpdateOneRequiredWithoutArbitrations_as_evaluatorNestedInput
    votes?: ArbitrationVoteUpdateManyWithoutArbitrationNestedInput
    slashing_events?: SlashingEventUpdateManyWithoutArbitrationNestedInput
  }

  export type ArbitrationUncheckedUpdateWithoutTaskInput = {
    id?: StringFieldUpdateOperationsInput | string
    builder_id?: StringFieldUpdateOperationsInput | string
    evaluator_id?: StringFieldUpdateOperationsInput | string
    status?: StringFieldUpdateOperationsInput | string
    builder_evidence?: NullableStringFieldUpdateOperationsInput | string | null
    evaluator_reason?: NullableStringFieldUpdateOperationsInput | string | null
    winning_party?: NullableStringFieldUpdateOperationsInput | string | null
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
    votes?: ArbitrationVoteUncheckedUpdateManyWithoutArbitrationNestedInput
    slashing_events?: SlashingEventUncheckedUpdateManyWithoutArbitrationNestedInput
  }

  export type ArbitrationUncheckedUpdateManyWithoutTaskInput = {
    id?: StringFieldUpdateOperationsInput | string
    builder_id?: StringFieldUpdateOperationsInput | string
    evaluator_id?: StringFieldUpdateOperationsInput | string
    status?: StringFieldUpdateOperationsInput | string
    builder_evidence?: NullableStringFieldUpdateOperationsInput | string | null
    evaluator_reason?: NullableStringFieldUpdateOperationsInput | string | null
    winning_party?: NullableStringFieldUpdateOperationsInput | string | null
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type SubmissionCreateManyClaimInput = {
    id?: string
    task_id: string
    status: string
    deliverables: JsonNullValueInput | InputJsonValue
    estimated_judge_complete_at?: Date | string | null
    created_at?: Date | string
    updated_at?: Date | string
  }

  export type SubmissionUpdateWithoutClaimInput = {
    id?: StringFieldUpdateOperationsInput | string
    status?: StringFieldUpdateOperationsInput | string
    deliverables?: JsonNullValueInput | InputJsonValue
    estimated_judge_complete_at?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
    task?: TaskUpdateOneRequiredWithoutSubmissionsNestedInput
    judge_results?: JudgeResultUpdateManyWithoutSubmissionNestedInput
  }

  export type SubmissionUncheckedUpdateWithoutClaimInput = {
    id?: StringFieldUpdateOperationsInput | string
    task_id?: StringFieldUpdateOperationsInput | string
    status?: StringFieldUpdateOperationsInput | string
    deliverables?: JsonNullValueInput | InputJsonValue
    estimated_judge_complete_at?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
    judge_results?: JudgeResultUncheckedUpdateManyWithoutSubmissionNestedInput
  }

  export type SubmissionUncheckedUpdateManyWithoutClaimInput = {
    id?: StringFieldUpdateOperationsInput | string
    task_id?: StringFieldUpdateOperationsInput | string
    status?: StringFieldUpdateOperationsInput | string
    deliverables?: JsonNullValueInput | InputJsonValue
    estimated_judge_complete_at?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type JudgeResultCreateManySubmissionInput = {
    id?: string
    overall_result: string
    tests: JsonNullValueInput | InputJsonValue
    artifacts?: NullableJsonNullValueInput | InputJsonValue
    error_classification?: string | null
    error_signature?: string | null
    retryable?: boolean
    resource_usage: JsonNullValueInput | InputJsonValue
    judge_completed_at?: Date | string
  }

  export type JudgeResultUpdateWithoutSubmissionInput = {
    id?: StringFieldUpdateOperationsInput | string
    overall_result?: StringFieldUpdateOperationsInput | string
    tests?: JsonNullValueInput | InputJsonValue
    artifacts?: NullableJsonNullValueInput | InputJsonValue
    error_classification?: NullableStringFieldUpdateOperationsInput | string | null
    error_signature?: NullableStringFieldUpdateOperationsInput | string | null
    retryable?: BoolFieldUpdateOperationsInput | boolean
    resource_usage?: JsonNullValueInput | InputJsonValue
    judge_completed_at?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type JudgeResultUncheckedUpdateWithoutSubmissionInput = {
    id?: StringFieldUpdateOperationsInput | string
    overall_result?: StringFieldUpdateOperationsInput | string
    tests?: JsonNullValueInput | InputJsonValue
    artifacts?: NullableJsonNullValueInput | InputJsonValue
    error_classification?: NullableStringFieldUpdateOperationsInput | string | null
    error_signature?: NullableStringFieldUpdateOperationsInput | string | null
    retryable?: BoolFieldUpdateOperationsInput | boolean
    resource_usage?: JsonNullValueInput | InputJsonValue
    judge_completed_at?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type JudgeResultUncheckedUpdateManyWithoutSubmissionInput = {
    id?: StringFieldUpdateOperationsInput | string
    overall_result?: StringFieldUpdateOperationsInput | string
    tests?: JsonNullValueInput | InputJsonValue
    artifacts?: NullableJsonNullValueInput | InputJsonValue
    error_classification?: NullableStringFieldUpdateOperationsInput | string | null
    error_signature?: NullableStringFieldUpdateOperationsInput | string | null
    retryable?: BoolFieldUpdateOperationsInput | boolean
    resource_usage?: JsonNullValueInput | InputJsonValue
    judge_completed_at?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type TaskCreateManyScout_agentInput = {
    id?: string
    title: string
    description: string
    status: string
    difficulty: string
    scope_clarity_score: number
    error_classification?: string | null
    reward_amount: number
    reward_currency: string
    acceptance_criteria: JsonNullValueInput | InputJsonValue
    required_stack?: TaskCreaterequired_stackInput | string[]
    retry_count?: number
    stripe_payment_intent_id?: string | null
    stripe_checkout_session_id?: string | null
    expires_at?: Date | string | null
    github_pr_url?: string | null
    reward_points?: number
    is_priority?: boolean
    is_private?: boolean
    referred_by_agent?: string | null
    parent_task_id?: string | null
    created_by_agent?: string | null
    created_at?: Date | string
    updated_at?: Date | string
    builder_id?: string | null
  }

  export type TaskCreateManyBuilder_agentInput = {
    id?: string
    title: string
    description: string
    status: string
    difficulty: string
    scope_clarity_score: number
    error_classification?: string | null
    reward_amount: number
    reward_currency: string
    acceptance_criteria: JsonNullValueInput | InputJsonValue
    required_stack?: TaskCreaterequired_stackInput | string[]
    retry_count?: number
    stripe_payment_intent_id?: string | null
    stripe_checkout_session_id?: string | null
    expires_at?: Date | string | null
    github_pr_url?: string | null
    reward_points?: number
    is_priority?: boolean
    is_private?: boolean
    referred_by_agent?: string | null
    parent_task_id?: string | null
    created_by_agent?: string | null
    created_at?: Date | string
    updated_at?: Date | string
    scout_id?: string | null
  }

  export type ClaimCreateManyAgentInput = {
    id?: string
    task_id: string
    developer_wallet: string
    status: string
    claim_token: string
    held_amount: number
    held_currency: string
    expires_at: Date | string
    created_at?: Date | string
    updated_at?: Date | string
  }

  export type AffiliateLedgerCreateManyScout_agentInput = {
    id?: string
    task_id: string
    amount: number
    currency: string
    status: string
    created_at?: Date | string
    updated_at?: Date | string
  }

  export type BidProposalCreateManyAgentInput = {
    id?: string
    task_id: string
    proposed_reward: number
    estimated_duration_hours: number
    quality_guarantee?: string | null
    status: string
    counter_offer_amount?: number | null
    broker_agent_id?: string | null
    broker_fee_percentage?: number | null
    created_at?: Date | string
    updated_at?: Date | string
  }

  export type ArbitrationCreateManyBuilderInput = {
    id?: string
    task_id: string
    evaluator_id: string
    status?: string
    builder_evidence?: string | null
    evaluator_reason?: string | null
    winning_party?: string | null
    created_at?: Date | string
    updated_at?: Date | string
  }

  export type ArbitrationCreateManyEvaluatorInput = {
    id?: string
    task_id: string
    builder_id: string
    status?: string
    builder_evidence?: string | null
    evaluator_reason?: string | null
    winning_party?: string | null
    created_at?: Date | string
    updated_at?: Date | string
  }

  export type ArbitrationVoteCreateManyJudgeInput = {
    id?: string
    arbitration_id: string
    vote_for: string
    reasoning?: string | null
    created_at?: Date | string
  }

  export type AgentProjectCreateManyCreatorInput = {
    id?: string
    name: string
    ticker: string
    description: string
    whitepaper_url?: string | null
    target_raise: number
    total_supply: number
    status?: string
    created_at?: Date | string
    updated_at?: Date | string
  }

  export type SlashingEventCreateManyAgentInput = {
    id?: string
    arbitration_id: string
    slashed_amount: number
    scout_reward: number
    treasury_reward: number
    reason: string
    created_at?: Date | string
  }

  export type TaskUpdateWithoutScout_agentInput = {
    id?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: StringFieldUpdateOperationsInput | string
    status?: StringFieldUpdateOperationsInput | string
    difficulty?: StringFieldUpdateOperationsInput | string
    scope_clarity_score?: FloatFieldUpdateOperationsInput | number
    error_classification?: NullableStringFieldUpdateOperationsInput | string | null
    reward_amount?: IntFieldUpdateOperationsInput | number
    reward_currency?: StringFieldUpdateOperationsInput | string
    acceptance_criteria?: JsonNullValueInput | InputJsonValue
    required_stack?: TaskUpdaterequired_stackInput | string[]
    retry_count?: IntFieldUpdateOperationsInput | number
    stripe_payment_intent_id?: NullableStringFieldUpdateOperationsInput | string | null
    stripe_checkout_session_id?: NullableStringFieldUpdateOperationsInput | string | null
    expires_at?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    github_pr_url?: NullableStringFieldUpdateOperationsInput | string | null
    reward_points?: IntFieldUpdateOperationsInput | number
    is_priority?: BoolFieldUpdateOperationsInput | boolean
    is_private?: BoolFieldUpdateOperationsInput | boolean
    referred_by_agent?: NullableStringFieldUpdateOperationsInput | string | null
    parent_task_id?: NullableStringFieldUpdateOperationsInput | string | null
    created_by_agent?: NullableStringFieldUpdateOperationsInput | string | null
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
    builder_agent?: AgentProfileUpdateOneWithoutTasks_as_builderNestedInput
    claims?: ClaimUpdateManyWithoutTaskNestedInput
    submissions?: SubmissionUpdateManyWithoutTaskNestedInput
    affiliate_ledger?: AffiliateLedgerUpdateManyWithoutTaskNestedInput
    bid_proposals?: BidProposalUpdateManyWithoutTaskNestedInput
    arbitrations?: ArbitrationUpdateManyWithoutTaskNestedInput
  }

  export type TaskUncheckedUpdateWithoutScout_agentInput = {
    id?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: StringFieldUpdateOperationsInput | string
    status?: StringFieldUpdateOperationsInput | string
    difficulty?: StringFieldUpdateOperationsInput | string
    scope_clarity_score?: FloatFieldUpdateOperationsInput | number
    error_classification?: NullableStringFieldUpdateOperationsInput | string | null
    reward_amount?: IntFieldUpdateOperationsInput | number
    reward_currency?: StringFieldUpdateOperationsInput | string
    acceptance_criteria?: JsonNullValueInput | InputJsonValue
    required_stack?: TaskUpdaterequired_stackInput | string[]
    retry_count?: IntFieldUpdateOperationsInput | number
    stripe_payment_intent_id?: NullableStringFieldUpdateOperationsInput | string | null
    stripe_checkout_session_id?: NullableStringFieldUpdateOperationsInput | string | null
    expires_at?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    github_pr_url?: NullableStringFieldUpdateOperationsInput | string | null
    reward_points?: IntFieldUpdateOperationsInput | number
    is_priority?: BoolFieldUpdateOperationsInput | boolean
    is_private?: BoolFieldUpdateOperationsInput | boolean
    referred_by_agent?: NullableStringFieldUpdateOperationsInput | string | null
    parent_task_id?: NullableStringFieldUpdateOperationsInput | string | null
    created_by_agent?: NullableStringFieldUpdateOperationsInput | string | null
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
    builder_id?: NullableStringFieldUpdateOperationsInput | string | null
    claims?: ClaimUncheckedUpdateManyWithoutTaskNestedInput
    submissions?: SubmissionUncheckedUpdateManyWithoutTaskNestedInput
    affiliate_ledger?: AffiliateLedgerUncheckedUpdateManyWithoutTaskNestedInput
    bid_proposals?: BidProposalUncheckedUpdateManyWithoutTaskNestedInput
    arbitrations?: ArbitrationUncheckedUpdateManyWithoutTaskNestedInput
  }

  export type TaskUncheckedUpdateManyWithoutScout_agentInput = {
    id?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: StringFieldUpdateOperationsInput | string
    status?: StringFieldUpdateOperationsInput | string
    difficulty?: StringFieldUpdateOperationsInput | string
    scope_clarity_score?: FloatFieldUpdateOperationsInput | number
    error_classification?: NullableStringFieldUpdateOperationsInput | string | null
    reward_amount?: IntFieldUpdateOperationsInput | number
    reward_currency?: StringFieldUpdateOperationsInput | string
    acceptance_criteria?: JsonNullValueInput | InputJsonValue
    required_stack?: TaskUpdaterequired_stackInput | string[]
    retry_count?: IntFieldUpdateOperationsInput | number
    stripe_payment_intent_id?: NullableStringFieldUpdateOperationsInput | string | null
    stripe_checkout_session_id?: NullableStringFieldUpdateOperationsInput | string | null
    expires_at?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    github_pr_url?: NullableStringFieldUpdateOperationsInput | string | null
    reward_points?: IntFieldUpdateOperationsInput | number
    is_priority?: BoolFieldUpdateOperationsInput | boolean
    is_private?: BoolFieldUpdateOperationsInput | boolean
    referred_by_agent?: NullableStringFieldUpdateOperationsInput | string | null
    parent_task_id?: NullableStringFieldUpdateOperationsInput | string | null
    created_by_agent?: NullableStringFieldUpdateOperationsInput | string | null
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
    builder_id?: NullableStringFieldUpdateOperationsInput | string | null
  }

  export type TaskUpdateWithoutBuilder_agentInput = {
    id?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: StringFieldUpdateOperationsInput | string
    status?: StringFieldUpdateOperationsInput | string
    difficulty?: StringFieldUpdateOperationsInput | string
    scope_clarity_score?: FloatFieldUpdateOperationsInput | number
    error_classification?: NullableStringFieldUpdateOperationsInput | string | null
    reward_amount?: IntFieldUpdateOperationsInput | number
    reward_currency?: StringFieldUpdateOperationsInput | string
    acceptance_criteria?: JsonNullValueInput | InputJsonValue
    required_stack?: TaskUpdaterequired_stackInput | string[]
    retry_count?: IntFieldUpdateOperationsInput | number
    stripe_payment_intent_id?: NullableStringFieldUpdateOperationsInput | string | null
    stripe_checkout_session_id?: NullableStringFieldUpdateOperationsInput | string | null
    expires_at?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    github_pr_url?: NullableStringFieldUpdateOperationsInput | string | null
    reward_points?: IntFieldUpdateOperationsInput | number
    is_priority?: BoolFieldUpdateOperationsInput | boolean
    is_private?: BoolFieldUpdateOperationsInput | boolean
    referred_by_agent?: NullableStringFieldUpdateOperationsInput | string | null
    parent_task_id?: NullableStringFieldUpdateOperationsInput | string | null
    created_by_agent?: NullableStringFieldUpdateOperationsInput | string | null
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
    scout_agent?: AgentProfileUpdateOneWithoutTasks_as_scoutNestedInput
    claims?: ClaimUpdateManyWithoutTaskNestedInput
    submissions?: SubmissionUpdateManyWithoutTaskNestedInput
    affiliate_ledger?: AffiliateLedgerUpdateManyWithoutTaskNestedInput
    bid_proposals?: BidProposalUpdateManyWithoutTaskNestedInput
    arbitrations?: ArbitrationUpdateManyWithoutTaskNestedInput
  }

  export type TaskUncheckedUpdateWithoutBuilder_agentInput = {
    id?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: StringFieldUpdateOperationsInput | string
    status?: StringFieldUpdateOperationsInput | string
    difficulty?: StringFieldUpdateOperationsInput | string
    scope_clarity_score?: FloatFieldUpdateOperationsInput | number
    error_classification?: NullableStringFieldUpdateOperationsInput | string | null
    reward_amount?: IntFieldUpdateOperationsInput | number
    reward_currency?: StringFieldUpdateOperationsInput | string
    acceptance_criteria?: JsonNullValueInput | InputJsonValue
    required_stack?: TaskUpdaterequired_stackInput | string[]
    retry_count?: IntFieldUpdateOperationsInput | number
    stripe_payment_intent_id?: NullableStringFieldUpdateOperationsInput | string | null
    stripe_checkout_session_id?: NullableStringFieldUpdateOperationsInput | string | null
    expires_at?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    github_pr_url?: NullableStringFieldUpdateOperationsInput | string | null
    reward_points?: IntFieldUpdateOperationsInput | number
    is_priority?: BoolFieldUpdateOperationsInput | boolean
    is_private?: BoolFieldUpdateOperationsInput | boolean
    referred_by_agent?: NullableStringFieldUpdateOperationsInput | string | null
    parent_task_id?: NullableStringFieldUpdateOperationsInput | string | null
    created_by_agent?: NullableStringFieldUpdateOperationsInput | string | null
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
    scout_id?: NullableStringFieldUpdateOperationsInput | string | null
    claims?: ClaimUncheckedUpdateManyWithoutTaskNestedInput
    submissions?: SubmissionUncheckedUpdateManyWithoutTaskNestedInput
    affiliate_ledger?: AffiliateLedgerUncheckedUpdateManyWithoutTaskNestedInput
    bid_proposals?: BidProposalUncheckedUpdateManyWithoutTaskNestedInput
    arbitrations?: ArbitrationUncheckedUpdateManyWithoutTaskNestedInput
  }

  export type TaskUncheckedUpdateManyWithoutBuilder_agentInput = {
    id?: StringFieldUpdateOperationsInput | string
    title?: StringFieldUpdateOperationsInput | string
    description?: StringFieldUpdateOperationsInput | string
    status?: StringFieldUpdateOperationsInput | string
    difficulty?: StringFieldUpdateOperationsInput | string
    scope_clarity_score?: FloatFieldUpdateOperationsInput | number
    error_classification?: NullableStringFieldUpdateOperationsInput | string | null
    reward_amount?: IntFieldUpdateOperationsInput | number
    reward_currency?: StringFieldUpdateOperationsInput | string
    acceptance_criteria?: JsonNullValueInput | InputJsonValue
    required_stack?: TaskUpdaterequired_stackInput | string[]
    retry_count?: IntFieldUpdateOperationsInput | number
    stripe_payment_intent_id?: NullableStringFieldUpdateOperationsInput | string | null
    stripe_checkout_session_id?: NullableStringFieldUpdateOperationsInput | string | null
    expires_at?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null
    github_pr_url?: NullableStringFieldUpdateOperationsInput | string | null
    reward_points?: IntFieldUpdateOperationsInput | number
    is_priority?: BoolFieldUpdateOperationsInput | boolean
    is_private?: BoolFieldUpdateOperationsInput | boolean
    referred_by_agent?: NullableStringFieldUpdateOperationsInput | string | null
    parent_task_id?: NullableStringFieldUpdateOperationsInput | string | null
    created_by_agent?: NullableStringFieldUpdateOperationsInput | string | null
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
    scout_id?: NullableStringFieldUpdateOperationsInput | string | null
  }

  export type ClaimUpdateWithoutAgentInput = {
    id?: StringFieldUpdateOperationsInput | string
    developer_wallet?: StringFieldUpdateOperationsInput | string
    status?: StringFieldUpdateOperationsInput | string
    claim_token?: StringFieldUpdateOperationsInput | string
    held_amount?: IntFieldUpdateOperationsInput | number
    held_currency?: StringFieldUpdateOperationsInput | string
    expires_at?: DateTimeFieldUpdateOperationsInput | Date | string
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
    task?: TaskUpdateOneRequiredWithoutClaimsNestedInput
    submissions?: SubmissionUpdateManyWithoutClaimNestedInput
  }

  export type ClaimUncheckedUpdateWithoutAgentInput = {
    id?: StringFieldUpdateOperationsInput | string
    task_id?: StringFieldUpdateOperationsInput | string
    developer_wallet?: StringFieldUpdateOperationsInput | string
    status?: StringFieldUpdateOperationsInput | string
    claim_token?: StringFieldUpdateOperationsInput | string
    held_amount?: IntFieldUpdateOperationsInput | number
    held_currency?: StringFieldUpdateOperationsInput | string
    expires_at?: DateTimeFieldUpdateOperationsInput | Date | string
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
    submissions?: SubmissionUncheckedUpdateManyWithoutClaimNestedInput
  }

  export type ClaimUncheckedUpdateManyWithoutAgentInput = {
    id?: StringFieldUpdateOperationsInput | string
    task_id?: StringFieldUpdateOperationsInput | string
    developer_wallet?: StringFieldUpdateOperationsInput | string
    status?: StringFieldUpdateOperationsInput | string
    claim_token?: StringFieldUpdateOperationsInput | string
    held_amount?: IntFieldUpdateOperationsInput | number
    held_currency?: StringFieldUpdateOperationsInput | string
    expires_at?: DateTimeFieldUpdateOperationsInput | Date | string
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AffiliateLedgerUpdateWithoutScout_agentInput = {
    id?: StringFieldUpdateOperationsInput | string
    amount?: IntFieldUpdateOperationsInput | number
    currency?: StringFieldUpdateOperationsInput | string
    status?: StringFieldUpdateOperationsInput | string
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
    task?: TaskUpdateOneRequiredWithoutAffiliate_ledgerNestedInput
  }

  export type AffiliateLedgerUncheckedUpdateWithoutScout_agentInput = {
    id?: StringFieldUpdateOperationsInput | string
    task_id?: StringFieldUpdateOperationsInput | string
    amount?: IntFieldUpdateOperationsInput | number
    currency?: StringFieldUpdateOperationsInput | string
    status?: StringFieldUpdateOperationsInput | string
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AffiliateLedgerUncheckedUpdateManyWithoutScout_agentInput = {
    id?: StringFieldUpdateOperationsInput | string
    task_id?: StringFieldUpdateOperationsInput | string
    amount?: IntFieldUpdateOperationsInput | number
    currency?: StringFieldUpdateOperationsInput | string
    status?: StringFieldUpdateOperationsInput | string
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type BidProposalUpdateWithoutAgentInput = {
    id?: StringFieldUpdateOperationsInput | string
    proposed_reward?: IntFieldUpdateOperationsInput | number
    estimated_duration_hours?: FloatFieldUpdateOperationsInput | number
    quality_guarantee?: NullableStringFieldUpdateOperationsInput | string | null
    status?: StringFieldUpdateOperationsInput | string
    counter_offer_amount?: NullableIntFieldUpdateOperationsInput | number | null
    broker_agent_id?: NullableStringFieldUpdateOperationsInput | string | null
    broker_fee_percentage?: NullableFloatFieldUpdateOperationsInput | number | null
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
    task?: TaskUpdateOneRequiredWithoutBid_proposalsNestedInput
  }

  export type BidProposalUncheckedUpdateWithoutAgentInput = {
    id?: StringFieldUpdateOperationsInput | string
    task_id?: StringFieldUpdateOperationsInput | string
    proposed_reward?: IntFieldUpdateOperationsInput | number
    estimated_duration_hours?: FloatFieldUpdateOperationsInput | number
    quality_guarantee?: NullableStringFieldUpdateOperationsInput | string | null
    status?: StringFieldUpdateOperationsInput | string
    counter_offer_amount?: NullableIntFieldUpdateOperationsInput | number | null
    broker_agent_id?: NullableStringFieldUpdateOperationsInput | string | null
    broker_fee_percentage?: NullableFloatFieldUpdateOperationsInput | number | null
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type BidProposalUncheckedUpdateManyWithoutAgentInput = {
    id?: StringFieldUpdateOperationsInput | string
    task_id?: StringFieldUpdateOperationsInput | string
    proposed_reward?: IntFieldUpdateOperationsInput | number
    estimated_duration_hours?: FloatFieldUpdateOperationsInput | number
    quality_guarantee?: NullableStringFieldUpdateOperationsInput | string | null
    status?: StringFieldUpdateOperationsInput | string
    counter_offer_amount?: NullableIntFieldUpdateOperationsInput | number | null
    broker_agent_id?: NullableStringFieldUpdateOperationsInput | string | null
    broker_fee_percentage?: NullableFloatFieldUpdateOperationsInput | number | null
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type ArbitrationUpdateWithoutBuilderInput = {
    id?: StringFieldUpdateOperationsInput | string
    status?: StringFieldUpdateOperationsInput | string
    builder_evidence?: NullableStringFieldUpdateOperationsInput | string | null
    evaluator_reason?: NullableStringFieldUpdateOperationsInput | string | null
    winning_party?: NullableStringFieldUpdateOperationsInput | string | null
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
    task?: TaskUpdateOneRequiredWithoutArbitrationsNestedInput
    evaluator?: AgentProfileUpdateOneRequiredWithoutArbitrations_as_evaluatorNestedInput
    votes?: ArbitrationVoteUpdateManyWithoutArbitrationNestedInput
    slashing_events?: SlashingEventUpdateManyWithoutArbitrationNestedInput
  }

  export type ArbitrationUncheckedUpdateWithoutBuilderInput = {
    id?: StringFieldUpdateOperationsInput | string
    task_id?: StringFieldUpdateOperationsInput | string
    evaluator_id?: StringFieldUpdateOperationsInput | string
    status?: StringFieldUpdateOperationsInput | string
    builder_evidence?: NullableStringFieldUpdateOperationsInput | string | null
    evaluator_reason?: NullableStringFieldUpdateOperationsInput | string | null
    winning_party?: NullableStringFieldUpdateOperationsInput | string | null
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
    votes?: ArbitrationVoteUncheckedUpdateManyWithoutArbitrationNestedInput
    slashing_events?: SlashingEventUncheckedUpdateManyWithoutArbitrationNestedInput
  }

  export type ArbitrationUncheckedUpdateManyWithoutBuilderInput = {
    id?: StringFieldUpdateOperationsInput | string
    task_id?: StringFieldUpdateOperationsInput | string
    evaluator_id?: StringFieldUpdateOperationsInput | string
    status?: StringFieldUpdateOperationsInput | string
    builder_evidence?: NullableStringFieldUpdateOperationsInput | string | null
    evaluator_reason?: NullableStringFieldUpdateOperationsInput | string | null
    winning_party?: NullableStringFieldUpdateOperationsInput | string | null
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type ArbitrationUpdateWithoutEvaluatorInput = {
    id?: StringFieldUpdateOperationsInput | string
    status?: StringFieldUpdateOperationsInput | string
    builder_evidence?: NullableStringFieldUpdateOperationsInput | string | null
    evaluator_reason?: NullableStringFieldUpdateOperationsInput | string | null
    winning_party?: NullableStringFieldUpdateOperationsInput | string | null
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
    task?: TaskUpdateOneRequiredWithoutArbitrationsNestedInput
    builder?: AgentProfileUpdateOneRequiredWithoutArbitrations_as_builderNestedInput
    votes?: ArbitrationVoteUpdateManyWithoutArbitrationNestedInput
    slashing_events?: SlashingEventUpdateManyWithoutArbitrationNestedInput
  }

  export type ArbitrationUncheckedUpdateWithoutEvaluatorInput = {
    id?: StringFieldUpdateOperationsInput | string
    task_id?: StringFieldUpdateOperationsInput | string
    builder_id?: StringFieldUpdateOperationsInput | string
    status?: StringFieldUpdateOperationsInput | string
    builder_evidence?: NullableStringFieldUpdateOperationsInput | string | null
    evaluator_reason?: NullableStringFieldUpdateOperationsInput | string | null
    winning_party?: NullableStringFieldUpdateOperationsInput | string | null
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
    votes?: ArbitrationVoteUncheckedUpdateManyWithoutArbitrationNestedInput
    slashing_events?: SlashingEventUncheckedUpdateManyWithoutArbitrationNestedInput
  }

  export type ArbitrationUncheckedUpdateManyWithoutEvaluatorInput = {
    id?: StringFieldUpdateOperationsInput | string
    task_id?: StringFieldUpdateOperationsInput | string
    builder_id?: StringFieldUpdateOperationsInput | string
    status?: StringFieldUpdateOperationsInput | string
    builder_evidence?: NullableStringFieldUpdateOperationsInput | string | null
    evaluator_reason?: NullableStringFieldUpdateOperationsInput | string | null
    winning_party?: NullableStringFieldUpdateOperationsInput | string | null
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type ArbitrationVoteUpdateWithoutJudgeInput = {
    id?: StringFieldUpdateOperationsInput | string
    vote_for?: StringFieldUpdateOperationsInput | string
    reasoning?: NullableStringFieldUpdateOperationsInput | string | null
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    arbitration?: ArbitrationUpdateOneRequiredWithoutVotesNestedInput
  }

  export type ArbitrationVoteUncheckedUpdateWithoutJudgeInput = {
    id?: StringFieldUpdateOperationsInput | string
    arbitration_id?: StringFieldUpdateOperationsInput | string
    vote_for?: StringFieldUpdateOperationsInput | string
    reasoning?: NullableStringFieldUpdateOperationsInput | string | null
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type ArbitrationVoteUncheckedUpdateManyWithoutJudgeInput = {
    id?: StringFieldUpdateOperationsInput | string
    arbitration_id?: StringFieldUpdateOperationsInput | string
    vote_for?: StringFieldUpdateOperationsInput | string
    reasoning?: NullableStringFieldUpdateOperationsInput | string | null
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type AgentProjectUpdateWithoutCreatorInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    ticker?: StringFieldUpdateOperationsInput | string
    description?: StringFieldUpdateOperationsInput | string
    whitepaper_url?: NullableStringFieldUpdateOperationsInput | string | null
    target_raise?: IntFieldUpdateOperationsInput | number
    total_supply?: IntFieldUpdateOperationsInput | number
    status?: StringFieldUpdateOperationsInput | string
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
    token_sales?: TokenSaleUpdateManyWithoutProjectNestedInput
  }

  export type AgentProjectUncheckedUpdateWithoutCreatorInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    ticker?: StringFieldUpdateOperationsInput | string
    description?: StringFieldUpdateOperationsInput | string
    whitepaper_url?: NullableStringFieldUpdateOperationsInput | string | null
    target_raise?: IntFieldUpdateOperationsInput | number
    total_supply?: IntFieldUpdateOperationsInput | number
    status?: StringFieldUpdateOperationsInput | string
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
    token_sales?: TokenSaleUncheckedUpdateManyWithoutProjectNestedInput
  }

  export type AgentProjectUncheckedUpdateManyWithoutCreatorInput = {
    id?: StringFieldUpdateOperationsInput | string
    name?: StringFieldUpdateOperationsInput | string
    ticker?: StringFieldUpdateOperationsInput | string
    description?: StringFieldUpdateOperationsInput | string
    whitepaper_url?: NullableStringFieldUpdateOperationsInput | string | null
    target_raise?: IntFieldUpdateOperationsInput | number
    total_supply?: IntFieldUpdateOperationsInput | number
    status?: StringFieldUpdateOperationsInput | string
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    updated_at?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type SlashingEventUpdateWithoutAgentInput = {
    id?: StringFieldUpdateOperationsInput | string
    slashed_amount?: IntFieldUpdateOperationsInput | number
    scout_reward?: IntFieldUpdateOperationsInput | number
    treasury_reward?: IntFieldUpdateOperationsInput | number
    reason?: StringFieldUpdateOperationsInput | string
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    arbitration?: ArbitrationUpdateOneRequiredWithoutSlashing_eventsNestedInput
  }

  export type SlashingEventUncheckedUpdateWithoutAgentInput = {
    id?: StringFieldUpdateOperationsInput | string
    arbitration_id?: StringFieldUpdateOperationsInput | string
    slashed_amount?: IntFieldUpdateOperationsInput | number
    scout_reward?: IntFieldUpdateOperationsInput | number
    treasury_reward?: IntFieldUpdateOperationsInput | number
    reason?: StringFieldUpdateOperationsInput | string
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type SlashingEventUncheckedUpdateManyWithoutAgentInput = {
    id?: StringFieldUpdateOperationsInput | string
    arbitration_id?: StringFieldUpdateOperationsInput | string
    slashed_amount?: IntFieldUpdateOperationsInput | number
    scout_reward?: IntFieldUpdateOperationsInput | number
    treasury_reward?: IntFieldUpdateOperationsInput | number
    reason?: StringFieldUpdateOperationsInput | string
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type ArbitrationVoteCreateManyArbitrationInput = {
    id?: string
    judge_id: string
    vote_for: string
    reasoning?: string | null
    created_at?: Date | string
  }

  export type SlashingEventCreateManyArbitrationInput = {
    id?: string
    agent_id: string
    slashed_amount: number
    scout_reward: number
    treasury_reward: number
    reason: string
    created_at?: Date | string
  }

  export type ArbitrationVoteUpdateWithoutArbitrationInput = {
    id?: StringFieldUpdateOperationsInput | string
    vote_for?: StringFieldUpdateOperationsInput | string
    reasoning?: NullableStringFieldUpdateOperationsInput | string | null
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    judge?: AgentProfileUpdateOneRequiredWithoutArbitration_votesNestedInput
  }

  export type ArbitrationVoteUncheckedUpdateWithoutArbitrationInput = {
    id?: StringFieldUpdateOperationsInput | string
    judge_id?: StringFieldUpdateOperationsInput | string
    vote_for?: StringFieldUpdateOperationsInput | string
    reasoning?: NullableStringFieldUpdateOperationsInput | string | null
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type ArbitrationVoteUncheckedUpdateManyWithoutArbitrationInput = {
    id?: StringFieldUpdateOperationsInput | string
    judge_id?: StringFieldUpdateOperationsInput | string
    vote_for?: StringFieldUpdateOperationsInput | string
    reasoning?: NullableStringFieldUpdateOperationsInput | string | null
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type SlashingEventUpdateWithoutArbitrationInput = {
    id?: StringFieldUpdateOperationsInput | string
    slashed_amount?: IntFieldUpdateOperationsInput | number
    scout_reward?: IntFieldUpdateOperationsInput | number
    treasury_reward?: IntFieldUpdateOperationsInput | number
    reason?: StringFieldUpdateOperationsInput | string
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
    agent?: AgentProfileUpdateOneRequiredWithoutSlashing_eventsNestedInput
  }

  export type SlashingEventUncheckedUpdateWithoutArbitrationInput = {
    id?: StringFieldUpdateOperationsInput | string
    agent_id?: StringFieldUpdateOperationsInput | string
    slashed_amount?: IntFieldUpdateOperationsInput | number
    scout_reward?: IntFieldUpdateOperationsInput | number
    treasury_reward?: IntFieldUpdateOperationsInput | number
    reason?: StringFieldUpdateOperationsInput | string
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type SlashingEventUncheckedUpdateManyWithoutArbitrationInput = {
    id?: StringFieldUpdateOperationsInput | string
    agent_id?: StringFieldUpdateOperationsInput | string
    slashed_amount?: IntFieldUpdateOperationsInput | number
    scout_reward?: IntFieldUpdateOperationsInput | number
    treasury_reward?: IntFieldUpdateOperationsInput | number
    reason?: StringFieldUpdateOperationsInput | string
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type TokenSaleCreateManyProjectInput = {
    id?: string
    investor_id: string
    usdc_amount: number
    tokens_received: number
    price_per_token: number
    created_at?: Date | string
  }

  export type TokenSaleUpdateWithoutProjectInput = {
    id?: StringFieldUpdateOperationsInput | string
    investor_id?: StringFieldUpdateOperationsInput | string
    usdc_amount?: IntFieldUpdateOperationsInput | number
    tokens_received?: FloatFieldUpdateOperationsInput | number
    price_per_token?: FloatFieldUpdateOperationsInput | number
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type TokenSaleUncheckedUpdateWithoutProjectInput = {
    id?: StringFieldUpdateOperationsInput | string
    investor_id?: StringFieldUpdateOperationsInput | string
    usdc_amount?: IntFieldUpdateOperationsInput | number
    tokens_received?: FloatFieldUpdateOperationsInput | number
    price_per_token?: FloatFieldUpdateOperationsInput | number
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
  }

  export type TokenSaleUncheckedUpdateManyWithoutProjectInput = {
    id?: StringFieldUpdateOperationsInput | string
    investor_id?: StringFieldUpdateOperationsInput | string
    usdc_amount?: IntFieldUpdateOperationsInput | number
    tokens_received?: FloatFieldUpdateOperationsInput | number
    price_per_token?: FloatFieldUpdateOperationsInput | number
    created_at?: DateTimeFieldUpdateOperationsInput | Date | string
  }



  /**
   * Batch Payload for updateMany & deleteMany & createMany
   */

  export type BatchPayload = {
    count: number
  }

  /**
   * DMMF
   */
  export const dmmf: runtime.BaseDMMF
}