import { Cron, CronCreateForThreadResponse, CronCreateResponse, CronSelectField, CronSortBy, Metadata, SortOrder } from "../../schema.cjs";
import { CronsCreatePayload, CronsUpdatePayload } from "../../types.cjs";
import { BaseClient } from "../base.cjs";

//#region src/client/crons/index.d.ts
declare class CronsClient extends BaseClient {
  /**
   *
   * @param threadId The ID of the thread.
   * @param assistantId Assistant ID to use for this cron job.
   * @param payload Payload for creating a cron job.
   * @returns The created background run.
   */
  createForThread(threadId: string, assistantId: string, payload?: CronsCreatePayload): Promise<CronCreateForThreadResponse>;
  /**
   *
   * @param assistantId Assistant ID to use for this cron job.
   * @param payload Payload for creating a cron job.
   * @returns
   */
  create(assistantId: string, payload?: CronsCreatePayload): Promise<CronCreateResponse>;
  /**
   * Update a cron job by ID.
   *
   * @param cronId The cron ID to update.
   * @param payload Payload for updating a cron job.
   * @returns The updated cron job.
   * ```
   */
  update(cronId: string, payload?: CronsUpdatePayload): Promise<Cron>;
  /**
   * Delete a cron job by ID.
   *
   * @param cronId Cron ID of Cron job to delete.
   * @param options Optional parameters for the request.
   */
  delete(cronId: string, options?: {
    signal?: AbortSignal;
  }): Promise<void>;
  /**
   *
   * @param query Query options.
   * @param query.metadata Metadata to filter by. Exact match filter for each KV pair.
   *   Available in Agent Server version 0.9.0 and later.
   * @returns List of crons.
   */
  search(query?: {
    assistantId?: string;
    threadId?: string;
    enabled?: boolean;
    limit?: number;
    offset?: number;
    sortBy?: CronSortBy;
    sortOrder?: SortOrder;
    select?: CronSelectField[];
    metadata?: Metadata;
    signal?: AbortSignal;
  }): Promise<Cron[]>;
  /**
   * Count cron jobs matching filters.
   *
   * @param query.assistantId Assistant ID to filter by.
   * @param query.threadId Thread ID to filter by.
   * @param query.metadata Metadata to filter by. Exact match filter for each KV pair.
   *   Available in Agent Server version 0.9.0 and later.
   * @returns Number of cron jobs matching the criteria.
   */
  count(query?: {
    assistantId?: string;
    threadId?: string;
    metadata?: Metadata;
    signal?: AbortSignal;
  }): Promise<number>;
}
//#endregion
export { CronsClient };
//# sourceMappingURL=index.d.cts.map