@devercorp/pickgola-sdk
    Preparing search index...

    Function createClient

    • Parameters

      Returns {
          admin: {
              account: (
                  accountId: string,
              ) => Promise<
                  {
                      admin: { role: "owner" | "operator" }
                      | null;
                      avatarUrl: string | null;
                      createdAt: string;
                      email: string;
                      emailVerified: boolean;
                      emailVerifiedAt: string | null;
                      id: string;
                      name: string;
                      payments: {
                          amount: number;
                          createdAt: string;
                          description: string;
                          id: string;
                          paidAt: string | null;
                          provider: string;
                          purpose:
                              | "day_event_fee"
                              | "day_casting_fee"
                              | "studio_order"
                              | "studio_credit";
                          refId: string
                          | null;
                          refType: string | null;
                          refundedAmount: number;
                          service: "day" | "studio";
                          status: "pending" | "paid" | "failed" | "refunded";
                          vat: number;
                      }[];
                      profiles: {
                          role: "user"
                          | "influencer"
                          | "venue"
                          | "advertiser"
                          | "creator";
                          service: "day" | "studio";
                      }[];
                      reportsAgainst: number;
                      sessions: {
                          createdAt: string;
                          expiresAt: string;
                          id: string;
                          ip: string;
                          userAgent: string
                          | null;
                      }[];
                      status: "active"
                      | "suspended"
                      | "withdrawn";
                  },
              >;
              admins: () => Promise<
                  {
                      accountId: string;
                      createdAt: string;
                      email: string;
                      name: string;
                      role: "owner"
                      | "operator";
                  }[],
              >;
              auditLogs: (
                  params?: {
                      group?:
                          | "asset"
                          | "auth"
                          | "consent"
                          | "state"
                          | "money"
                          | "moderation";
                      page?: number;
                      pageSize?: number;
                      q?: string;
                      service?: "day"
                      | "studio";
                  },
              ) => Promise<
                  {
                      items: {
                          actorId: string
                          | null;
                          actorName: string;
                          change: string;
                          createdAt: string;
                          event: string;
                          group: string;
                          id: string;
                          ip: string;
                          role: string;
                          service: "day" | "studio" | null;
                          target: string;
                      }[];
                      page: number;
                      pageSize: number;
                      total: number;
                  },
              >;
              day: {
                  content: (
                      kind: "place" | "event" | "casting",
                      params?: {
                          page?: number;
                          pageSize?: number;
                          q?: string;
                          visibility?: "all" | "hidden" | "visible";
                      },
                  ) => Promise<
                      {
                          items: {
                              createdAt: string;
                              date: string
                              | null;
                              hiddenAt: string | null;
                              id: string;
                              kind: "place" | "event" | "casting";
                              openReports: number;
                              ownerId: string;
                              ownerName: string;
                              placeName: string | null;
                              status: string;
                              title: string;
                          }[];
                          page: number;
                          pageSize: number;
                          total: number;
                      },
                  >;
                  reports: (
                      params?: {
                          page?: number;
                          pageSize?: number;
                          status?: "open" | "resolved" | "dismissed";
                          targetType?: "user" | "place" | "event" | "casting";
                      },
                  ) => Promise<
                      {
                          items: {
                              createdAt: string;
                              id: string;
                              reason: string;
                              reporterId: string;
                              reporterName: string;
                              resolution: string
                              | null;
                              resolvedAt: string | null;
                              status: "open" | "resolved" | "dismissed";
                              targetHidden: boolean;
                              targetId: string;
                              targetLabel: string;
                              targetType: "user" | "place" | "event" | "casting";
                          }[];
                          page: number;
                          pageSize: number;
                          total: number;
                      },
                  >;
                  resolveReport: (
                      reportId: string,
                      input: {
                          resolution: string;
                          status: "resolved" | "dismissed";
                          takeAction?: boolean;
                      },
                  ) => Promise<
                      {
                          createdAt: string;
                          id: string;
                          reason: string;
                          reporterId: string;
                          reporterName: string;
                          resolution: string
                          | null;
                          resolvedAt: string | null;
                          status: "open" | "resolved" | "dismissed";
                          targetHidden: boolean;
                          targetId: string;
                          targetLabel: string;
                          targetType: "user" | "place" | "event" | "casting";
                      },
                  >;
                  setVisibility: (
                      kind: "place" | "event" | "casting",
                      targetId: string,
                      input: { hidden: boolean; reason: string },
                  ) => Promise<{ hidden: boolean }>;
              };
              grantAdmin: (
                  input: { email: string; role: "owner" | "operator" },
              ) => Promise<
                  {
                      accountId: string;
                      createdAt: string;
                      email: string;
                      name: string;
                      role: "owner"
                      | "operator";
                  }[],
              >;
              listAccounts: (
                  params?: {
                      page?: number;
                      pageSize?: number;
                      q?: string;
                      service?: "day" | "studio";
                      status?: "active" | "suspended" | "withdrawn";
                  },
              ) => Promise<
                  {
                      items: {
                          admin: { role: "owner" | "operator" }
                          | null;
                          createdAt: string;
                          email: string;
                          emailVerified: boolean;
                          id: string;
                          name: string;
                          profiles: {
                              role: "user" | "influencer" | "venue" | "advertiser" | "creator";
                              service: "day" | "studio";
                          }[];
                          status: "active"
                          | "suspended"
                          | "withdrawn";
                      }[];
                      page: number;
                      pageSize: number;
                      total: number;
                  },
              >;
              me: () => Promise<
                  { accountId: string; name: string; role: "owner"
                  | "operator" },
              >;
              notifications: () => Promise<
                  {
                      createdAt: string;
                      href: string;
                      id: string;
                      service: "day"
                      | "studio"
                      | null;
                      text: string;
                  }[],
              >;
              overview: () => Promise<
                  {
                      accounts: number;
                      dayOpenCastings: number;
                      dayOpenEvents: number;
                      dayPlaces: number;
                      newAccounts7d: number;
                      openReports: number;
                      refunds30d: number;
                      revenue30d: number;
                      studioActiveCampaigns: number;
                      studioFailedJobs: number;
                      studioPendingReviews: number;
                      suspendedAccounts: number;
                  },
              >;
              payments: (
                  params?: {
                      page?: number;
                      pageSize?: number;
                      purpose?:
                          | "day_event_fee"
                          | "day_casting_fee"
                          | "studio_order"
                          | "studio_credit";
                      q?: string;
                      service?: "day"
                      | "studio";
                      status?: "pending" | "paid" | "failed" | "refunded";
                  },
              ) => Promise<
                  {
                      items: {
                          accountEmail: string;
                          accountId: string;
                          accountName: string;
                          amount: number;
                          createdAt: string;
                          description: string;
                          id: string;
                          paidAt: string
                          | null;
                          provider: string;
                          purpose:
                              | "day_event_fee"
                              | "day_casting_fee"
                              | "studio_order"
                              | "studio_credit";
                          refId: string
                          | null;
                          refType: string | null;
                          refundedAmount: number;
                          service: "day" | "studio";
                          status: "pending" | "paid" | "failed" | "refunded";
                          vat: number;
                      }[];
                      page: number;
                      pageSize: number;
                      total: number;
                  },
              >;
              refundPayment: (
                  paymentId: string,
                  input: { amount?: number; reason: string },
              ) => Promise<
                  {
                      accountEmail: string;
                      accountId: string;
                      accountName: string;
                      amount: number;
                      createdAt: string;
                      description: string;
                      id: string;
                      paidAt: string
                      | null;
                      provider: string;
                      purpose:
                          | "day_event_fee"
                          | "day_casting_fee"
                          | "studio_order"
                          | "studio_credit";
                      refId: string
                      | null;
                      refType: string | null;
                      refundedAmount: number;
                      service: "day" | "studio";
                      status: "pending" | "paid" | "failed" | "refunded";
                      vat: number;
                  },
              >;
              revokeAdmin: (
                  accountId: string,
              ) => Promise<
                  {
                      accountId: string;
                      createdAt: string;
                      email: string;
                      name: string;
                      role: "owner"
                      | "operator";
                  }[],
              >;
              revokeSessions: (accountId: string) => Promise<void>;
              setAccountStatus: (
                  accountId: string,
                  input: { reason: string; status: "active" | "suspended" },
              ) => Promise<
                  {
                      admin: { role: "owner" | "operator" }
                      | null;
                      createdAt: string;
                      email: string;
                      emailVerified: boolean;
                      id: string;
                      name: string;
                      profiles: {
                          role: "user" | "influencer" | "venue" | "advertiser" | "creator";
                          service: "day" | "studio";
                      }[];
                      status: "active"
                      | "suspended"
                      | "withdrawn";
                  },
              >;
              stats: (
                  params?: { days?: number },
              ) => Promise<
                  {
                      daily: {
                          applications: number;
                          date: string;
                          orders: number;
                          revenue: number;
                          signups: number;
                      }[];
                      days: number;
                      purposes: { amount: number; count: number; purpose: string }[];
                      roles: { count: number; role: string; service: "day" | "studio" }[];
                      stages: { count: number; label: string; stage: string }[];
                  },
              >;
              studio: {
                  adjustCredits: (
                      orgId: string,
                      input: { delta: number; reason: string },
                  ) => Promise<{ balance: number }>;
                  advancePrivacy: (
                      requestId: string,
                  ) => Promise<{ ok: boolean; status: "done" | "processing" | "notified" }>;
                  assets: (
                      params?: {
                          kind?: string;
                          page?: number;
                          pageSize?: number;
                          q?: string;
                          status?: string;
                      },
                  ) => Promise<
                      {
                          items: {
                              boardAt: string
                              | null;
                              boardStatus: "pending" | "failed" | "ready" | "none";
                              consent:
                                  | {
                                      doc: string;
                                      end: string;
                                      issueResolved: (...)
                                      | (...);
                                      media: (...)[];
                                      paid: boolean;
                                      portfolio: boolean;
                                      purpose: string;
                                      region: string;
                                      revokedAt: (...) | (...);
                                      revokeReason: (...) | (...);
                                      secondary: boolean;
                                      showcase: boolean;
                                      signedAt: string;
                                      start: string;
                                      status: (...) | (...) | (...) | (...);
                                  }
                                  | null;
                              creatorHandle: string;
                              creatorId: string;
                              creatorName: string;
                              desc: string;
                              destroyAt: string
                              | null;
                              hasFile: boolean;
                              id: string;
                              kind: "face" | "voice" | "ref";
                              label: string;
                              replaced: boolean;
                              review: "pending" | "rejected" | "approved" | "needs";
                              uploadedAt: string;
                              version: number;
                          }[];
                          page: number;
                          pageSize: number;
                          total: number;
                      },
                  >;
                  campaign: (
                      campaignId: string,
                  ) => Promise<
                      {
                          brief: {
                              ban: string;
                              channels: string[];
                              cta: string;
                              disclosure: string;
                              goal: string;
                              length: number;
                              message: string;
                              mustSay: string;
                              scene: string;
                              target: string;
                              tone: string;
                          };
                          cancelReason: string
                          | null;
                          code: string;
                          createdAt: string;
                          creator:
                              | {
                                  category: string;
                                  color: string;
                                  engagement: number;
                                  followers: number;
                                  handle: string;
                                  id: string;
                                  name: string;
                                  photoUrl: string
                                  | null;
                                  verified: boolean;
                              }
                              | null;
                          emoji: string;
                          id: string;
                          imageUrl: string
                          | null;
                          jobs: {
                              attempts: number;
                              createdAt: string;
                              credits: number;
                              error: string | null;
                              finishedAt: string | null;
                              id: string;
                              kind: "storyboard" | "revision" | "sample" | "final";
                              maxAttempts: number;
                              provider: string;
                              status:
                                  | "failed"
                                  | "done"
                                  | "queued"
                                  | "running"
                                  | "retry"
                                  | "blocked"
                                  | "cancelled";
                          }[];
                          name: string;
                          offer: | {
                              assets: string[];
                              blocker: string
                              | null;
                              channel: string;
                              creatorId: string;
                              expiresAt: string;
                              format: string;
                              id: string;
                              keep: string;
                              media: string[];
                              message: string;
                              portfolio: boolean;
                              postDate: string;
                              region: string;
                              rejectReason: string | null;
                              respondedAt: string | null;
                              rightsEnd: string;
                              rightsStart: string;
                              sentAt: string;
                              status: "withdrawn" | "sent" | "accepted" | "rejected" | "expired";
                              thread: {
                                  at: string;
                                  by: (...) | (...) | (...) | (...);
                                  name: string;
                                  tag?: (...) | (...);
                                  text: string;
                              }[];
                          }
                          | null;
                          order: | {
                              blocked: string
                              | null;
                              comments: {
                                  at: string;
                                  by: (...) | (...) | (...) | (...);
                                  name: string;
                                  tag?: (...) | (...);
                                  text: string;
                              }[];
                              confirmedAt: string;
                              creatorMetricsDone: boolean;
                              id: string;
                              metrics: {
                                  at: string;
                                  by: string;
                                  id: string;
                                  name: string;
                                  period: string;
                                  source: (...)
                                  | (...)
                                  | (...);
                                  value: number;
                                  verified: boolean;
                              }[];
                              outputUrl: string
                              | null;
                              paidAt: string | null;
                              payoutStatus: "paid" | "progress" | "scheduled" | "hold";
                              proof:
                                  | { at: string; captures: number; url: string; verified: boolean }
                                  | null;
                              qa: string;
                              revisionsLeft: number;
                              usesVoice: boolean;
                              version: number;
                          }
                          | null;
                          orgId: string;
                          orgName: string;
                          pastOffers: {
                              at: string;
                              creatorId: string;
                              creatorName: string;
                              id: string;
                              note: string;
                              status: "withdrawn"
                              | "rejected"
                              | "expired";
                          }[];
                          payout: number
                          | null;
                          price: number | null;
                          productId: string;
                          stage:
                              | "done"
                              | "accepted"
                              | "storyboard"
                              | "cancelled"
                              | "matching"
                              | "offer"
                              | "producing"
                              | "creator_review"
                              | "advertiser_review"
                              | "approved"
                              | "published";
                          stageLabel: string;
                          storyboard: {
                              approved: | { at: string; by: string; no: number; version: number }
                              | null;
                              batch: number;
                              history: {
                                  at: string;
                                  by: string;
                                  detail: string;
                                  title: string;
                                  tone?: "done" | "warn";
                              }[];
                              notes: string[];
                              options: {
                                  cta: string;
                                  exposure: string;
                                  no: number;
                                  qa: { ok: boolean; text: string };
                                  scenes: { exposure?: ...; line: ...; time: ...; visual: ... }[];
                                  summary: string;
                                  title: string;
                                  version: number;
                              }[];
                              regenerationsLeft: number;
                              sample: "generating"
                              | "ready"
                              | "none";
                              sampleAudioUrl: string | null;
                              sampleUrl: string | null;
                              selected: number;
                              status: "failed" | "generating" | "ready";
                              versions: number[];
                          };
                          type: "AI"
                          | "Direct";
                          updatedAt: string;
                      },
                  >;
                  campaigns: (
                      params?: {
                          kind?: string;
                          page?: number;
                          pageSize?: number;
                          q?: string;
                          status?: string;
                      },
                  ) => Promise<
                      {
                          items: {
                              brief: {
                                  ban: string;
                                  channels: string[];
                                  cta: string;
                                  disclosure: string;
                                  goal: string;
                                  length: number;
                                  message: string;
                                  mustSay: string;
                                  scene: string;
                                  target: string;
                                  tone: string;
                              };
                              cancelReason: string
                              | null;
                              code: string;
                              createdAt: string;
                              creator:
                                  | {
                                      category: string;
                                      color: string;
                                      engagement: number;
                                      followers: number;
                                      handle: string;
                                      id: string;
                                      name: string;
                                      photoUrl: (...)
                                      | (...);
                                      verified: boolean;
                                  }
                                  | null;
                              emoji: string;
                              id: string;
                              imageUrl: string
                              | null;
                              jobs: {
                                  attempts: number;
                                  createdAt: string;
                                  credits: number;
                                  error: (...) | (...);
                                  finishedAt: (...) | (...);
                                  id: string;
                                  kind: (...) | (...) | (...) | (...);
                                  maxAttempts: number;
                                  provider: string;
                                  status: (...) | (...) | (...) | (...) | (...) | (...) | (...);
                              }[];
                              name: string;
                              offer: | {
                                  assets: (...)[];
                                  blocker: (...) | (...);
                                  channel: string;
                                  creatorId: string;
                                  expiresAt: string;
                                  format: string;
                                  id: string;
                                  keep: string;
                                  media: (...)[];
                                  message: string;
                                  portfolio: boolean;
                                  postDate: string;
                                  region: string;
                                  rejectReason: (...) | (...);
                                  respondedAt: (...) | (...);
                                  rightsEnd: string;
                                  rightsStart: string;
                                  sentAt: string;
                                  status: (...) | (...) | (...) | (...) | (...);
                                  thread: (...)[];
                              }
                              | null;
                              order: | {
                                  blocked: (...)
                                  | (...);
                                  comments: (...)[];
                                  confirmedAt: string;
                                  creatorMetricsDone: boolean;
                                  id: string;
                                  metrics: (...)[];
                                  outputUrl: (...) | (...);
                                  paidAt: (...) | (...);
                                  payoutStatus: (...) | (...) | (...) | (...);
                                  proof: (...) | (...);
                                  qa: string;
                                  revisionsLeft: number;
                                  usesVoice: boolean;
                                  version: number;
                              }
                              | null;
                              orgId: string;
                              orgName: string;
                              pastOffers: {
                                  at: string;
                                  creatorId: string;
                                  creatorName: string;
                                  id: string;
                                  note: string;
                                  status: (...)
                                  | (...)
                                  | (...);
                              }[];
                              payout: number
                              | null;
                              price: number | null;
                              productId: string;
                              stage:
                                  | "done"
                                  | "accepted"
                                  | "storyboard"
                                  | "cancelled"
                                  | "matching"
                                  | "offer"
                                  | "producing"
                                  | "creator_review"
                                  | "advertiser_review"
                                  | "approved"
                                  | "published";
                              stageLabel: string;
                              storyboard: {
                                  approved: { at: ...; by: ...; no: ...; version: ... }
                                  | null;
                                  batch: number;
                                  history: { at: ...; by: ...; detail: ...; title: ...; tone?: ... }[];
                                  notes: string[];
                                  options: {
                                      cta: ...;
                                      exposure: ...;
                                      no: ...;
                                      qa: ...;
                                      scenes: ...;
                                      summary: ...;
                                      title: ...;
                                      version: ...;
                                  }[];
                                  regenerationsLeft: number;
                                  sample: "generating"
                                  | "ready"
                                  | "none";
                                  sampleAudioUrl: string | null;
                                  sampleUrl: string | null;
                                  selected: number;
                                  status: "failed" | "generating" | "ready";
                                  versions: number[];
                              };
                              type: "AI"
                              | "Direct";
                              updatedAt: string;
                          }[];
                          page: number;
                          pageSize: number;
                          total: number;
                      },
                  >;
                  cancelJob: (jobId: string) => Promise<{ ok: boolean }>;
                  content: (
                      params?: {
                          kind?: string;
                          page?: number;
                          pageSize?: number;
                          q?: string;
                          status?: string;
                      },
                  ) => Promise<
                      {
                          items: {
                              auto: { ok: boolean
                              | null; text: string };
                              campaign: string;
                              campaignId: string | null;
                              createdAt: string;
                              id: string;
                              kind: "brief" | "story" | "output";
                              memo: string | null;
                              reason: string;
                              status: "rejected" | "blocked" | "check" | "passed" | "requested";
                              target: string;
                          }[];
                          page: number;
                          pageSize: number;
                          total: number;
                      },
                  >;
                  creators: (
                      params?: {
                          kind?: string;
                          page?: number;
                          pageSize?: number;
                          q?: string;
                          status?: string;
                      },
                  ) => Promise<
                      {
                          items: {
                              aiFee: number
                              | null;
                              aiOn: boolean;
                              aiPrice: number | null;
                              available: "now" | "later" | "busy";
                              availableFlag: boolean;
                              availableFrom: string | null;
                              availableText: string;
                              bio: string;
                              cadence: string;
                              categories: string[];
                              category: string;
                              channels: string[];
                              color: string;
                              dataSource: string;
                              directFee: number | null;
                              directOn: boolean;
                              directPrice: number | null;
                              engagement: number;
                              excluded: string[];
                              followers: number;
                              handle: string;
                              id: string;
                              keep: string;
                              langs: string[];
                              lead: string;
                              monthCap: number;
                              name: string;
                              payoutAccount: { bank: string; holder: string; number: string } | null;
                              photoUrl: string | null;
                              review: "pending" | "rejected" | "approved" | "needs";
                              verified: boolean;
                          }[];
                          page: number;
                          pageSize: number;
                          total: number;
                      },
                  >;
                  decideAsset: (
                      assetId: string,
                      input: { approve: boolean; memo?: string },
                  ) => Promise<{ ok: boolean }>;
                  decideContent: (
                      contentId: string,
                      input: { memo?: string; status: "rejected" | "passed" | "requested" },
                  ) => Promise<{ ok: boolean }>;
                  decideRefund: (
                      refundId: string,
                      input: { amount: number; approve: boolean; memo?: string },
                  ) => Promise<{ ok: boolean }>;
                  decideReview: (
                      reviewId: string,
                      input: { memo?: string; result: "rejected" | "approved" | "needs" },
                  ) => Promise<{ ok: boolean }>;
                  disputes: (
                      params?: {
                          kind?: string;
                          page?: number;
                          pageSize?: number;
                          q?: string;
                          status?: string;
                      },
                  ) => Promise<
                      {
                          items: {
                              campaign: string;
                              campaignId: string;
                              createdAt: string;
                              id: string;
                              orderId: string;
                              reporter: string;
                              resolution: string
                              | null;
                              status: "open" | "resolved";
                              thread: {
                                  at: string;
                                  by: (...) | (...) | (...) | (...);
                                  name: string;
                                  tag?: (...) | (...);
                                  text: string;
                              }[];
                              title: string;
                          }[];
                          page: number;
                          pageSize: number;
                          total: number;
                      },
                  >;
                  issueAssetUrl: (
                      assetId: string,
                      board?: boolean,
                  ) => Promise<{ expiresInMinutes: number; url: string }>;
                  jobs: (
                      params?: {
                          kind?: string;
                          page?: number;
                          pageSize?: number;
                          q?: string;
                          status?: string;
                      },
                  ) => Promise<
                      {
                          cost30d: number;
                          count30d: number;
                          items: {
                              attempts: number;
                              campaign: string;
                              campaignId: string
                              | null;
                              cost: number | null;
                              createdAt: string;
                              credits: number;
                              error: string | null;
                              finishedAt: string | null;
                              id: string;
                              kind: "storyboard" | "revision" | "sample" | "final" | "board";
                              maxAttempts: number;
                              provider: string;
                              startedAt: string | null;
                              status:
                                  | "failed"
                                  | "done"
                                  | "queued"
                                  | "running"
                                  | "retry"
                                  | "blocked"
                                  | "cancelled";
                              target: string;
                              template: string;
                          }[];
                          page: number;
                          pageSize: number;
                          total: number;
                      },
                  >;
                  markPaid: (orderId: string) => Promise<{ ok: boolean }>;
                  orgs: (
                      params?: {
                          kind?: string;
                          page?: number;
                          pageSize?: number;
                          q?: string;
                          status?: string;
                      },
                  ) => Promise<
                      {
                          items: {
                              bizNumber: string;
                              campaigns: number;
                              createdAt: string;
                              credits: number;
                              email: string;
                              id: string;
                              members: number;
                              name: string;
                              review: "pending"
                              | "rejected"
                              | "approved"
                              | "needs";
                          }[];
                          page: number;
                          pageSize: number;
                          total: number;
                      },
                  >;
                  payouts: (
                      params?: {
                          kind?: string;
                          page?: number;
                          pageSize?: number;
                          q?: string;
                          status?: string;
                      },
                  ) => Promise<
                      {
                          items: {
                              amount: number;
                              blocked: string
                              | null;
                              campaign: string;
                              campaignId: string;
                              creatorName: string;
                              metricsDone: boolean;
                              net: number;
                              orderId: string;
                              orgName: string;
                              paidAt: string | null;
                              payoutAccount: { bank: string; holder: string; number: string } | null;
                              price: number;
                              stage: string;
                              status: "paid" | "progress" | "scheduled" | "hold";
                              tax: number;
                          }[];
                          page: number;
                          pageSize: number;
                          total: number;
                      },
                  >;
                  pricing: () => Promise<
                      {
                          aiFee: number;
                          autoApproveDays: number;
                          cap: number;
                          commission: number;
                          credits: {
                              extraRevision?: number;
                              revision?: number;
                              sample?: number;
                              storyboard?: number;
                              unit?: number;
                          };
                          history: {
                              at: string;
                              by: string;
                              detail: string;
                              title: string;
                              tone?: "done"
                              | "warn";
                          }[];
                          offerDays: number;
                          opsFee: number;
                          retry: number;
                          revisions: number;
                          rightsDays: number;
                          rightsFee: number;
                          rounding: number;
                          samples: number;
                          urlMinutes: number;
                          version: number;
                          withholding: number;
                      },
                  >;
                  privacy: (
                      params?: {
                          kind?: string;
                          page?: number;
                          pageSize?: number;
                          q?: string;
                          status?: string;
                      },
                  ) => Promise<
                      {
                          items: {
                              accountId: string
                              | null;
                              createdAt: string;
                              id: string;
                              kind: "delete" | "revoke" | "destroyed";
                              rows: string[][];
                              service: "day" | "studio" | null;
                              status: "pending" | "done" | "processing" | "notified";
                              sub: string;
                              title: string;
                              updatedAt: string;
                          }[];
                          page: number;
                          pageSize: number;
                          total: number;
                      },
                  >;
                  refunds: (
                      params?: {
                          kind?: string;
                          page?: number;
                          pageSize?: number;
                          q?: string;
                          status?: string;
                      },
                  ) => Promise<
                      {
                          items: {
                              amount: number;
                              campaignId: string
                              | null;
                              decidedAt: string | null;
                              id: string;
                              max: number;
                              memo: string | null;
                              orgId: string;
                              orgName: string;
                              paymentId: string | null;
                              reason: string;
                              requestedAt: string;
                              status: "pending" | "rejected" | "approved";
                              target: string;
                          }[];
                          page: number;
                          pageSize: number;
                          total: number;
                      },
                  >;
                  regenerateBoard: (assetId: string) => Promise<{ ok: boolean }>;
                  remindConsent: (assetId: string) => Promise<{ ok: boolean }>;
                  replyDispute: (
                      disputeId: string,
                      text: string,
                  ) => Promise<{ ok: boolean }>;
                  resolveConsentIssue: (
                      assetId: string,
                      input: { memo: string; resolution: "novoice" | "cancel" | "reconsent" },
                  ) => Promise<{ affected: number }>;
                  resolveDispute: (
                      disputeId: string,
                      resolution: string,
                  ) => Promise<{ ok: boolean }>;
                  retryJob: (jobId: string) => Promise<{ ok: boolean }>;
                  reviews: (
                      params?: {
                          kind?: string;
                          page?: number;
                          pageSize?: number;
                          q?: string;
                          status?: string;
                      },
                  ) => Promise<
                      {
                          items: {
                              auto: { ok: boolean
                              | null; text: string };
                              content: string;
                              createdAt: string;
                              decidedAt: string | null;
                              id: string;
                              kind: "creator" | "org" | "metric";
                              memo: string | null;
                              refId: string | null;
                              snapshotIds: string[];
                              status: "pending" | "rejected" | "approved" | "needs";
                              sub: string;
                              title: string;
                          }[];
                          page: number;
                          pageSize: number;
                          total: number;
                      },
                  >;
                  savePricing: (
                      input: {
                          aiFee: number;
                          autoApproveDays: number;
                          cap: number;
                          commission: number;
                          credits: {
                              extraRevision: number;
                              revision: number;
                              sample: number;
                              storyboard: number;
                              unit: number;
                          };
                          offerDays: number;
                          opsFee: number;
                          retry: number;
                          revisions: number;
                          rightsDays: number;
                          rightsFee: number;
                          rounding: number;
                          samples: number;
                          summary: string;
                          urlMinutes: number;
                          withholding: number;
                      },
                  ) => Promise<
                      {
                          aiFee: number;
                          autoApproveDays: number;
                          cap: number;
                          commission: number;
                          credits: {
                              extraRevision?: number;
                              revision?: number;
                              sample?: number;
                              storyboard?: number;
                              unit?: number;
                          };
                          history: {
                              at: string;
                              by: string;
                              detail: string;
                              title: string;
                              tone?: "done"
                              | "warn";
                          }[];
                          offerDays: number;
                          opsFee: number;
                          retry: number;
                          revisions: number;
                          rightsDays: number;
                          rightsFee: number;
                          rounding: number;
                          samples: number;
                          urlMinutes: number;
                          version: number;
                          withholding: number;
                      },
                  >;
                  setPayoutHold: (
                      orderId: string,
                      input: { hold: boolean; reason: string },
                  ) => Promise<{ ok: boolean }>;
                  suspendConsent: (
                      assetId: string,
                      reason: string,
                  ) => Promise<{ ok: boolean }>;
              };
          };
          auth: {
              forgotPassword: (email: string) => Promise<void>;
              login: (
                  input: { email: string; password: string },
              ) => Promise<
                  {
                      account: {
                          admin: { role: "owner" | "operator" }
                          | null;
                          createdAt: string;
                          email: string;
                          emailVerified: boolean;
                          id: string;
                          name: string;
                          profiles: {
                              role: "user" | "influencer" | "venue" | "advertiser" | "creator";
                              service: "day" | "studio";
                          }[];
                          status: "active"
                          | "suspended"
                          | "withdrawn";
                      };
                  },
              >;
              logout: () => Promise<void>;
              me: () => Promise<
                  {
                      admin: { role: "owner" | "operator" }
                      | null;
                      createdAt: string;
                      email: string;
                      emailVerified: boolean;
                      id: string;
                      name: string;
                      profiles: {
                          role: "user" | "influencer" | "venue" | "advertiser" | "creator";
                          service: "day" | "studio";
                      }[];
                      status: "active"
                      | "suspended"
                      | "withdrawn";
                  },
              >;
              refresh: () => Promise<
                  {
                      account: {
                          admin: { role: "owner" | "operator" }
                          | null;
                          createdAt: string;
                          email: string;
                          emailVerified: boolean;
                          id: string;
                          name: string;
                          profiles: {
                              role: "user" | "influencer" | "venue" | "advertiser" | "creator";
                              service: "day" | "studio";
                          }[];
                          status: "active"
                          | "suspended"
                          | "withdrawn";
                      };
                  },
              >;
              requestEmailVerification: () => Promise<void>;
              resetPassword: (
                  input: { password: string; token: string },
              ) => Promise<void>;
              signup: (
                  input: {
                      email: string;
                      name: string;
                      password: string;
                      role: "user" | "influencer" | "venue" | "advertiser" | "creator";
                      service: "day" | "studio";
                  },
              ) => Promise<
                  {
                      account: {
                          admin: { role: "owner" | "operator" }
                          | null;
                          createdAt: string;
                          email: string;
                          emailVerified: boolean;
                          id: string;
                          name: string;
                          profiles: {
                              role: "user" | "influencer" | "venue" | "advertiser" | "creator";
                              service: "day" | "studio";
                          }[];
                          status: "active"
                          | "suspended"
                          | "withdrawn";
                      };
                  },
              >;
              verifyEmail: (
                  token: string,
              ) => Promise<
                  {
                      admin: { role: "owner" | "operator" }
                      | null;
                      createdAt: string;
                      email: string;
                      emailVerified: boolean;
                      id: string;
                      name: string;
                      profiles: {
                          role: "user" | "influencer" | "venue" | "advertiser" | "creator";
                          service: "day" | "studio";
                      }[];
                      status: "active"
                      | "suspended"
                      | "withdrawn";
                  },
              >;
          };
          day: {
              castings: {
                  applications: (
                      castingId: string,
                  ) => Promise<
                      {
                          applicant: {
                              avatarUrl: string
                              | null;
                              creatorTypes: string[];
                              fields: string[];
                              id: string;
                              name: string;
                              roles: ("user" | "influencer" | "venue")[];
                              sns: {
                                  blog?: string;
                                  instagram?: string;
                                  tiktok?: string;
                                  x?: string;
                                  youtube?: string;
                              };
                          };
                          createdAt: string;
                          id: string;
                          message: string
                          | null;
                          status: "pending" | "rejected" | "canceled" | "selected";
                      }[],
                  >;
                  apply: (
                      castingId: string,
                      input: { message?: string; role?: "user" | "influencer" },
                  ) => Promise<
                      {
                          applicantCount: number;
                          benefit: string;
                          channels: string[];
                          createdAt: string;
                          deadline: string;
                          description: string;
                          endDate: string;
                          fields: string[];
                          headcount: number;
                          id: string;
                          image: string
                          | null;
                          mission: string;
                          myApplication:
                              | {
                                  createdAt: string;
                                  id: string;
                                  status: "pending"
                                  | "rejected"
                                  | "canceled"
                                  | "selected";
                              }
                              | null;
                          ownerId: string;
                          place: {
                              category: string;
                              id: string;
                              kind: "place"
                              | "brand"
                              | "gov";
                              name: string;
                              photo: string | null;
                              regionId: string;
                          };
                          placeId: string;
                          selectedCount: number;
                          startDate: string;
                          status: "open"
                          | "closed";
                          title: string;
                          type: string;
                      },
                  >;
                  cancelApplication: (castingId: string) => Promise<void>;
                  create: (
                      input: {
                          benefit: string;
                          channels: string[];
                          deadline: string;
                          description: string;
                          endDate: string;
                          fields: string[];
                          headcount: number;
                          idempotencyKey: string;
                          image?: string | null;
                          mission: string;
                          placeId: string;
                          startDate: string;
                          title: string;
                          type: string;
                      },
                  ) => Promise<{ amount: number; id: string; paymentId: string }>;
                  decide: (
                      applicationId: string,
                      input: { status: "pending" | "rejected" | "selected" },
                  ) => Promise<
                      {
                          applicant: {
                              avatarUrl: string
                              | null;
                              creatorTypes: string[];
                              fields: string[];
                              id: string;
                              name: string;
                              roles: ("user" | "influencer" | "venue")[];
                              sns: {
                                  blog?: string;
                                  instagram?: string;
                                  tiktok?: string;
                                  x?: string;
                                  youtube?: string;
                              };
                          };
                          createdAt: string;
                          id: string;
                          message: string
                          | null;
                          status: "pending" | "rejected" | "canceled" | "selected";
                      }[],
                  >;
                  get: (
                      castingId: string,
                  ) => Promise<
                      {
                          applicantCount: number;
                          benefit: string;
                          channels: string[];
                          createdAt: string;
                          deadline: string;
                          description: string;
                          endDate: string;
                          fields: string[];
                          headcount: number;
                          id: string;
                          image: string
                          | null;
                          mission: string;
                          myApplication:
                              | {
                                  createdAt: string;
                                  id: string;
                                  status: "pending"
                                  | "rejected"
                                  | "canceled"
                                  | "selected";
                              }
                              | null;
                          ownerId: string;
                          place: {
                              category: string;
                              id: string;
                              kind: "place"
                              | "brand"
                              | "gov";
                              name: string;
                              photo: string | null;
                              regionId: string;
                          };
                          placeId: string;
                          selectedCount: number;
                          startDate: string;
                          status: "open"
                          | "closed";
                          title: string;
                          type: string;
                      },
                  >;
                  list: (
                      params?: {
                          channel?: string;
                          field?: string;
                          includeClosed?: boolean;
                          ownerId?: string;
                          page?: number;
                          pageSize?: number;
                          placeId?: string;
                          q?: string;
                          type?: string;
                      },
                  ) => Promise<
                      {
                          items: {
                              applicantCount: number;
                              benefit: string;
                              channels: string[];
                              createdAt: string;
                              deadline: string;
                              description: string;
                              endDate: string;
                              fields: string[];
                              headcount: number;
                              id: string;
                              image: string
                              | null;
                              mission: string;
                              myApplication:
                                  | {
                                      createdAt: string;
                                      id: string;
                                      status: (...)
                                      | (...)
                                      | (...)
                                      | (...);
                                  }
                                  | null;
                              ownerId: string;
                              place: {
                                  category: string;
                                  id: string;
                                  kind: "place"
                                  | "brand"
                                  | "gov";
                                  name: string;
                                  photo: string | null;
                                  regionId: string;
                              };
                              placeId: string;
                              selectedCount: number;
                              startDate: string;
                              status: "open"
                              | "closed";
                              title: string;
                              type: string;
                          }[];
                          page: number;
                          pageSize: number;
                          total: number;
                      },
                  >;
                  setStatus: (
                      castingId: string,
                      input: { status: "open" | "closed" },
                  ) => Promise<
                      {
                          applicantCount: number;
                          benefit: string;
                          channels: string[];
                          createdAt: string;
                          deadline: string;
                          description: string;
                          endDate: string;
                          fields: string[];
                          headcount: number;
                          id: string;
                          image: string
                          | null;
                          mission: string;
                          myApplication:
                              | {
                                  createdAt: string;
                                  id: string;
                                  status: "pending"
                                  | "rejected"
                                  | "canceled"
                                  | "selected";
                              }
                              | null;
                          ownerId: string;
                          place: {
                              category: string;
                              id: string;
                              kind: "place"
                              | "brand"
                              | "gov";
                              name: string;
                              photo: string | null;
                              regionId: string;
                          };
                          placeId: string;
                          selectedCount: number;
                          startDate: string;
                          status: "open"
                          | "closed";
                          title: string;
                          type: string;
                      },
                  >;
                  update: (
                      castingId: string,
                      input: {
                          benefit?: string;
                          channels?: string[];
                          deadline?: string;
                          description?: string;
                          endDate?: string;
                          fields?: string[];
                          headcount?: number;
                          image?: string | null;
                          mission?: string;
                          placeId?: string;
                          startDate?: string;
                          title?: string;
                          type?: string;
                      },
                  ) => Promise<
                      {
                          applicantCount: number;
                          benefit: string;
                          channels: string[];
                          createdAt: string;
                          deadline: string;
                          description: string;
                          endDate: string;
                          fields: string[];
                          headcount: number;
                          id: string;
                          image: string
                          | null;
                          mission: string;
                          myApplication:
                              | {
                                  createdAt: string;
                                  id: string;
                                  status: "pending"
                                  | "rejected"
                                  | "canceled"
                                  | "selected";
                              }
                              | null;
                          ownerId: string;
                          place: {
                              category: string;
                              id: string;
                              kind: "place"
                              | "brand"
                              | "gov";
                              name: string;
                              photo: string | null;
                              regionId: string;
                          };
                          placeId: string;
                          selectedCount: number;
                          startDate: string;
                          status: "open"
                          | "closed";
                          title: string;
                          type: string;
                      },
                  >;
              };
              events: {
                  applications: (
                      eventId: string,
                  ) => Promise<
                      {
                          applicant: {
                              avatarUrl: string
                              | null;
                              creatorTypes: string[];
                              fields: string[];
                              id: string;
                              name: string;
                              roles: ("user" | "influencer" | "venue")[];
                              sns: {
                                  blog?: string;
                                  instagram?: string;
                                  tiktok?: string;
                                  x?: string;
                                  youtube?: string;
                              };
                          };
                          attended: boolean;
                          createdAt: string;
                          id: string;
                          message: string
                          | null;
                          role: "user" | "influencer";
                          status: "applied" | "canceled";
                      }[],
                  >;
                  apply: (
                      eventId: string,
                      input: { message?: string; role?: "user" | "influencer" },
                  ) => Promise<
                      {
                          address: string;
                          applicantCount: number;
                          capacity: number;
                          category: string;
                          createdAt: string;
                          date: string;
                          description: string;
                          endTime: string;
                          id: string;
                          image: string
                          | null;
                          lat: number;
                          likeCount: number;
                          liked: boolean;
                          lineup: string[];
                          lng: number;
                          myApplication:
                              | {
                                  attended: boolean;
                                  createdAt: string;
                                  id: string;
                                  role: "user"
                                  | "influencer";
                                  status: "applied" | "canceled";
                              }
                              | null;
                          notice: string
                          | null;
                          ownerId: string;
                          place: {
                              category: string;
                              id: string;
                              kind: "place" | "brand" | "gov";
                              name: string;
                              photo: string | null;
                              regionId: string;
                          };
                          placeId: string;
                          priceInfluencer: number;
                          priceUser: number;
                          program: string;
                          regionId: string;
                          startTime: string;
                          status: "open"
                          | "canceled"
                          | "closed"
                          | "ended";
                          target: "user" | "influencer" | "all";
                          title: string;
                      },
                  >;
                  cancelApplication: (eventId: string) => Promise<void>;
                  create: (
                      input: {
                          address: string;
                          capacity: number;
                          category: string;
                          date: string;
                          description: string;
                          endTime: string;
                          idempotencyKey: string;
                          image?: string | null;
                          lat: number;
                          lineup: string[];
                          lng: number;
                          notice?: string | null;
                          placeId: string;
                          priceInfluencer: number;
                          priceUser: number;
                          program: string;
                          regionId:
                              | "seongsu"
                              | "gangnam"
                              | "mapo"
                              | "yongsan"
                              | "jongno"
                              | "haeundae"
                              | "gangneung"
                              | "jeju";
                          startTime: string;
                          target: "user"
                          | "influencer"
                          | "all";
                          title: string;
                      },
                  ) => Promise<{ amount: number; id: string; paymentId: string }>;
                  get: (
                      eventId: string,
                  ) => Promise<
                      {
                          address: string;
                          applicantCount: number;
                          capacity: number;
                          category: string;
                          createdAt: string;
                          date: string;
                          description: string;
                          endTime: string;
                          id: string;
                          image: string
                          | null;
                          lat: number;
                          likeCount: number;
                          liked: boolean;
                          lineup: string[];
                          lng: number;
                          myApplication:
                              | {
                                  attended: boolean;
                                  createdAt: string;
                                  id: string;
                                  role: "user"
                                  | "influencer";
                                  status: "applied" | "canceled";
                              }
                              | null;
                          notice: string
                          | null;
                          ownerId: string;
                          place: {
                              category: string;
                              id: string;
                              kind: "place" | "brand" | "gov";
                              name: string;
                              photo: string | null;
                              regionId: string;
                          };
                          placeId: string;
                          priceInfluencer: number;
                          priceUser: number;
                          program: string;
                          regionId: string;
                          startTime: string;
                          status: "open"
                          | "canceled"
                          | "closed"
                          | "ended";
                          target: "user" | "influencer" | "all";
                          title: string;
                      },
                  >;
                  like: (eventId: string) => Promise<void>;
                  list: (
                      params?: {
                          category?: string;
                          from?: string;
                          includePast?: boolean;
                          maxLat?: number;
                          maxLng?: number;
                          minLat?: number;
                          minLng?: number;
                          ownerId?: string;
                          page?: number;
                          pageSize?: number;
                          placeId?: string;
                          q?: string;
                          regionId?:
                              | "seongsu"
                              | "gangnam"
                              | "mapo"
                              | "yongsan"
                              | "jongno"
                              | "haeundae"
                              | "gangneung"
                              | "jeju";
                          sort?: "date"
                          | "new"
                          | "popular";
                          status?: ("open" | "canceled" | "closed" | "ended")[];
                          target?: ("user" | "influencer" | "all")[];
                          to?: string;
                      },
                  ) => Promise<
                      {
                          items: {
                              address: string;
                              applicantCount: number;
                              capacity: number;
                              category: string;
                              createdAt: string;
                              date: string;
                              description: string;
                              endTime: string;
                              id: string;
                              image: string
                              | null;
                              lat: number;
                              likeCount: number;
                              liked: boolean;
                              lineup: string[];
                              lng: number;
                              myApplication:
                                  | {
                                      attended: boolean;
                                      createdAt: string;
                                      id: string;
                                      role: (...)
                                      | (...);
                                      status: (...) | (...);
                                  }
                                  | null;
                              notice: string
                              | null;
                              ownerId: string;
                              place: {
                                  category: string;
                                  id: string;
                                  kind: "place" | "brand" | "gov";
                                  name: string;
                                  photo: string | null;
                                  regionId: string;
                              };
                              placeId: string;
                              priceInfluencer: number;
                              priceUser: number;
                              program: string;
                              regionId: string;
                              startTime: string;
                              status: "open"
                              | "canceled"
                              | "closed"
                              | "ended";
                              target: "user" | "influencer" | "all";
                              title: string;
                          }[];
                          page: number;
                          pageSize: number;
                          total: number;
                      },
                  >;
                  setAttendance: (
                      applicationId: string,
                      input: { attended: boolean },
                  ) => Promise<
                      {
                          applicant: {
                              avatarUrl: string
                              | null;
                              creatorTypes: string[];
                              fields: string[];
                              id: string;
                              name: string;
                              roles: ("user" | "influencer" | "venue")[];
                              sns: {
                                  blog?: string;
                                  instagram?: string;
                                  tiktok?: string;
                                  x?: string;
                                  youtube?: string;
                              };
                          };
                          attended: boolean;
                          createdAt: string;
                          id: string;
                          message: string
                          | null;
                          role: "user" | "influencer";
                          status: "applied" | "canceled";
                      }[],
                  >;
                  setStatus: (
                      eventId: string,
                      input: { status: "open" | "canceled" | "closed" | "ended" },
                  ) => Promise<
                      {
                          address: string;
                          applicantCount: number;
                          capacity: number;
                          category: string;
                          createdAt: string;
                          date: string;
                          description: string;
                          endTime: string;
                          id: string;
                          image: string
                          | null;
                          lat: number;
                          likeCount: number;
                          liked: boolean;
                          lineup: string[];
                          lng: number;
                          myApplication:
                              | {
                                  attended: boolean;
                                  createdAt: string;
                                  id: string;
                                  role: "user"
                                  | "influencer";
                                  status: "applied" | "canceled";
                              }
                              | null;
                          notice: string
                          | null;
                          ownerId: string;
                          place: {
                              category: string;
                              id: string;
                              kind: "place" | "brand" | "gov";
                              name: string;
                              photo: string | null;
                              regionId: string;
                          };
                          placeId: string;
                          priceInfluencer: number;
                          priceUser: number;
                          program: string;
                          regionId: string;
                          startTime: string;
                          status: "open"
                          | "canceled"
                          | "closed"
                          | "ended";
                          target: "user" | "influencer" | "all";
                          title: string;
                      },
                  >;
                  unlike: (eventId: string) => Promise<void>;
                  update: (
                      eventId: string,
                      input: {
                          address?: string;
                          capacity?: number;
                          category?: string;
                          date?: string;
                          description?: string;
                          endTime?: string;
                          image?: string | null;
                          lat?: number;
                          lineup?: string[];
                          lng?: number;
                          notice?: string | null;
                          placeId?: string;
                          priceInfluencer?: number;
                          priceUser?: number;
                          program?: string;
                          regionId?:
                              | "seongsu"
                              | "gangnam"
                              | "mapo"
                              | "yongsan"
                              | "jongno"
                              | "haeundae"
                              | "gangneung"
                              | "jeju";
                          startTime?: string;
                          target?: "user"
                          | "influencer"
                          | "all";
                          title?: string;
                      },
                  ) => Promise<
                      {
                          address: string;
                          applicantCount: number;
                          capacity: number;
                          category: string;
                          createdAt: string;
                          date: string;
                          description: string;
                          endTime: string;
                          id: string;
                          image: string
                          | null;
                          lat: number;
                          likeCount: number;
                          liked: boolean;
                          lineup: string[];
                          lng: number;
                          myApplication:
                              | {
                                  attended: boolean;
                                  createdAt: string;
                                  id: string;
                                  role: "user"
                                  | "influencer";
                                  status: "applied" | "canceled";
                              }
                              | null;
                          notice: string
                          | null;
                          ownerId: string;
                          place: {
                              category: string;
                              id: string;
                              kind: "place" | "brand" | "gov";
                              name: string;
                              photo: string | null;
                              regionId: string;
                          };
                          placeId: string;
                          priceInfluencer: number;
                          priceUser: number;
                          program: string;
                          regionId: string;
                          startTime: string;
                          status: "open"
                          | "canceled"
                          | "closed"
                          | "ended";
                          target: "user" | "influencer" | "all";
                          title: string;
                      },
                  >;
              };
              me: {
                  get: () => Promise<
                      {
                          avatarUrl: string
                          | null;
                          email: string;
                          id: string;
                          name: string;
                          profile: {
                              bio: string;
                              creatorTypes: string[];
                              fields: string[];
                              history: string;
                              regionId: string | null;
                              sns: {
                                  blog?: string;
                                  instagram?: string;
                                  tiktok?: string;
                                  x?: string;
                                  youtube?: string;
                              };
                          };
                          roles: ("user" | "influencer" | "venue")[];
                      },
                  >;
                  likes: () => Promise<
                      {
                          address: string;
                          applicantCount: number;
                          capacity: number;
                          category: string;
                          createdAt: string;
                          date: string;
                          description: string;
                          endTime: string;
                          id: string;
                          image: string
                          | null;
                          lat: number;
                          likeCount: number;
                          liked: boolean;
                          lineup: string[];
                          lng: number;
                          myApplication:
                              | {
                                  attended: boolean;
                                  createdAt: string;
                                  id: string;
                                  role: "user"
                                  | "influencer";
                                  status: "applied" | "canceled";
                              }
                              | null;
                          notice: string
                          | null;
                          ownerId: string;
                          place: {
                              category: string;
                              id: string;
                              kind: "place" | "brand" | "gov";
                              name: string;
                              photo: string | null;
                              regionId: string;
                          };
                          placeId: string;
                          priceInfluencer: number;
                          priceUser: number;
                          program: string;
                          regionId: string;
                          startTime: string;
                          status: "open"
                          | "canceled"
                          | "closed"
                          | "ended";
                          target: "user" | "influencer" | "all";
                          title: string;
                      }[],
                  >;
                  schedule: () => Promise<
                      {
                          castings: {
                              application: {
                                  createdAt: string;
                                  id: string;
                                  status: "pending"
                                  | "rejected"
                                  | "canceled"
                                  | "selected";
                              };
                              casting: {
                                  applicantCount: number;
                                  benefit: string;
                                  channels: string[];
                                  createdAt: string;
                                  deadline: string;
                                  description: string;
                                  endDate: string;
                                  fields: string[];
                                  headcount: number;
                                  id: string;
                                  image: string
                                  | null;
                                  mission: string;
                                  myApplication: { createdAt: ...; id: ...; status: ... } | null;
                                  ownerId: string;
                                  place: {
                                      category: string;
                                      id: string;
                                      kind: (...) | (...) | (...);
                                      name: string;
                                      photo: (...) | (...);
                                      regionId: string;
                                  };
                                  placeId: string;
                                  selectedCount: number;
                                  startDate: string;
                                  status: "open"
                                  | "closed";
                                  title: string;
                                  type: string;
                              };
                          }[];
                          events: {
                              application: {
                                  attended: boolean;
                                  createdAt: string;
                                  id: string;
                                  role: "user"
                                  | "influencer";
                                  status: "applied" | "canceled";
                              };
                              event: {
                                  address: string;
                                  applicantCount: number;
                                  capacity: number;
                                  category: string;
                                  createdAt: string;
                                  date: string;
                                  description: string;
                                  endTime: string;
                                  id: string;
                                  image: string
                                  | null;
                                  lat: number;
                                  likeCount: number;
                                  liked: boolean;
                                  lineup: string[];
                                  lng: number;
                                  myApplication:
                                      | {
                                          attended: ...;
                                          createdAt: ...;
                                          id: ...;
                                          role: ...;
                                          status: ...;
                                      }
                                      | null;
                                  notice: string
                                  | null;
                                  ownerId: string;
                                  place: {
                                      category: string;
                                      id: string;
                                      kind: (...) | (...) | (...);
                                      name: string;
                                      photo: (...) | (...);
                                      regionId: string;
                                  };
                                  placeId: string;
                                  priceInfluencer: number;
                                  priceUser: number;
                                  program: string;
                                  regionId: string;
                                  startTime: string;
                                  status: "open"
                                  | "canceled"
                                  | "closed"
                                  | "ended";
                                  target: "user" | "influencer" | "all";
                                  title: string;
                              };
                          }[];
                      },
                  >;
                  updateProfile: (
                      input: {
                          avatarUrl?: string | null;
                          bio?: string;
                          creatorTypes?: string[];
                          fields?: string[];
                          history?: string;
                          name?: string;
                          regionId?:
                              | "seongsu"
                              | "gangnam"
                              | "mapo"
                              | "yongsan"
                              | "jongno"
                              | "haeundae"
                              | "gangneung"
                              | "jeju"
                              | null;
                          sns?: {
                              blog?: string;
                              instagram?: string;
                              tiktok?: string;
                              x?: string;
                              youtube?: string;
                          };
                      },
                  ) => Promise<
                      {
                          avatarUrl: string
                          | null;
                          email: string;
                          id: string;
                          name: string;
                          profile: {
                              bio: string;
                              creatorTypes: string[];
                              fields: string[];
                              history: string;
                              regionId: string | null;
                              sns: {
                                  blog?: string;
                                  instagram?: string;
                                  tiktok?: string;
                                  x?: string;
                                  youtube?: string;
                              };
                          };
                          roles: ("user" | "influencer" | "venue")[];
                      },
                  >;
              };
              meta: () => Promise<
                  {
                      castingTypes: string[];
                      channels: string[];
                      creatorTypes: string[];
                      eventCategories: string[];
                      fields: string[];
                      placeCategories: string[];
                      regions: {
                          city: string;
                          id: string;
                          lat: number;
                          lng: number;
                          name: string;
                      }[];
                      registrationFee: number;
                  },
              >;
              places: {
                  create: (
                      input: {
                          address: string;
                          bizNumber?: string;
                          category: string;
                          contact?: string;
                          hours: string;
                          intro: string;
                          kind: "place" | "brand" | "gov";
                          lat: number;
                          lng: number;
                          name: string;
                          photos: string[];
                          regionId:
                              | "seongsu"
                              | "gangnam"
                              | "mapo"
                              | "yongsan"
                              | "jongno"
                              | "haeundae"
                              | "gangneung"
                              | "jeju";
                          services: string;
                      },
                  ) => Promise<
                      {
                          address: string;
                          bizNumber: string
                          | null;
                          category: string;
                          contact: string | null;
                          createdAt: string;
                          hours: string;
                          id: string;
                          intro: string;
                          kind: "place" | "brand" | "gov";
                          lat: number;
                          lng: number;
                          name: string;
                          ownerId: string;
                          photos: string[];
                          regionId: string;
                          services: string;
                      },
                  >;
                  get: (
                      placeId: string,
                  ) => Promise<
                      {
                          address: string;
                          bizNumber: string
                          | null;
                          category: string;
                          contact: string | null;
                          createdAt: string;
                          hours: string;
                          id: string;
                          intro: string;
                          kind: "place" | "brand" | "gov";
                          lat: number;
                          lng: number;
                          name: string;
                          ownerId: string;
                          photos: string[];
                          regionId: string;
                          services: string;
                      },
                  >;
                  list: (
                      params?: {
                          ownerId?: string;
                          page?: number;
                          pageSize?: number;
                          regionId?:
                              | "seongsu"
                              | "gangnam"
                              | "mapo"
                              | "yongsan"
                              | "jongno"
                              | "haeundae"
                              | "gangneung"
                              | "jeju";
                      },
                  ) => Promise<
                      {
                          items: {
                              address: string;
                              bizNumber: string
                              | null;
                              category: string;
                              contact: string | null;
                              createdAt: string;
                              hours: string;
                              id: string;
                              intro: string;
                              kind: "place" | "brand" | "gov";
                              lat: number;
                              lng: number;
                              name: string;
                              ownerId: string;
                              photos: string[];
                              regionId: string;
                              services: string;
                          }[];
                          page: number;
                          pageSize: number;
                          total: number;
                      },
                  >;
                  remove: (placeId: string) => Promise<void>;
                  update: (
                      placeId: string,
                      input: {
                          address?: string;
                          bizNumber?: string;
                          category?: string;
                          contact?: string;
                          hours?: string;
                          intro?: string;
                          kind?: "place" | "brand" | "gov";
                          lat?: number;
                          lng?: number;
                          name?: string;
                          photos?: string[];
                          regionId?:
                              | "seongsu"
                              | "gangnam"
                              | "mapo"
                              | "yongsan"
                              | "jongno"
                              | "haeundae"
                              | "gangneung"
                              | "jeju";
                          services?: string;
                      },
                  ) => Promise<
                      {
                          address: string;
                          bizNumber: string
                          | null;
                          category: string;
                          contact: string | null;
                          createdAt: string;
                          hours: string;
                          id: string;
                          intro: string;
                          kind: "place" | "brand" | "gov";
                          lat: number;
                          lng: number;
                          name: string;
                          ownerId: string;
                          photos: string[];
                          regionId: string;
                          services: string;
                      },
                  >;
              };
              report: (
                  input: {
                      reason: string;
                      targetId: string;
                      targetType: "user" | "place" | "event" | "casting";
                  },
              ) => Promise<void>;
              users: {
                  get: (
                      userId: string,
                  ) => Promise<
                      {
                          avatarUrl: string
                          | null;
                          bio: string;
                          creatorTypes: string[];
                          fields: string[];
                          history: string;
                          id: string;
                          joinedAt: string;
                          name: string;
                          regionId: string | null;
                          roles: ("user" | "influencer" | "venue")[];
                          sns: {
                              blog?: string;
                              instagram?: string;
                              tiktok?: string;
                              x?: string;
                              youtube?: string;
                          };
                          stats: {
                              attended: number;
                              events: number;
                              hostedEvents: number;
                              places: number;
                              selected: number;
                          };
                      },
                  >;
              };
          };
          health: () => Promise<
              { database: "up"
              | "down"; status: "ok" | "degraded" },
          >;
          notifications: {
              list: (
                  params?: { service?: "day" | "studio" },
              ) => Promise<
                  {
                      items: {
                          createdAt: string;
                          href: string;
                          id: string;
                          read: boolean;
                          service: "day"
                          | "studio"
                          | null;
                          text: string;
                      }[];
                      unread: number;
                  },
              >;
              readAll: (params?: { service?: "day" | "studio" }) => Promise<void>;
          };
          payments: {
              mine: () => Promise<
                  {
                      items: {
                          amount: number;
                          createdAt: string;
                          description: string;
                          id: string;
                          paidAt: string
                          | null;
                          provider: string;
                          purpose:
                              | "day_event_fee"
                              | "day_casting_fee"
                              | "studio_order"
                              | "studio_credit";
                          refId: string
                          | null;
                          refType: string | null;
                          refundedAmount: number;
                          service: "day" | "studio";
                          status: "pending" | "paid" | "failed" | "refunded";
                          vat: number;
                      }[];
                      page: number;
                      pageSize: number;
                      total: number;
                  },
              >;
          };
          request: <T>(method: Method, path: string, body?: unknown) => Promise<T>;
          studio: {
              campaigns: {
                  addMetrics: (
                      campaignId: string,
                      input: { metrics: { name: string; period: string; value: number }[] },
                  ) => Promise<
                      {
                          brief: {
                              ban: string;
                              channels: string[];
                              cta: string;
                              disclosure: string;
                              goal: string;
                              length: number;
                              message: string;
                              mustSay: string;
                              scene: string;
                              target: string;
                              tone: string;
                          };
                          cancelReason: string
                          | null;
                          code: string;
                          createdAt: string;
                          creator:
                              | {
                                  category: string;
                                  color: string;
                                  engagement: number;
                                  followers: number;
                                  handle: string;
                                  id: string;
                                  name: string;
                                  photoUrl: string
                                  | null;
                                  verified: boolean;
                              }
                              | null;
                          emoji: string;
                          id: string;
                          imageUrl: string
                          | null;
                          jobs: {
                              attempts: number;
                              createdAt: string;
                              credits: number;
                              error: string | null;
                              finishedAt: string | null;
                              id: string;
                              kind: "storyboard" | "revision" | "sample" | "final";
                              maxAttempts: number;
                              provider: string;
                              status:
                                  | "failed"
                                  | "done"
                                  | "queued"
                                  | "running"
                                  | "retry"
                                  | "blocked"
                                  | "cancelled";
                          }[];
                          name: string;
                          offer: | {
                              assets: string[];
                              blocker: string
                              | null;
                              channel: string;
                              creatorId: string;
                              expiresAt: string;
                              format: string;
                              id: string;
                              keep: string;
                              media: string[];
                              message: string;
                              portfolio: boolean;
                              postDate: string;
                              region: string;
                              rejectReason: string | null;
                              respondedAt: string | null;
                              rightsEnd: string;
                              rightsStart: string;
                              sentAt: string;
                              status: "withdrawn" | "sent" | "accepted" | "rejected" | "expired";
                              thread: {
                                  at: string;
                                  by: (...) | (...) | (...) | (...);
                                  name: string;
                                  tag?: (...) | (...);
                                  text: string;
                              }[];
                          }
                          | null;
                          order: | {
                              blocked: string
                              | null;
                              comments: {
                                  at: string;
                                  by: (...) | (...) | (...) | (...);
                                  name: string;
                                  tag?: (...) | (...);
                                  text: string;
                              }[];
                              confirmedAt: string;
                              creatorMetricsDone: boolean;
                              id: string;
                              metrics: {
                                  at: string;
                                  by: string;
                                  id: string;
                                  name: string;
                                  period: string;
                                  source: (...)
                                  | (...)
                                  | (...);
                                  value: number;
                                  verified: boolean;
                              }[];
                              outputUrl: string
                              | null;
                              paidAt: string | null;
                              payoutStatus: "paid" | "progress" | "scheduled" | "hold";
                              proof:
                                  | { at: string; captures: number; url: string; verified: boolean }
                                  | null;
                              qa: string;
                              revisionsLeft: number;
                              usesVoice: boolean;
                              version: number;
                          }
                          | null;
                          orgId: string;
                          orgName: string;
                          pastOffers: {
                              at: string;
                              creatorId: string;
                              creatorName: string;
                              id: string;
                              note: string;
                              status: "withdrawn"
                              | "rejected"
                              | "expired";
                          }[];
                          payout: number
                          | null;
                          price: number | null;
                          productId: string;
                          stage:
                              | "done"
                              | "accepted"
                              | "storyboard"
                              | "cancelled"
                              | "matching"
                              | "offer"
                              | "producing"
                              | "creator_review"
                              | "advertiser_review"
                              | "approved"
                              | "published";
                          stageLabel: string;
                          storyboard: {
                              approved: | { at: string; by: string; no: number; version: number }
                              | null;
                              batch: number;
                              history: {
                                  at: string;
                                  by: string;
                                  detail: string;
                                  title: string;
                                  tone?: "done" | "warn";
                              }[];
                              notes: string[];
                              options: {
                                  cta: string;
                                  exposure: string;
                                  no: number;
                                  qa: { ok: boolean; text: string };
                                  scenes: { exposure?: ...; line: ...; time: ...; visual: ... }[];
                                  summary: string;
                                  title: string;
                                  version: number;
                              }[];
                              regenerationsLeft: number;
                              sample: "generating"
                              | "ready"
                              | "none";
                              sampleAudioUrl: string | null;
                              sampleUrl: string | null;
                              selected: number;
                              status: "failed" | "generating" | "ready";
                              versions: number[];
                          };
                          type: "AI"
                          | "Direct";
                          updatedAt: string;
                      },
                  >;
                  approveOutput: (
                      campaignId: string,
                  ) => Promise<
                      {
                          brief: {
                              ban: string;
                              channels: string[];
                              cta: string;
                              disclosure: string;
                              goal: string;
                              length: number;
                              message: string;
                              mustSay: string;
                              scene: string;
                              target: string;
                              tone: string;
                          };
                          cancelReason: string
                          | null;
                          code: string;
                          createdAt: string;
                          creator:
                              | {
                                  category: string;
                                  color: string;
                                  engagement: number;
                                  followers: number;
                                  handle: string;
                                  id: string;
                                  name: string;
                                  photoUrl: string
                                  | null;
                                  verified: boolean;
                              }
                              | null;
                          emoji: string;
                          id: string;
                          imageUrl: string
                          | null;
                          jobs: {
                              attempts: number;
                              createdAt: string;
                              credits: number;
                              error: string | null;
                              finishedAt: string | null;
                              id: string;
                              kind: "storyboard" | "revision" | "sample" | "final";
                              maxAttempts: number;
                              provider: string;
                              status:
                                  | "failed"
                                  | "done"
                                  | "queued"
                                  | "running"
                                  | "retry"
                                  | "blocked"
                                  | "cancelled";
                          }[];
                          name: string;
                          offer: | {
                              assets: string[];
                              blocker: string
                              | null;
                              channel: string;
                              creatorId: string;
                              expiresAt: string;
                              format: string;
                              id: string;
                              keep: string;
                              media: string[];
                              message: string;
                              portfolio: boolean;
                              postDate: string;
                              region: string;
                              rejectReason: string | null;
                              respondedAt: string | null;
                              rightsEnd: string;
                              rightsStart: string;
                              sentAt: string;
                              status: "withdrawn" | "sent" | "accepted" | "rejected" | "expired";
                              thread: {
                                  at: string;
                                  by: (...) | (...) | (...) | (...);
                                  name: string;
                                  tag?: (...) | (...);
                                  text: string;
                              }[];
                          }
                          | null;
                          order: | {
                              blocked: string
                              | null;
                              comments: {
                                  at: string;
                                  by: (...) | (...) | (...) | (...);
                                  name: string;
                                  tag?: (...) | (...);
                                  text: string;
                              }[];
                              confirmedAt: string;
                              creatorMetricsDone: boolean;
                              id: string;
                              metrics: {
                                  at: string;
                                  by: string;
                                  id: string;
                                  name: string;
                                  period: string;
                                  source: (...)
                                  | (...)
                                  | (...);
                                  value: number;
                                  verified: boolean;
                              }[];
                              outputUrl: string
                              | null;
                              paidAt: string | null;
                              payoutStatus: "paid" | "progress" | "scheduled" | "hold";
                              proof:
                                  | { at: string; captures: number; url: string; verified: boolean }
                                  | null;
                              qa: string;
                              revisionsLeft: number;
                              usesVoice: boolean;
                              version: number;
                          }
                          | null;
                          orgId: string;
                          orgName: string;
                          pastOffers: {
                              at: string;
                              creatorId: string;
                              creatorName: string;
                              id: string;
                              note: string;
                              status: "withdrawn"
                              | "rejected"
                              | "expired";
                          }[];
                          payout: number
                          | null;
                          price: number | null;
                          productId: string;
                          stage:
                              | "done"
                              | "accepted"
                              | "storyboard"
                              | "cancelled"
                              | "matching"
                              | "offer"
                              | "producing"
                              | "creator_review"
                              | "advertiser_review"
                              | "approved"
                              | "published";
                          stageLabel: string;
                          storyboard: {
                              approved: | { at: string; by: string; no: number; version: number }
                              | null;
                              batch: number;
                              history: {
                                  at: string;
                                  by: string;
                                  detail: string;
                                  title: string;
                                  tone?: "done" | "warn";
                              }[];
                              notes: string[];
                              options: {
                                  cta: string;
                                  exposure: string;
                                  no: number;
                                  qa: { ok: boolean; text: string };
                                  scenes: { exposure?: ...; line: ...; time: ...; visual: ... }[];
                                  summary: string;
                                  title: string;
                                  version: number;
                              }[];
                              regenerationsLeft: number;
                              sample: "generating"
                              | "ready"
                              | "none";
                              sampleAudioUrl: string | null;
                              sampleUrl: string | null;
                              selected: number;
                              status: "failed" | "generating" | "ready";
                              versions: number[];
                          };
                          type: "AI"
                          | "Direct";
                          updatedAt: string;
                      },
                  >;
                  approveStory: (
                      campaignId: string,
                  ) => Promise<
                      {
                          brief: {
                              ban: string;
                              channels: string[];
                              cta: string;
                              disclosure: string;
                              goal: string;
                              length: number;
                              message: string;
                              mustSay: string;
                              scene: string;
                              target: string;
                              tone: string;
                          };
                          cancelReason: string
                          | null;
                          code: string;
                          createdAt: string;
                          creator:
                              | {
                                  category: string;
                                  color: string;
                                  engagement: number;
                                  followers: number;
                                  handle: string;
                                  id: string;
                                  name: string;
                                  photoUrl: string
                                  | null;
                                  verified: boolean;
                              }
                              | null;
                          emoji: string;
                          id: string;
                          imageUrl: string
                          | null;
                          jobs: {
                              attempts: number;
                              createdAt: string;
                              credits: number;
                              error: string | null;
                              finishedAt: string | null;
                              id: string;
                              kind: "storyboard" | "revision" | "sample" | "final";
                              maxAttempts: number;
                              provider: string;
                              status:
                                  | "failed"
                                  | "done"
                                  | "queued"
                                  | "running"
                                  | "retry"
                                  | "blocked"
                                  | "cancelled";
                          }[];
                          name: string;
                          offer: | {
                              assets: string[];
                              blocker: string
                              | null;
                              channel: string;
                              creatorId: string;
                              expiresAt: string;
                              format: string;
                              id: string;
                              keep: string;
                              media: string[];
                              message: string;
                              portfolio: boolean;
                              postDate: string;
                              region: string;
                              rejectReason: string | null;
                              respondedAt: string | null;
                              rightsEnd: string;
                              rightsStart: string;
                              sentAt: string;
                              status: "withdrawn" | "sent" | "accepted" | "rejected" | "expired";
                              thread: {
                                  at: string;
                                  by: (...) | (...) | (...) | (...);
                                  name: string;
                                  tag?: (...) | (...);
                                  text: string;
                              }[];
                          }
                          | null;
                          order: | {
                              blocked: string
                              | null;
                              comments: {
                                  at: string;
                                  by: (...) | (...) | (...) | (...);
                                  name: string;
                                  tag?: (...) | (...);
                                  text: string;
                              }[];
                              confirmedAt: string;
                              creatorMetricsDone: boolean;
                              id: string;
                              metrics: {
                                  at: string;
                                  by: string;
                                  id: string;
                                  name: string;
                                  period: string;
                                  source: (...)
                                  | (...)
                                  | (...);
                                  value: number;
                                  verified: boolean;
                              }[];
                              outputUrl: string
                              | null;
                              paidAt: string | null;
                              payoutStatus: "paid" | "progress" | "scheduled" | "hold";
                              proof:
                                  | { at: string; captures: number; url: string; verified: boolean }
                                  | null;
                              qa: string;
                              revisionsLeft: number;
                              usesVoice: boolean;
                              version: number;
                          }
                          | null;
                          orgId: string;
                          orgName: string;
                          pastOffers: {
                              at: string;
                              creatorId: string;
                              creatorName: string;
                              id: string;
                              note: string;
                              status: "withdrawn"
                              | "rejected"
                              | "expired";
                          }[];
                          payout: number
                          | null;
                          price: number | null;
                          productId: string;
                          stage:
                              | "done"
                              | "accepted"
                              | "storyboard"
                              | "cancelled"
                              | "matching"
                              | "offer"
                              | "producing"
                              | "creator_review"
                              | "advertiser_review"
                              | "approved"
                              | "published";
                          stageLabel: string;
                          storyboard: {
                              approved: | { at: string; by: string; no: number; version: number }
                              | null;
                              batch: number;
                              history: {
                                  at: string;
                                  by: string;
                                  detail: string;
                                  title: string;
                                  tone?: "done" | "warn";
                              }[];
                              notes: string[];
                              options: {
                                  cta: string;
                                  exposure: string;
                                  no: number;
                                  qa: { ok: boolean; text: string };
                                  scenes: { exposure?: ...; line: ...; time: ...; visual: ... }[];
                                  summary: string;
                                  title: string;
                                  version: number;
                              }[];
                              regenerationsLeft: number;
                              sample: "generating"
                              | "ready"
                              | "none";
                              sampleAudioUrl: string | null;
                              sampleUrl: string | null;
                              selected: number;
                              status: "failed" | "generating" | "ready";
                              versions: number[];
                          };
                          type: "AI"
                          | "Direct";
                          updatedAt: string;
                      },
                  >;
                  cancel: (
                      campaignId: string,
                      reason: string,
                  ) => Promise<
                      {
                          brief: {
                              ban: string;
                              channels: string[];
                              cta: string;
                              disclosure: string;
                              goal: string;
                              length: number;
                              message: string;
                              mustSay: string;
                              scene: string;
                              target: string;
                              tone: string;
                          };
                          cancelReason: string
                          | null;
                          code: string;
                          createdAt: string;
                          creator:
                              | {
                                  category: string;
                                  color: string;
                                  engagement: number;
                                  followers: number;
                                  handle: string;
                                  id: string;
                                  name: string;
                                  photoUrl: string
                                  | null;
                                  verified: boolean;
                              }
                              | null;
                          emoji: string;
                          id: string;
                          imageUrl: string
                          | null;
                          jobs: {
                              attempts: number;
                              createdAt: string;
                              credits: number;
                              error: string | null;
                              finishedAt: string | null;
                              id: string;
                              kind: "storyboard" | "revision" | "sample" | "final";
                              maxAttempts: number;
                              provider: string;
                              status:
                                  | "failed"
                                  | "done"
                                  | "queued"
                                  | "running"
                                  | "retry"
                                  | "blocked"
                                  | "cancelled";
                          }[];
                          name: string;
                          offer: | {
                              assets: string[];
                              blocker: string
                              | null;
                              channel: string;
                              creatorId: string;
                              expiresAt: string;
                              format: string;
                              id: string;
                              keep: string;
                              media: string[];
                              message: string;
                              portfolio: boolean;
                              postDate: string;
                              region: string;
                              rejectReason: string | null;
                              respondedAt: string | null;
                              rightsEnd: string;
                              rightsStart: string;
                              sentAt: string;
                              status: "withdrawn" | "sent" | "accepted" | "rejected" | "expired";
                              thread: {
                                  at: string;
                                  by: (...) | (...) | (...) | (...);
                                  name: string;
                                  tag?: (...) | (...);
                                  text: string;
                              }[];
                          }
                          | null;
                          order: | {
                              blocked: string
                              | null;
                              comments: {
                                  at: string;
                                  by: (...) | (...) | (...) | (...);
                                  name: string;
                                  tag?: (...) | (...);
                                  text: string;
                              }[];
                              confirmedAt: string;
                              creatorMetricsDone: boolean;
                              id: string;
                              metrics: {
                                  at: string;
                                  by: string;
                                  id: string;
                                  name: string;
                                  period: string;
                                  source: (...)
                                  | (...)
                                  | (...);
                                  value: number;
                                  verified: boolean;
                              }[];
                              outputUrl: string
                              | null;
                              paidAt: string | null;
                              payoutStatus: "paid" | "progress" | "scheduled" | "hold";
                              proof:
                                  | { at: string; captures: number; url: string; verified: boolean }
                                  | null;
                              qa: string;
                              revisionsLeft: number;
                              usesVoice: boolean;
                              version: number;
                          }
                          | null;
                          orgId: string;
                          orgName: string;
                          pastOffers: {
                              at: string;
                              creatorId: string;
                              creatorName: string;
                              id: string;
                              note: string;
                              status: "withdrawn"
                              | "rejected"
                              | "expired";
                          }[];
                          payout: number
                          | null;
                          price: number | null;
                          productId: string;
                          stage:
                              | "done"
                              | "accepted"
                              | "storyboard"
                              | "cancelled"
                              | "matching"
                              | "offer"
                              | "producing"
                              | "creator_review"
                              | "advertiser_review"
                              | "approved"
                              | "published";
                          stageLabel: string;
                          storyboard: {
                              approved: | { at: string; by: string; no: number; version: number }
                              | null;
                              batch: number;
                              history: {
                                  at: string;
                                  by: string;
                                  detail: string;
                                  title: string;
                                  tone?: "done" | "warn";
                              }[];
                              notes: string[];
                              options: {
                                  cta: string;
                                  exposure: string;
                                  no: number;
                                  qa: { ok: boolean; text: string };
                                  scenes: { exposure?: ...; line: ...; time: ...; visual: ... }[];
                                  summary: string;
                                  title: string;
                                  version: number;
                              }[];
                              regenerationsLeft: number;
                              sample: "generating"
                              | "ready"
                              | "none";
                              sampleAudioUrl: string | null;
                              sampleUrl: string | null;
                              selected: number;
                              status: "failed" | "generating" | "ready";
                              versions: number[];
                          };
                          type: "AI"
                          | "Direct";
                          updatedAt: string;
                      },
                  >;
                  comment: (
                      campaignId: string,
                      input: { tag?: string; text: string },
                  ) => Promise<
                      {
                          brief: {
                              ban: string;
                              channels: string[];
                              cta: string;
                              disclosure: string;
                              goal: string;
                              length: number;
                              message: string;
                              mustSay: string;
                              scene: string;
                              target: string;
                              tone: string;
                          };
                          cancelReason: string
                          | null;
                          code: string;
                          createdAt: string;
                          creator:
                              | {
                                  category: string;
                                  color: string;
                                  engagement: number;
                                  followers: number;
                                  handle: string;
                                  id: string;
                                  name: string;
                                  photoUrl: string
                                  | null;
                                  verified: boolean;
                              }
                              | null;
                          emoji: string;
                          id: string;
                          imageUrl: string
                          | null;
                          jobs: {
                              attempts: number;
                              createdAt: string;
                              credits: number;
                              error: string | null;
                              finishedAt: string | null;
                              id: string;
                              kind: "storyboard" | "revision" | "sample" | "final";
                              maxAttempts: number;
                              provider: string;
                              status:
                                  | "failed"
                                  | "done"
                                  | "queued"
                                  | "running"
                                  | "retry"
                                  | "blocked"
                                  | "cancelled";
                          }[];
                          name: string;
                          offer: | {
                              assets: string[];
                              blocker: string
                              | null;
                              channel: string;
                              creatorId: string;
                              expiresAt: string;
                              format: string;
                              id: string;
                              keep: string;
                              media: string[];
                              message: string;
                              portfolio: boolean;
                              postDate: string;
                              region: string;
                              rejectReason: string | null;
                              respondedAt: string | null;
                              rightsEnd: string;
                              rightsStart: string;
                              sentAt: string;
                              status: "withdrawn" | "sent" | "accepted" | "rejected" | "expired";
                              thread: {
                                  at: string;
                                  by: (...) | (...) | (...) | (...);
                                  name: string;
                                  tag?: (...) | (...);
                                  text: string;
                              }[];
                          }
                          | null;
                          order: | {
                              blocked: string
                              | null;
                              comments: {
                                  at: string;
                                  by: (...) | (...) | (...) | (...);
                                  name: string;
                                  tag?: (...) | (...);
                                  text: string;
                              }[];
                              confirmedAt: string;
                              creatorMetricsDone: boolean;
                              id: string;
                              metrics: {
                                  at: string;
                                  by: string;
                                  id: string;
                                  name: string;
                                  period: string;
                                  source: (...)
                                  | (...)
                                  | (...);
                                  value: number;
                                  verified: boolean;
                              }[];
                              outputUrl: string
                              | null;
                              paidAt: string | null;
                              payoutStatus: "paid" | "progress" | "scheduled" | "hold";
                              proof:
                                  | { at: string; captures: number; url: string; verified: boolean }
                                  | null;
                              qa: string;
                              revisionsLeft: number;
                              usesVoice: boolean;
                              version: number;
                          }
                          | null;
                          orgId: string;
                          orgName: string;
                          pastOffers: {
                              at: string;
                              creatorId: string;
                              creatorName: string;
                              id: string;
                              note: string;
                              status: "withdrawn"
                              | "rejected"
                              | "expired";
                          }[];
                          payout: number
                          | null;
                          price: number | null;
                          productId: string;
                          stage:
                              | "done"
                              | "accepted"
                              | "storyboard"
                              | "cancelled"
                              | "matching"
                              | "offer"
                              | "producing"
                              | "creator_review"
                              | "advertiser_review"
                              | "approved"
                              | "published";
                          stageLabel: string;
                          storyboard: {
                              approved: | { at: string; by: string; no: number; version: number }
                              | null;
                              batch: number;
                              history: {
                                  at: string;
                                  by: string;
                                  detail: string;
                                  title: string;
                                  tone?: "done" | "warn";
                              }[];
                              notes: string[];
                              options: {
                                  cta: string;
                                  exposure: string;
                                  no: number;
                                  qa: { ok: boolean; text: string };
                                  scenes: { exposure?: ...; line: ...; time: ...; visual: ... }[];
                                  summary: string;
                                  title: string;
                                  version: number;
                              }[];
                              regenerationsLeft: number;
                              sample: "generating"
                              | "ready"
                              | "none";
                              sampleAudioUrl: string | null;
                              sampleUrl: string | null;
                              selected: number;
                              status: "failed" | "generating" | "ready";
                              versions: number[];
                          };
                          type: "AI"
                          | "Direct";
                          updatedAt: string;
                      },
                  >;
                  confirmOrder: (
                      campaignId: string,
                  ) => Promise<
                      {
                          brief: {
                              ban: string;
                              channels: string[];
                              cta: string;
                              disclosure: string;
                              goal: string;
                              length: number;
                              message: string;
                              mustSay: string;
                              scene: string;
                              target: string;
                              tone: string;
                          };
                          cancelReason: string
                          | null;
                          code: string;
                          createdAt: string;
                          creator:
                              | {
                                  category: string;
                                  color: string;
                                  engagement: number;
                                  followers: number;
                                  handle: string;
                                  id: string;
                                  name: string;
                                  photoUrl: string
                                  | null;
                                  verified: boolean;
                              }
                              | null;
                          emoji: string;
                          id: string;
                          imageUrl: string
                          | null;
                          jobs: {
                              attempts: number;
                              createdAt: string;
                              credits: number;
                              error: string | null;
                              finishedAt: string | null;
                              id: string;
                              kind: "storyboard" | "revision" | "sample" | "final";
                              maxAttempts: number;
                              provider: string;
                              status:
                                  | "failed"
                                  | "done"
                                  | "queued"
                                  | "running"
                                  | "retry"
                                  | "blocked"
                                  | "cancelled";
                          }[];
                          name: string;
                          offer: | {
                              assets: string[];
                              blocker: string
                              | null;
                              channel: string;
                              creatorId: string;
                              expiresAt: string;
                              format: string;
                              id: string;
                              keep: string;
                              media: string[];
                              message: string;
                              portfolio: boolean;
                              postDate: string;
                              region: string;
                              rejectReason: string | null;
                              respondedAt: string | null;
                              rightsEnd: string;
                              rightsStart: string;
                              sentAt: string;
                              status: "withdrawn" | "sent" | "accepted" | "rejected" | "expired";
                              thread: {
                                  at: string;
                                  by: (...) | (...) | (...) | (...);
                                  name: string;
                                  tag?: (...) | (...);
                                  text: string;
                              }[];
                          }
                          | null;
                          order: | {
                              blocked: string
                              | null;
                              comments: {
                                  at: string;
                                  by: (...) | (...) | (...) | (...);
                                  name: string;
                                  tag?: (...) | (...);
                                  text: string;
                              }[];
                              confirmedAt: string;
                              creatorMetricsDone: boolean;
                              id: string;
                              metrics: {
                                  at: string;
                                  by: string;
                                  id: string;
                                  name: string;
                                  period: string;
                                  source: (...)
                                  | (...)
                                  | (...);
                                  value: number;
                                  verified: boolean;
                              }[];
                              outputUrl: string
                              | null;
                              paidAt: string | null;
                              payoutStatus: "paid" | "progress" | "scheduled" | "hold";
                              proof:
                                  | { at: string; captures: number; url: string; verified: boolean }
                                  | null;
                              qa: string;
                              revisionsLeft: number;
                              usesVoice: boolean;
                              version: number;
                          }
                          | null;
                          orgId: string;
                          orgName: string;
                          pastOffers: {
                              at: string;
                              creatorId: string;
                              creatorName: string;
                              id: string;
                              note: string;
                              status: "withdrawn"
                              | "rejected"
                              | "expired";
                          }[];
                          payout: number
                          | null;
                          price: number | null;
                          productId: string;
                          stage:
                              | "done"
                              | "accepted"
                              | "storyboard"
                              | "cancelled"
                              | "matching"
                              | "offer"
                              | "producing"
                              | "creator_review"
                              | "advertiser_review"
                              | "approved"
                              | "published";
                          stageLabel: string;
                          storyboard: {
                              approved: | { at: string; by: string; no: number; version: number }
                              | null;
                              batch: number;
                              history: {
                                  at: string;
                                  by: string;
                                  detail: string;
                                  title: string;
                                  tone?: "done" | "warn";
                              }[];
                              notes: string[];
                              options: {
                                  cta: string;
                                  exposure: string;
                                  no: number;
                                  qa: { ok: boolean; text: string };
                                  scenes: { exposure?: ...; line: ...; time: ...; visual: ... }[];
                                  summary: string;
                                  title: string;
                                  version: number;
                              }[];
                              regenerationsLeft: number;
                              sample: "generating"
                              | "ready"
                              | "none";
                              sampleAudioUrl: string | null;
                              sampleUrl: string | null;
                              selected: number;
                              status: "failed" | "generating" | "ready";
                              versions: number[];
                          };
                          type: "AI"
                          | "Direct";
                          updatedAt: string;
                      },
                  >;
                  create: (
                      input: {
                          brief: {
                              ban: string;
                              channels: string[];
                              cta: string;
                              disclosure: string;
                              goal: string;
                              length: number;
                              message: string;
                              mustSay: string;
                              scene: string;
                              target: string;
                              tone: string;
                          };
                          name?: string;
                          productId: string;
                          type: "AI"
                          | "Direct";
                      },
                  ) => Promise<
                      {
                          brief: {
                              ban: string;
                              channels: string[];
                              cta: string;
                              disclosure: string;
                              goal: string;
                              length: number;
                              message: string;
                              mustSay: string;
                              scene: string;
                              target: string;
                              tone: string;
                          };
                          cancelReason: string
                          | null;
                          code: string;
                          createdAt: string;
                          creator:
                              | {
                                  category: string;
                                  color: string;
                                  engagement: number;
                                  followers: number;
                                  handle: string;
                                  id: string;
                                  name: string;
                                  photoUrl: string
                                  | null;
                                  verified: boolean;
                              }
                              | null;
                          emoji: string;
                          id: string;
                          imageUrl: string
                          | null;
                          jobs: {
                              attempts: number;
                              createdAt: string;
                              credits: number;
                              error: string | null;
                              finishedAt: string | null;
                              id: string;
                              kind: "storyboard" | "revision" | "sample" | "final";
                              maxAttempts: number;
                              provider: string;
                              status:
                                  | "failed"
                                  | "done"
                                  | "queued"
                                  | "running"
                                  | "retry"
                                  | "blocked"
                                  | "cancelled";
                          }[];
                          name: string;
                          offer: | {
                              assets: string[];
                              blocker: string
                              | null;
                              channel: string;
                              creatorId: string;
                              expiresAt: string;
                              format: string;
                              id: string;
                              keep: string;
                              media: string[];
                              message: string;
                              portfolio: boolean;
                              postDate: string;
                              region: string;
                              rejectReason: string | null;
                              respondedAt: string | null;
                              rightsEnd: string;
                              rightsStart: string;
                              sentAt: string;
                              status: "withdrawn" | "sent" | "accepted" | "rejected" | "expired";
                              thread: {
                                  at: string;
                                  by: (...) | (...) | (...) | (...);
                                  name: string;
                                  tag?: (...) | (...);
                                  text: string;
                              }[];
                          }
                          | null;
                          order: | {
                              blocked: string
                              | null;
                              comments: {
                                  at: string;
                                  by: (...) | (...) | (...) | (...);
                                  name: string;
                                  tag?: (...) | (...);
                                  text: string;
                              }[];
                              confirmedAt: string;
                              creatorMetricsDone: boolean;
                              id: string;
                              metrics: {
                                  at: string;
                                  by: string;
                                  id: string;
                                  name: string;
                                  period: string;
                                  source: (...)
                                  | (...)
                                  | (...);
                                  value: number;
                                  verified: boolean;
                              }[];
                              outputUrl: string
                              | null;
                              paidAt: string | null;
                              payoutStatus: "paid" | "progress" | "scheduled" | "hold";
                              proof:
                                  | { at: string; captures: number; url: string; verified: boolean }
                                  | null;
                              qa: string;
                              revisionsLeft: number;
                              usesVoice: boolean;
                              version: number;
                          }
                          | null;
                          orgId: string;
                          orgName: string;
                          pastOffers: {
                              at: string;
                              creatorId: string;
                              creatorName: string;
                              id: string;
                              note: string;
                              status: "withdrawn"
                              | "rejected"
                              | "expired";
                          }[];
                          payout: number
                          | null;
                          price: number | null;
                          productId: string;
                          stage:
                              | "done"
                              | "accepted"
                              | "storyboard"
                              | "cancelled"
                              | "matching"
                              | "offer"
                              | "producing"
                              | "creator_review"
                              | "advertiser_review"
                              | "approved"
                              | "published";
                          stageLabel: string;
                          storyboard: {
                              approved: | { at: string; by: string; no: number; version: number }
                              | null;
                              batch: number;
                              history: {
                                  at: string;
                                  by: string;
                                  detail: string;
                                  title: string;
                                  tone?: "done" | "warn";
                              }[];
                              notes: string[];
                              options: {
                                  cta: string;
                                  exposure: string;
                                  no: number;
                                  qa: { ok: boolean; text: string };
                                  scenes: { exposure?: ...; line: ...; time: ...; visual: ... }[];
                                  summary: string;
                                  title: string;
                                  version: number;
                              }[];
                              regenerationsLeft: number;
                              sample: "generating"
                              | "ready"
                              | "none";
                              sampleAudioUrl: string | null;
                              sampleUrl: string | null;
                              selected: number;
                              status: "failed" | "generating" | "ready";
                              versions: number[];
                          };
                          type: "AI"
                          | "Direct";
                          updatedAt: string;
                      },
                  >;
                  get: (
                      campaignId: string,
                  ) => Promise<
                      {
                          brief: {
                              ban: string;
                              channels: string[];
                              cta: string;
                              disclosure: string;
                              goal: string;
                              length: number;
                              message: string;
                              mustSay: string;
                              scene: string;
                              target: string;
                              tone: string;
                          };
                          cancelReason: string
                          | null;
                          code: string;
                          createdAt: string;
                          creator:
                              | {
                                  category: string;
                                  color: string;
                                  engagement: number;
                                  followers: number;
                                  handle: string;
                                  id: string;
                                  name: string;
                                  photoUrl: string
                                  | null;
                                  verified: boolean;
                              }
                              | null;
                          emoji: string;
                          id: string;
                          imageUrl: string
                          | null;
                          jobs: {
                              attempts: number;
                              createdAt: string;
                              credits: number;
                              error: string | null;
                              finishedAt: string | null;
                              id: string;
                              kind: "storyboard" | "revision" | "sample" | "final";
                              maxAttempts: number;
                              provider: string;
                              status:
                                  | "failed"
                                  | "done"
                                  | "queued"
                                  | "running"
                                  | "retry"
                                  | "blocked"
                                  | "cancelled";
                          }[];
                          name: string;
                          offer: | {
                              assets: string[];
                              blocker: string
                              | null;
                              channel: string;
                              creatorId: string;
                              expiresAt: string;
                              format: string;
                              id: string;
                              keep: string;
                              media: string[];
                              message: string;
                              portfolio: boolean;
                              postDate: string;
                              region: string;
                              rejectReason: string | null;
                              respondedAt: string | null;
                              rightsEnd: string;
                              rightsStart: string;
                              sentAt: string;
                              status: "withdrawn" | "sent" | "accepted" | "rejected" | "expired";
                              thread: {
                                  at: string;
                                  by: (...) | (...) | (...) | (...);
                                  name: string;
                                  tag?: (...) | (...);
                                  text: string;
                              }[];
                          }
                          | null;
                          order: | {
                              blocked: string
                              | null;
                              comments: {
                                  at: string;
                                  by: (...) | (...) | (...) | (...);
                                  name: string;
                                  tag?: (...) | (...);
                                  text: string;
                              }[];
                              confirmedAt: string;
                              creatorMetricsDone: boolean;
                              id: string;
                              metrics: {
                                  at: string;
                                  by: string;
                                  id: string;
                                  name: string;
                                  period: string;
                                  source: (...)
                                  | (...)
                                  | (...);
                                  value: number;
                                  verified: boolean;
                              }[];
                              outputUrl: string
                              | null;
                              paidAt: string | null;
                              payoutStatus: "paid" | "progress" | "scheduled" | "hold";
                              proof:
                                  | { at: string; captures: number; url: string; verified: boolean }
                                  | null;
                              qa: string;
                              revisionsLeft: number;
                              usesVoice: boolean;
                              version: number;
                          }
                          | null;
                          orgId: string;
                          orgName: string;
                          pastOffers: {
                              at: string;
                              creatorId: string;
                              creatorName: string;
                              id: string;
                              note: string;
                              status: "withdrawn"
                              | "rejected"
                              | "expired";
                          }[];
                          payout: number
                          | null;
                          price: number | null;
                          productId: string;
                          stage:
                              | "done"
                              | "accepted"
                              | "storyboard"
                              | "cancelled"
                              | "matching"
                              | "offer"
                              | "producing"
                              | "creator_review"
                              | "advertiser_review"
                              | "approved"
                              | "published";
                          stageLabel: string;
                          storyboard: {
                              approved: | { at: string; by: string; no: number; version: number }
                              | null;
                              batch: number;
                              history: {
                                  at: string;
                                  by: string;
                                  detail: string;
                                  title: string;
                                  tone?: "done" | "warn";
                              }[];
                              notes: string[];
                              options: {
                                  cta: string;
                                  exposure: string;
                                  no: number;
                                  qa: { ok: boolean; text: string };
                                  scenes: { exposure?: ...; line: ...; time: ...; visual: ... }[];
                                  summary: string;
                                  title: string;
                                  version: number;
                              }[];
                              regenerationsLeft: number;
                              sample: "generating"
                              | "ready"
                              | "none";
                              sampleAudioUrl: string | null;
                              sampleUrl: string | null;
                              selected: number;
                              status: "failed" | "generating" | "ready";
                              versions: number[];
                          };
                          type: "AI"
                          | "Direct";
                          updatedAt: string;
                      },
                  >;
                  list: (
                      params?: {
                          page?: number;
                          pageSize?: number;
                          q?: string;
                          stage?: (
                              | "done"
                              | "accepted"
                              | "storyboard"
                              | "cancelled"
                              | "matching"
                              | "offer"
                              | "producing"
                              | "creator_review"
                              | "advertiser_review"
                              | "approved"
                              | "published"
                          )[];
                      },
                  ) => Promise<
                      {
                          items: {
                              brief: {
                                  ban: string;
                                  channels: string[];
                                  cta: string;
                                  disclosure: string;
                                  goal: string;
                                  length: number;
                                  message: string;
                                  mustSay: string;
                                  scene: string;
                                  target: string;
                                  tone: string;
                              };
                              cancelReason: string
                              | null;
                              code: string;
                              createdAt: string;
                              creator:
                                  | {
                                      category: string;
                                      color: string;
                                      engagement: number;
                                      followers: number;
                                      handle: string;
                                      id: string;
                                      name: string;
                                      photoUrl: (...)
                                      | (...);
                                      verified: boolean;
                                  }
                                  | null;
                              emoji: string;
                              id: string;
                              imageUrl: string
                              | null;
                              jobs: {
                                  attempts: number;
                                  createdAt: string;
                                  credits: number;
                                  error: (...) | (...);
                                  finishedAt: (...) | (...);
                                  id: string;
                                  kind: (...) | (...) | (...) | (...);
                                  maxAttempts: number;
                                  provider: string;
                                  status: (...) | (...) | (...) | (...) | (...) | (...) | (...);
                              }[];
                              name: string;
                              offer: | {
                                  assets: (...)[];
                                  blocker: (...) | (...);
                                  channel: string;
                                  creatorId: string;
                                  expiresAt: string;
                                  format: string;
                                  id: string;
                                  keep: string;
                                  media: (...)[];
                                  message: string;
                                  portfolio: boolean;
                                  postDate: string;
                                  region: string;
                                  rejectReason: (...) | (...);
                                  respondedAt: (...) | (...);
                                  rightsEnd: string;
                                  rightsStart: string;
                                  sentAt: string;
                                  status: (...) | (...) | (...) | (...) | (...);
                                  thread: (...)[];
                              }
                              | null;
                              order: | {
                                  blocked: (...)
                                  | (...);
                                  comments: (...)[];
                                  confirmedAt: string;
                                  creatorMetricsDone: boolean;
                                  id: string;
                                  metrics: (...)[];
                                  outputUrl: (...) | (...);
                                  paidAt: (...) | (...);
                                  payoutStatus: (...) | (...) | (...) | (...);
                                  proof: (...) | (...);
                                  qa: string;
                                  revisionsLeft: number;
                                  usesVoice: boolean;
                                  version: number;
                              }
                              | null;
                              orgId: string;
                              orgName: string;
                              pastOffers: {
                                  at: string;
                                  creatorId: string;
                                  creatorName: string;
                                  id: string;
                                  note: string;
                                  status: (...)
                                  | (...)
                                  | (...);
                              }[];
                              payout: number
                              | null;
                              price: number | null;
                              productId: string;
                              stage:
                                  | "done"
                                  | "accepted"
                                  | "storyboard"
                                  | "cancelled"
                                  | "matching"
                                  | "offer"
                                  | "producing"
                                  | "creator_review"
                                  | "advertiser_review"
                                  | "approved"
                                  | "published";
                              stageLabel: string;
                              storyboard: {
                                  approved: { at: ...; by: ...; no: ...; version: ... }
                                  | null;
                                  batch: number;
                                  history: { at: ...; by: ...; detail: ...; title: ...; tone?: ... }[];
                                  notes: string[];
                                  options: {
                                      cta: ...;
                                      exposure: ...;
                                      no: ...;
                                      qa: ...;
                                      scenes: ...;
                                      summary: ...;
                                      title: ...;
                                      version: ...;
                                  }[];
                                  regenerationsLeft: number;
                                  sample: "generating"
                                  | "ready"
                                  | "none";
                                  sampleAudioUrl: string | null;
                                  sampleUrl: string | null;
                                  selected: number;
                                  status: "failed" | "generating" | "ready";
                                  versions: number[];
                              };
                              type: "AI"
                              | "Direct";
                              updatedAt: string;
                          }[];
                          page: number;
                          pageSize: number;
                          total: number;
                      },
                  >;
                  openDispute: (
                      campaignId: string,
                      input: { text: string; title: string },
                  ) => Promise<
                      {
                          brief: {
                              ban: string;
                              channels: string[];
                              cta: string;
                              disclosure: string;
                              goal: string;
                              length: number;
                              message: string;
                              mustSay: string;
                              scene: string;
                              target: string;
                              tone: string;
                          };
                          cancelReason: string
                          | null;
                          code: string;
                          createdAt: string;
                          creator:
                              | {
                                  category: string;
                                  color: string;
                                  engagement: number;
                                  followers: number;
                                  handle: string;
                                  id: string;
                                  name: string;
                                  photoUrl: string
                                  | null;
                                  verified: boolean;
                              }
                              | null;
                          emoji: string;
                          id: string;
                          imageUrl: string
                          | null;
                          jobs: {
                              attempts: number;
                              createdAt: string;
                              credits: number;
                              error: string | null;
                              finishedAt: string | null;
                              id: string;
                              kind: "storyboard" | "revision" | "sample" | "final";
                              maxAttempts: number;
                              provider: string;
                              status:
                                  | "failed"
                                  | "done"
                                  | "queued"
                                  | "running"
                                  | "retry"
                                  | "blocked"
                                  | "cancelled";
                          }[];
                          name: string;
                          offer: | {
                              assets: string[];
                              blocker: string
                              | null;
                              channel: string;
                              creatorId: string;
                              expiresAt: string;
                              format: string;
                              id: string;
                              keep: string;
                              media: string[];
                              message: string;
                              portfolio: boolean;
                              postDate: string;
                              region: string;
                              rejectReason: string | null;
                              respondedAt: string | null;
                              rightsEnd: string;
                              rightsStart: string;
                              sentAt: string;
                              status: "withdrawn" | "sent" | "accepted" | "rejected" | "expired";
                              thread: {
                                  at: string;
                                  by: (...) | (...) | (...) | (...);
                                  name: string;
                                  tag?: (...) | (...);
                                  text: string;
                              }[];
                          }
                          | null;
                          order: | {
                              blocked: string
                              | null;
                              comments: {
                                  at: string;
                                  by: (...) | (...) | (...) | (...);
                                  name: string;
                                  tag?: (...) | (...);
                                  text: string;
                              }[];
                              confirmedAt: string;
                              creatorMetricsDone: boolean;
                              id: string;
                              metrics: {
                                  at: string;
                                  by: string;
                                  id: string;
                                  name: string;
                                  period: string;
                                  source: (...)
                                  | (...)
                                  | (...);
                                  value: number;
                                  verified: boolean;
                              }[];
                              outputUrl: string
                              | null;
                              paidAt: string | null;
                              payoutStatus: "paid" | "progress" | "scheduled" | "hold";
                              proof:
                                  | { at: string; captures: number; url: string; verified: boolean }
                                  | null;
                              qa: string;
                              revisionsLeft: number;
                              usesVoice: boolean;
                              version: number;
                          }
                          | null;
                          orgId: string;
                          orgName: string;
                          pastOffers: {
                              at: string;
                              creatorId: string;
                              creatorName: string;
                              id: string;
                              note: string;
                              status: "withdrawn"
                              | "rejected"
                              | "expired";
                          }[];
                          payout: number
                          | null;
                          price: number | null;
                          productId: string;
                          stage:
                              | "done"
                              | "accepted"
                              | "storyboard"
                              | "cancelled"
                              | "matching"
                              | "offer"
                              | "producing"
                              | "creator_review"
                              | "advertiser_review"
                              | "approved"
                              | "published";
                          stageLabel: string;
                          storyboard: {
                              approved: | { at: string; by: string; no: number; version: number }
                              | null;
                              batch: number;
                              history: {
                                  at: string;
                                  by: string;
                                  detail: string;
                                  title: string;
                                  tone?: "done" | "warn";
                              }[];
                              notes: string[];
                              options: {
                                  cta: string;
                                  exposure: string;
                                  no: number;
                                  qa: { ok: boolean; text: string };
                                  scenes: { exposure?: ...; line: ...; time: ...; visual: ... }[];
                                  summary: string;
                                  title: string;
                                  version: number;
                              }[];
                              regenerationsLeft: number;
                              sample: "generating"
                              | "ready"
                              | "none";
                              sampleAudioUrl: string | null;
                              sampleUrl: string | null;
                              selected: number;
                              status: "failed" | "generating" | "ready";
                              versions: number[];
                          };
                          type: "AI"
                          | "Direct";
                          updatedAt: string;
                      },
                  >;
                  quote: (
                      campaignId: string,
                      params: { creatorId: string; extraMedia?: number },
                  ) => Promise<
                      {
                          ai: number;
                          charge: number;
                          commission: number;
                          fee: number;
                          ops: number;
                          payout: number;
                          rights: number;
                          total: number;
                          vat: number;
                      },
                  >;
                  regenerate: (
                      campaignId: string,
                  ) => Promise<
                      {
                          brief: {
                              ban: string;
                              channels: string[];
                              cta: string;
                              disclosure: string;
                              goal: string;
                              length: number;
                              message: string;
                              mustSay: string;
                              scene: string;
                              target: string;
                              tone: string;
                          };
                          cancelReason: string
                          | null;
                          code: string;
                          createdAt: string;
                          creator:
                              | {
                                  category: string;
                                  color: string;
                                  engagement: number;
                                  followers: number;
                                  handle: string;
                                  id: string;
                                  name: string;
                                  photoUrl: string
                                  | null;
                                  verified: boolean;
                              }
                              | null;
                          emoji: string;
                          id: string;
                          imageUrl: string
                          | null;
                          jobs: {
                              attempts: number;
                              createdAt: string;
                              credits: number;
                              error: string | null;
                              finishedAt: string | null;
                              id: string;
                              kind: "storyboard" | "revision" | "sample" | "final";
                              maxAttempts: number;
                              provider: string;
                              status:
                                  | "failed"
                                  | "done"
                                  | "queued"
                                  | "running"
                                  | "retry"
                                  | "blocked"
                                  | "cancelled";
                          }[];
                          name: string;
                          offer: | {
                              assets: string[];
                              blocker: string
                              | null;
                              channel: string;
                              creatorId: string;
                              expiresAt: string;
                              format: string;
                              id: string;
                              keep: string;
                              media: string[];
                              message: string;
                              portfolio: boolean;
                              postDate: string;
                              region: string;
                              rejectReason: string | null;
                              respondedAt: string | null;
                              rightsEnd: string;
                              rightsStart: string;
                              sentAt: string;
                              status: "withdrawn" | "sent" | "accepted" | "rejected" | "expired";
                              thread: {
                                  at: string;
                                  by: (...) | (...) | (...) | (...);
                                  name: string;
                                  tag?: (...) | (...);
                                  text: string;
                              }[];
                          }
                          | null;
                          order: | {
                              blocked: string
                              | null;
                              comments: {
                                  at: string;
                                  by: (...) | (...) | (...) | (...);
                                  name: string;
                                  tag?: (...) | (...);
                                  text: string;
                              }[];
                              confirmedAt: string;
                              creatorMetricsDone: boolean;
                              id: string;
                              metrics: {
                                  at: string;
                                  by: string;
                                  id: string;
                                  name: string;
                                  period: string;
                                  source: (...)
                                  | (...)
                                  | (...);
                                  value: number;
                                  verified: boolean;
                              }[];
                              outputUrl: string
                              | null;
                              paidAt: string | null;
                              payoutStatus: "paid" | "progress" | "scheduled" | "hold";
                              proof:
                                  | { at: string; captures: number; url: string; verified: boolean }
                                  | null;
                              qa: string;
                              revisionsLeft: number;
                              usesVoice: boolean;
                              version: number;
                          }
                          | null;
                          orgId: string;
                          orgName: string;
                          pastOffers: {
                              at: string;
                              creatorId: string;
                              creatorName: string;
                              id: string;
                              note: string;
                              status: "withdrawn"
                              | "rejected"
                              | "expired";
                          }[];
                          payout: number
                          | null;
                          price: number | null;
                          productId: string;
                          stage:
                              | "done"
                              | "accepted"
                              | "storyboard"
                              | "cancelled"
                              | "matching"
                              | "offer"
                              | "producing"
                              | "creator_review"
                              | "advertiser_review"
                              | "approved"
                              | "published";
                          stageLabel: string;
                          storyboard: {
                              approved: | { at: string; by: string; no: number; version: number }
                              | null;
                              batch: number;
                              history: {
                                  at: string;
                                  by: string;
                                  detail: string;
                                  title: string;
                                  tone?: "done" | "warn";
                              }[];
                              notes: string[];
                              options: {
                                  cta: string;
                                  exposure: string;
                                  no: number;
                                  qa: { ok: boolean; text: string };
                                  scenes: { exposure?: ...; line: ...; time: ...; visual: ... }[];
                                  summary: string;
                                  title: string;
                                  version: number;
                              }[];
                              regenerationsLeft: number;
                              sample: "generating"
                              | "ready"
                              | "none";
                              sampleAudioUrl: string | null;
                              sampleUrl: string | null;
                              selected: number;
                              status: "failed" | "generating" | "ready";
                              versions: number[];
                          };
                          type: "AI"
                          | "Direct";
                          updatedAt: string;
                      },
                  >;
                  replyOffer: (
                      campaignId: string,
                      text: string,
                  ) => Promise<
                      {
                          brief: {
                              ban: string;
                              channels: string[];
                              cta: string;
                              disclosure: string;
                              goal: string;
                              length: number;
                              message: string;
                              mustSay: string;
                              scene: string;
                              target: string;
                              tone: string;
                          };
                          cancelReason: string
                          | null;
                          code: string;
                          createdAt: string;
                          creator:
                              | {
                                  category: string;
                                  color: string;
                                  engagement: number;
                                  followers: number;
                                  handle: string;
                                  id: string;
                                  name: string;
                                  photoUrl: string
                                  | null;
                                  verified: boolean;
                              }
                              | null;
                          emoji: string;
                          id: string;
                          imageUrl: string
                          | null;
                          jobs: {
                              attempts: number;
                              createdAt: string;
                              credits: number;
                              error: string | null;
                              finishedAt: string | null;
                              id: string;
                              kind: "storyboard" | "revision" | "sample" | "final";
                              maxAttempts: number;
                              provider: string;
                              status:
                                  | "failed"
                                  | "done"
                                  | "queued"
                                  | "running"
                                  | "retry"
                                  | "blocked"
                                  | "cancelled";
                          }[];
                          name: string;
                          offer: | {
                              assets: string[];
                              blocker: string
                              | null;
                              channel: string;
                              creatorId: string;
                              expiresAt: string;
                              format: string;
                              id: string;
                              keep: string;
                              media: string[];
                              message: string;
                              portfolio: boolean;
                              postDate: string;
                              region: string;
                              rejectReason: string | null;
                              respondedAt: string | null;
                              rightsEnd: string;
                              rightsStart: string;
                              sentAt: string;
                              status: "withdrawn" | "sent" | "accepted" | "rejected" | "expired";
                              thread: {
                                  at: string;
                                  by: (...) | (...) | (...) | (...);
                                  name: string;
                                  tag?: (...) | (...);
                                  text: string;
                              }[];
                          }
                          | null;
                          order: | {
                              blocked: string
                              | null;
                              comments: {
                                  at: string;
                                  by: (...) | (...) | (...) | (...);
                                  name: string;
                                  tag?: (...) | (...);
                                  text: string;
                              }[];
                              confirmedAt: string;
                              creatorMetricsDone: boolean;
                              id: string;
                              metrics: {
                                  at: string;
                                  by: string;
                                  id: string;
                                  name: string;
                                  period: string;
                                  source: (...)
                                  | (...)
                                  | (...);
                                  value: number;
                                  verified: boolean;
                              }[];
                              outputUrl: string
                              | null;
                              paidAt: string | null;
                              payoutStatus: "paid" | "progress" | "scheduled" | "hold";
                              proof:
                                  | { at: string; captures: number; url: string; verified: boolean }
                                  | null;
                              qa: string;
                              revisionsLeft: number;
                              usesVoice: boolean;
                              version: number;
                          }
                          | null;
                          orgId: string;
                          orgName: string;
                          pastOffers: {
                              at: string;
                              creatorId: string;
                              creatorName: string;
                              id: string;
                              note: string;
                              status: "withdrawn"
                              | "rejected"
                              | "expired";
                          }[];
                          payout: number
                          | null;
                          price: number | null;
                          productId: string;
                          stage:
                              | "done"
                              | "accepted"
                              | "storyboard"
                              | "cancelled"
                              | "matching"
                              | "offer"
                              | "producing"
                              | "creator_review"
                              | "advertiser_review"
                              | "approved"
                              | "published";
                          stageLabel: string;
                          storyboard: {
                              approved: | { at: string; by: string; no: number; version: number }
                              | null;
                              batch: number;
                              history: {
                                  at: string;
                                  by: string;
                                  detail: string;
                                  title: string;
                                  tone?: "done" | "warn";
                              }[];
                              notes: string[];
                              options: {
                                  cta: string;
                                  exposure: string;
                                  no: number;
                                  qa: { ok: boolean; text: string };
                                  scenes: { exposure?: ...; line: ...; time: ...; visual: ... }[];
                                  summary: string;
                                  title: string;
                                  version: number;
                              }[];
                              regenerationsLeft: number;
                              sample: "generating"
                              | "ready"
                              | "none";
                              sampleAudioUrl: string | null;
                              sampleUrl: string | null;
                              selected: number;
                              status: "failed" | "generating" | "ready";
                              versions: number[];
                          };
                          type: "AI"
                          | "Direct";
                          updatedAt: string;
                      },
                  >;
                  requestOutputRevision: (
                      campaignId: string,
                      text: string,
                  ) => Promise<
                      {
                          brief: {
                              ban: string;
                              channels: string[];
                              cta: string;
                              disclosure: string;
                              goal: string;
                              length: number;
                              message: string;
                              mustSay: string;
                              scene: string;
                              target: string;
                              tone: string;
                          };
                          cancelReason: string
                          | null;
                          code: string;
                          createdAt: string;
                          creator:
                              | {
                                  category: string;
                                  color: string;
                                  engagement: number;
                                  followers: number;
                                  handle: string;
                                  id: string;
                                  name: string;
                                  photoUrl: string
                                  | null;
                                  verified: boolean;
                              }
                              | null;
                          emoji: string;
                          id: string;
                          imageUrl: string
                          | null;
                          jobs: {
                              attempts: number;
                              createdAt: string;
                              credits: number;
                              error: string | null;
                              finishedAt: string | null;
                              id: string;
                              kind: "storyboard" | "revision" | "sample" | "final";
                              maxAttempts: number;
                              provider: string;
                              status:
                                  | "failed"
                                  | "done"
                                  | "queued"
                                  | "running"
                                  | "retry"
                                  | "blocked"
                                  | "cancelled";
                          }[];
                          name: string;
                          offer: | {
                              assets: string[];
                              blocker: string
                              | null;
                              channel: string;
                              creatorId: string;
                              expiresAt: string;
                              format: string;
                              id: string;
                              keep: string;
                              media: string[];
                              message: string;
                              portfolio: boolean;
                              postDate: string;
                              region: string;
                              rejectReason: string | null;
                              respondedAt: string | null;
                              rightsEnd: string;
                              rightsStart: string;
                              sentAt: string;
                              status: "withdrawn" | "sent" | "accepted" | "rejected" | "expired";
                              thread: {
                                  at: string;
                                  by: (...) | (...) | (...) | (...);
                                  name: string;
                                  tag?: (...) | (...);
                                  text: string;
                              }[];
                          }
                          | null;
                          order: | {
                              blocked: string
                              | null;
                              comments: {
                                  at: string;
                                  by: (...) | (...) | (...) | (...);
                                  name: string;
                                  tag?: (...) | (...);
                                  text: string;
                              }[];
                              confirmedAt: string;
                              creatorMetricsDone: boolean;
                              id: string;
                              metrics: {
                                  at: string;
                                  by: string;
                                  id: string;
                                  name: string;
                                  period: string;
                                  source: (...)
                                  | (...)
                                  | (...);
                                  value: number;
                                  verified: boolean;
                              }[];
                              outputUrl: string
                              | null;
                              paidAt: string | null;
                              payoutStatus: "paid" | "progress" | "scheduled" | "hold";
                              proof:
                                  | { at: string; captures: number; url: string; verified: boolean }
                                  | null;
                              qa: string;
                              revisionsLeft: number;
                              usesVoice: boolean;
                              version: number;
                          }
                          | null;
                          orgId: string;
                          orgName: string;
                          pastOffers: {
                              at: string;
                              creatorId: string;
                              creatorName: string;
                              id: string;
                              note: string;
                              status: "withdrawn"
                              | "rejected"
                              | "expired";
                          }[];
                          payout: number
                          | null;
                          price: number | null;
                          productId: string;
                          stage:
                              | "done"
                              | "accepted"
                              | "storyboard"
                              | "cancelled"
                              | "matching"
                              | "offer"
                              | "producing"
                              | "creator_review"
                              | "advertiser_review"
                              | "approved"
                              | "published";
                          stageLabel: string;
                          storyboard: {
                              approved: | { at: string; by: string; no: number; version: number }
                              | null;
                              batch: number;
                              history: {
                                  at: string;
                                  by: string;
                                  detail: string;
                                  title: string;
                                  tone?: "done" | "warn";
                              }[];
                              notes: string[];
                              options: {
                                  cta: string;
                                  exposure: string;
                                  no: number;
                                  qa: { ok: boolean; text: string };
                                  scenes: { exposure?: ...; line: ...; time: ...; visual: ... }[];
                                  summary: string;
                                  title: string;
                                  version: number;
                              }[];
                              regenerationsLeft: number;
                              sample: "generating"
                              | "ready"
                              | "none";
                              sampleAudioUrl: string | null;
                              sampleUrl: string | null;
                              selected: number;
                              status: "failed" | "generating" | "ready";
                              versions: number[];
                          };
                          type: "AI"
                          | "Direct";
                          updatedAt: string;
                      },
                  >;
                  requestRefund: (
                      campaignId: string,
                      input: { amount?: number; reason: string },
                  ) => Promise<
                      {
                          brief: {
                              ban: string;
                              channels: string[];
                              cta: string;
                              disclosure: string;
                              goal: string;
                              length: number;
                              message: string;
                              mustSay: string;
                              scene: string;
                              target: string;
                              tone: string;
                          };
                          cancelReason: string
                          | null;
                          code: string;
                          createdAt: string;
                          creator:
                              | {
                                  category: string;
                                  color: string;
                                  engagement: number;
                                  followers: number;
                                  handle: string;
                                  id: string;
                                  name: string;
                                  photoUrl: string
                                  | null;
                                  verified: boolean;
                              }
                              | null;
                          emoji: string;
                          id: string;
                          imageUrl: string
                          | null;
                          jobs: {
                              attempts: number;
                              createdAt: string;
                              credits: number;
                              error: string | null;
                              finishedAt: string | null;
                              id: string;
                              kind: "storyboard" | "revision" | "sample" | "final";
                              maxAttempts: number;
                              provider: string;
                              status:
                                  | "failed"
                                  | "done"
                                  | "queued"
                                  | "running"
                                  | "retry"
                                  | "blocked"
                                  | "cancelled";
                          }[];
                          name: string;
                          offer: | {
                              assets: string[];
                              blocker: string
                              | null;
                              channel: string;
                              creatorId: string;
                              expiresAt: string;
                              format: string;
                              id: string;
                              keep: string;
                              media: string[];
                              message: string;
                              portfolio: boolean;
                              postDate: string;
                              region: string;
                              rejectReason: string | null;
                              respondedAt: string | null;
                              rightsEnd: string;
                              rightsStart: string;
                              sentAt: string;
                              status: "withdrawn" | "sent" | "accepted" | "rejected" | "expired";
                              thread: {
                                  at: string;
                                  by: (...) | (...) | (...) | (...);
                                  name: string;
                                  tag?: (...) | (...);
                                  text: string;
                              }[];
                          }
                          | null;
                          order: | {
                              blocked: string
                              | null;
                              comments: {
                                  at: string;
                                  by: (...) | (...) | (...) | (...);
                                  name: string;
                                  tag?: (...) | (...);
                                  text: string;
                              }[];
                              confirmedAt: string;
                              creatorMetricsDone: boolean;
                              id: string;
                              metrics: {
                                  at: string;
                                  by: string;
                                  id: string;
                                  name: string;
                                  period: string;
                                  source: (...)
                                  | (...)
                                  | (...);
                                  value: number;
                                  verified: boolean;
                              }[];
                              outputUrl: string
                              | null;
                              paidAt: string | null;
                              payoutStatus: "paid" | "progress" | "scheduled" | "hold";
                              proof:
                                  | { at: string; captures: number; url: string; verified: boolean }
                                  | null;
                              qa: string;
                              revisionsLeft: number;
                              usesVoice: boolean;
                              version: number;
                          }
                          | null;
                          orgId: string;
                          orgName: string;
                          pastOffers: {
                              at: string;
                              creatorId: string;
                              creatorName: string;
                              id: string;
                              note: string;
                              status: "withdrawn"
                              | "rejected"
                              | "expired";
                          }[];
                          payout: number
                          | null;
                          price: number | null;
                          productId: string;
                          stage:
                              | "done"
                              | "accepted"
                              | "storyboard"
                              | "cancelled"
                              | "matching"
                              | "offer"
                              | "producing"
                              | "creator_review"
                              | "advertiser_review"
                              | "approved"
                              | "published";
                          stageLabel: string;
                          storyboard: {
                              approved: | { at: string; by: string; no: number; version: number }
                              | null;
                              batch: number;
                              history: {
                                  at: string;
                                  by: string;
                                  detail: string;
                                  title: string;
                                  tone?: "done" | "warn";
                              }[];
                              notes: string[];
                              options: {
                                  cta: string;
                                  exposure: string;
                                  no: number;
                                  qa: { ok: boolean; text: string };
                                  scenes: { exposure?: ...; line: ...; time: ...; visual: ... }[];
                                  summary: string;
                                  title: string;
                                  version: number;
                              }[];
                              regenerationsLeft: number;
                              sample: "generating"
                              | "ready"
                              | "none";
                              sampleAudioUrl: string | null;
                              sampleUrl: string | null;
                              selected: number;
                              status: "failed" | "generating" | "ready";
                              versions: number[];
                          };
                          type: "AI"
                          | "Direct";
                          updatedAt: string;
                      },
                  >;
                  requestRevision: (
                      campaignId: string,
                      input: { no: number; note: string },
                  ) => Promise<
                      {
                          brief: {
                              ban: string;
                              channels: string[];
                              cta: string;
                              disclosure: string;
                              goal: string;
                              length: number;
                              message: string;
                              mustSay: string;
                              scene: string;
                              target: string;
                              tone: string;
                          };
                          cancelReason: string
                          | null;
                          code: string;
                          createdAt: string;
                          creator:
                              | {
                                  category: string;
                                  color: string;
                                  engagement: number;
                                  followers: number;
                                  handle: string;
                                  id: string;
                                  name: string;
                                  photoUrl: string
                                  | null;
                                  verified: boolean;
                              }
                              | null;
                          emoji: string;
                          id: string;
                          imageUrl: string
                          | null;
                          jobs: {
                              attempts: number;
                              createdAt: string;
                              credits: number;
                              error: string | null;
                              finishedAt: string | null;
                              id: string;
                              kind: "storyboard" | "revision" | "sample" | "final";
                              maxAttempts: number;
                              provider: string;
                              status:
                                  | "failed"
                                  | "done"
                                  | "queued"
                                  | "running"
                                  | "retry"
                                  | "blocked"
                                  | "cancelled";
                          }[];
                          name: string;
                          offer: | {
                              assets: string[];
                              blocker: string
                              | null;
                              channel: string;
                              creatorId: string;
                              expiresAt: string;
                              format: string;
                              id: string;
                              keep: string;
                              media: string[];
                              message: string;
                              portfolio: boolean;
                              postDate: string;
                              region: string;
                              rejectReason: string | null;
                              respondedAt: string | null;
                              rightsEnd: string;
                              rightsStart: string;
                              sentAt: string;
                              status: "withdrawn" | "sent" | "accepted" | "rejected" | "expired";
                              thread: {
                                  at: string;
                                  by: (...) | (...) | (...) | (...);
                                  name: string;
                                  tag?: (...) | (...);
                                  text: string;
                              }[];
                          }
                          | null;
                          order: | {
                              blocked: string
                              | null;
                              comments: {
                                  at: string;
                                  by: (...) | (...) | (...) | (...);
                                  name: string;
                                  tag?: (...) | (...);
                                  text: string;
                              }[];
                              confirmedAt: string;
                              creatorMetricsDone: boolean;
                              id: string;
                              metrics: {
                                  at: string;
                                  by: string;
                                  id: string;
                                  name: string;
                                  period: string;
                                  source: (...)
                                  | (...)
                                  | (...);
                                  value: number;
                                  verified: boolean;
                              }[];
                              outputUrl: string
                              | null;
                              paidAt: string | null;
                              payoutStatus: "paid" | "progress" | "scheduled" | "hold";
                              proof:
                                  | { at: string; captures: number; url: string; verified: boolean }
                                  | null;
                              qa: string;
                              revisionsLeft: number;
                              usesVoice: boolean;
                              version: number;
                          }
                          | null;
                          orgId: string;
                          orgName: string;
                          pastOffers: {
                              at: string;
                              creatorId: string;
                              creatorName: string;
                              id: string;
                              note: string;
                              status: "withdrawn"
                              | "rejected"
                              | "expired";
                          }[];
                          payout: number
                          | null;
                          price: number | null;
                          productId: string;
                          stage:
                              | "done"
                              | "accepted"
                              | "storyboard"
                              | "cancelled"
                              | "matching"
                              | "offer"
                              | "producing"
                              | "creator_review"
                              | "advertiser_review"
                              | "approved"
                              | "published";
                          stageLabel: string;
                          storyboard: {
                              approved: | { at: string; by: string; no: number; version: number }
                              | null;
                              batch: number;
                              history: {
                                  at: string;
                                  by: string;
                                  detail: string;
                                  title: string;
                                  tone?: "done" | "warn";
                              }[];
                              notes: string[];
                              options: {
                                  cta: string;
                                  exposure: string;
                                  no: number;
                                  qa: { ok: boolean; text: string };
                                  scenes: { exposure?: ...; line: ...; time: ...; visual: ... }[];
                                  summary: string;
                                  title: string;
                                  version: number;
                              }[];
                              regenerationsLeft: number;
                              sample: "generating"
                              | "ready"
                              | "none";
                              sampleAudioUrl: string | null;
                              sampleUrl: string | null;
                              selected: number;
                              status: "failed" | "generating" | "ready";
                              versions: number[];
                          };
                          type: "AI"
                          | "Direct";
                          updatedAt: string;
                      },
                  >;
                  requestSample: (
                      campaignId: string,
                  ) => Promise<
                      {
                          brief: {
                              ban: string;
                              channels: string[];
                              cta: string;
                              disclosure: string;
                              goal: string;
                              length: number;
                              message: string;
                              mustSay: string;
                              scene: string;
                              target: string;
                              tone: string;
                          };
                          cancelReason: string
                          | null;
                          code: string;
                          createdAt: string;
                          creator:
                              | {
                                  category: string;
                                  color: string;
                                  engagement: number;
                                  followers: number;
                                  handle: string;
                                  id: string;
                                  name: string;
                                  photoUrl: string
                                  | null;
                                  verified: boolean;
                              }
                              | null;
                          emoji: string;
                          id: string;
                          imageUrl: string
                          | null;
                          jobs: {
                              attempts: number;
                              createdAt: string;
                              credits: number;
                              error: string | null;
                              finishedAt: string | null;
                              id: string;
                              kind: "storyboard" | "revision" | "sample" | "final";
                              maxAttempts: number;
                              provider: string;
                              status:
                                  | "failed"
                                  | "done"
                                  | "queued"
                                  | "running"
                                  | "retry"
                                  | "blocked"
                                  | "cancelled";
                          }[];
                          name: string;
                          offer: | {
                              assets: string[];
                              blocker: string
                              | null;
                              channel: string;
                              creatorId: string;
                              expiresAt: string;
                              format: string;
                              id: string;
                              keep: string;
                              media: string[];
                              message: string;
                              portfolio: boolean;
                              postDate: string;
                              region: string;
                              rejectReason: string | null;
                              respondedAt: string | null;
                              rightsEnd: string;
                              rightsStart: string;
                              sentAt: string;
                              status: "withdrawn" | "sent" | "accepted" | "rejected" | "expired";
                              thread: {
                                  at: string;
                                  by: (...) | (...) | (...) | (...);
                                  name: string;
                                  tag?: (...) | (...);
                                  text: string;
                              }[];
                          }
                          | null;
                          order: | {
                              blocked: string
                              | null;
                              comments: {
                                  at: string;
                                  by: (...) | (...) | (...) | (...);
                                  name: string;
                                  tag?: (...) | (...);
                                  text: string;
                              }[];
                              confirmedAt: string;
                              creatorMetricsDone: boolean;
                              id: string;
                              metrics: {
                                  at: string;
                                  by: string;
                                  id: string;
                                  name: string;
                                  period: string;
                                  source: (...)
                                  | (...)
                                  | (...);
                                  value: number;
                                  verified: boolean;
                              }[];
                              outputUrl: string
                              | null;
                              paidAt: string | null;
                              payoutStatus: "paid" | "progress" | "scheduled" | "hold";
                              proof:
                                  | { at: string; captures: number; url: string; verified: boolean }
                                  | null;
                              qa: string;
                              revisionsLeft: number;
                              usesVoice: boolean;
                              version: number;
                          }
                          | null;
                          orgId: string;
                          orgName: string;
                          pastOffers: {
                              at: string;
                              creatorId: string;
                              creatorName: string;
                              id: string;
                              note: string;
                              status: "withdrawn"
                              | "rejected"
                              | "expired";
                          }[];
                          payout: number
                          | null;
                          price: number | null;
                          productId: string;
                          stage:
                              | "done"
                              | "accepted"
                              | "storyboard"
                              | "cancelled"
                              | "matching"
                              | "offer"
                              | "producing"
                              | "creator_review"
                              | "advertiser_review"
                              | "approved"
                              | "published";
                          stageLabel: string;
                          storyboard: {
                              approved: | { at: string; by: string; no: number; version: number }
                              | null;
                              batch: number;
                              history: {
                                  at: string;
                                  by: string;
                                  detail: string;
                                  title: string;
                                  tone?: "done" | "warn";
                              }[];
                              notes: string[];
                              options: {
                                  cta: string;
                                  exposure: string;
                                  no: number;
                                  qa: { ok: boolean; text: string };
                                  scenes: { exposure?: ...; line: ...; time: ...; visual: ... }[];
                                  summary: string;
                                  title: string;
                                  version: number;
                              }[];
                              regenerationsLeft: number;
                              sample: "generating"
                              | "ready"
                              | "none";
                              sampleAudioUrl: string | null;
                              sampleUrl: string | null;
                              selected: number;
                              status: "failed" | "generating" | "ready";
                              versions: number[];
                          };
                          type: "AI"
                          | "Direct";
                          updatedAt: string;
                      },
                  >;
                  selectStory: (
                      campaignId: string,
                      no: number,
                  ) => Promise<
                      {
                          brief: {
                              ban: string;
                              channels: string[];
                              cta: string;
                              disclosure: string;
                              goal: string;
                              length: number;
                              message: string;
                              mustSay: string;
                              scene: string;
                              target: string;
                              tone: string;
                          };
                          cancelReason: string
                          | null;
                          code: string;
                          createdAt: string;
                          creator:
                              | {
                                  category: string;
                                  color: string;
                                  engagement: number;
                                  followers: number;
                                  handle: string;
                                  id: string;
                                  name: string;
                                  photoUrl: string
                                  | null;
                                  verified: boolean;
                              }
                              | null;
                          emoji: string;
                          id: string;
                          imageUrl: string
                          | null;
                          jobs: {
                              attempts: number;
                              createdAt: string;
                              credits: number;
                              error: string | null;
                              finishedAt: string | null;
                              id: string;
                              kind: "storyboard" | "revision" | "sample" | "final";
                              maxAttempts: number;
                              provider: string;
                              status:
                                  | "failed"
                                  | "done"
                                  | "queued"
                                  | "running"
                                  | "retry"
                                  | "blocked"
                                  | "cancelled";
                          }[];
                          name: string;
                          offer: | {
                              assets: string[];
                              blocker: string
                              | null;
                              channel: string;
                              creatorId: string;
                              expiresAt: string;
                              format: string;
                              id: string;
                              keep: string;
                              media: string[];
                              message: string;
                              portfolio: boolean;
                              postDate: string;
                              region: string;
                              rejectReason: string | null;
                              respondedAt: string | null;
                              rightsEnd: string;
                              rightsStart: string;
                              sentAt: string;
                              status: "withdrawn" | "sent" | "accepted" | "rejected" | "expired";
                              thread: {
                                  at: string;
                                  by: (...) | (...) | (...) | (...);
                                  name: string;
                                  tag?: (...) | (...);
                                  text: string;
                              }[];
                          }
                          | null;
                          order: | {
                              blocked: string
                              | null;
                              comments: {
                                  at: string;
                                  by: (...) | (...) | (...) | (...);
                                  name: string;
                                  tag?: (...) | (...);
                                  text: string;
                              }[];
                              confirmedAt: string;
                              creatorMetricsDone: boolean;
                              id: string;
                              metrics: {
                                  at: string;
                                  by: string;
                                  id: string;
                                  name: string;
                                  period: string;
                                  source: (...)
                                  | (...)
                                  | (...);
                                  value: number;
                                  verified: boolean;
                              }[];
                              outputUrl: string
                              | null;
                              paidAt: string | null;
                              payoutStatus: "paid" | "progress" | "scheduled" | "hold";
                              proof:
                                  | { at: string; captures: number; url: string; verified: boolean }
                                  | null;
                              qa: string;
                              revisionsLeft: number;
                              usesVoice: boolean;
                              version: number;
                          }
                          | null;
                          orgId: string;
                          orgName: string;
                          pastOffers: {
                              at: string;
                              creatorId: string;
                              creatorName: string;
                              id: string;
                              note: string;
                              status: "withdrawn"
                              | "rejected"
                              | "expired";
                          }[];
                          payout: number
                          | null;
                          price: number | null;
                          productId: string;
                          stage:
                              | "done"
                              | "accepted"
                              | "storyboard"
                              | "cancelled"
                              | "matching"
                              | "offer"
                              | "producing"
                              | "creator_review"
                              | "advertiser_review"
                              | "approved"
                              | "published";
                          stageLabel: string;
                          storyboard: {
                              approved: | { at: string; by: string; no: number; version: number }
                              | null;
                              batch: number;
                              history: {
                                  at: string;
                                  by: string;
                                  detail: string;
                                  title: string;
                                  tone?: "done" | "warn";
                              }[];
                              notes: string[];
                              options: {
                                  cta: string;
                                  exposure: string;
                                  no: number;
                                  qa: { ok: boolean; text: string };
                                  scenes: { exposure?: ...; line: ...; time: ...; visual: ... }[];
                                  summary: string;
                                  title: string;
                                  version: number;
                              }[];
                              regenerationsLeft: number;
                              sample: "generating"
                              | "ready"
                              | "none";
                              sampleAudioUrl: string | null;
                              sampleUrl: string | null;
                              selected: number;
                              status: "failed" | "generating" | "ready";
                              versions: number[];
                          };
                          type: "AI"
                          | "Direct";
                          updatedAt: string;
                      },
                  >;
                  sendOffer: (
                      campaignId: string,
                      input: {
                          assets: string[];
                          channel: string;
                          creatorId: string;
                          format: string;
                          keep: string;
                          media: string[];
                          message: string;
                          portfolio: boolean;
                          postDate: string;
                          region: string;
                          rightsEnd: string;
                          rightsStart: string;
                      },
                  ) => Promise<
                      {
                          brief: {
                              ban: string;
                              channels: string[];
                              cta: string;
                              disclosure: string;
                              goal: string;
                              length: number;
                              message: string;
                              mustSay: string;
                              scene: string;
                              target: string;
                              tone: string;
                          };
                          cancelReason: string
                          | null;
                          code: string;
                          createdAt: string;
                          creator:
                              | {
                                  category: string;
                                  color: string;
                                  engagement: number;
                                  followers: number;
                                  handle: string;
                                  id: string;
                                  name: string;
                                  photoUrl: string
                                  | null;
                                  verified: boolean;
                              }
                              | null;
                          emoji: string;
                          id: string;
                          imageUrl: string
                          | null;
                          jobs: {
                              attempts: number;
                              createdAt: string;
                              credits: number;
                              error: string | null;
                              finishedAt: string | null;
                              id: string;
                              kind: "storyboard" | "revision" | "sample" | "final";
                              maxAttempts: number;
                              provider: string;
                              status:
                                  | "failed"
                                  | "done"
                                  | "queued"
                                  | "running"
                                  | "retry"
                                  | "blocked"
                                  | "cancelled";
                          }[];
                          name: string;
                          offer: | {
                              assets: string[];
                              blocker: string
                              | null;
                              channel: string;
                              creatorId: string;
                              expiresAt: string;
                              format: string;
                              id: string;
                              keep: string;
                              media: string[];
                              message: string;
                              portfolio: boolean;
                              postDate: string;
                              region: string;
                              rejectReason: string | null;
                              respondedAt: string | null;
                              rightsEnd: string;
                              rightsStart: string;
                              sentAt: string;
                              status: "withdrawn" | "sent" | "accepted" | "rejected" | "expired";
                              thread: {
                                  at: string;
                                  by: (...) | (...) | (...) | (...);
                                  name: string;
                                  tag?: (...) | (...);
                                  text: string;
                              }[];
                          }
                          | null;
                          order: | {
                              blocked: string
                              | null;
                              comments: {
                                  at: string;
                                  by: (...) | (...) | (...) | (...);
                                  name: string;
                                  tag?: (...) | (...);
                                  text: string;
                              }[];
                              confirmedAt: string;
                              creatorMetricsDone: boolean;
                              id: string;
                              metrics: {
                                  at: string;
                                  by: string;
                                  id: string;
                                  name: string;
                                  period: string;
                                  source: (...)
                                  | (...)
                                  | (...);
                                  value: number;
                                  verified: boolean;
                              }[];
                              outputUrl: string
                              | null;
                              paidAt: string | null;
                              payoutStatus: "paid" | "progress" | "scheduled" | "hold";
                              proof:
                                  | { at: string; captures: number; url: string; verified: boolean }
                                  | null;
                              qa: string;
                              revisionsLeft: number;
                              usesVoice: boolean;
                              version: number;
                          }
                          | null;
                          orgId: string;
                          orgName: string;
                          pastOffers: {
                              at: string;
                              creatorId: string;
                              creatorName: string;
                              id: string;
                              note: string;
                              status: "withdrawn"
                              | "rejected"
                              | "expired";
                          }[];
                          payout: number
                          | null;
                          price: number | null;
                          productId: string;
                          stage:
                              | "done"
                              | "accepted"
                              | "storyboard"
                              | "cancelled"
                              | "matching"
                              | "offer"
                              | "producing"
                              | "creator_review"
                              | "advertiser_review"
                              | "approved"
                              | "published";
                          stageLabel: string;
                          storyboard: {
                              approved: | { at: string; by: string; no: number; version: number }
                              | null;
                              batch: number;
                              history: {
                                  at: string;
                                  by: string;
                                  detail: string;
                                  title: string;
                                  tone?: "done" | "warn";
                              }[];
                              notes: string[];
                              options: {
                                  cta: string;
                                  exposure: string;
                                  no: number;
                                  qa: { ok: boolean; text: string };
                                  scenes: { exposure?: ...; line: ...; time: ...; visual: ... }[];
                                  summary: string;
                                  title: string;
                                  version: number;
                              }[];
                              regenerationsLeft: number;
                              sample: "generating"
                              | "ready"
                              | "none";
                              sampleAudioUrl: string | null;
                              sampleUrl: string | null;
                              selected: number;
                              status: "failed" | "generating" | "ready";
                              versions: number[];
                          };
                          type: "AI"
                          | "Direct";
                          updatedAt: string;
                      },
                  >;
                  withdrawOffer: (
                      campaignId: string,
                  ) => Promise<
                      {
                          brief: {
                              ban: string;
                              channels: string[];
                              cta: string;
                              disclosure: string;
                              goal: string;
                              length: number;
                              message: string;
                              mustSay: string;
                              scene: string;
                              target: string;
                              tone: string;
                          };
                          cancelReason: string
                          | null;
                          code: string;
                          createdAt: string;
                          creator:
                              | {
                                  category: string;
                                  color: string;
                                  engagement: number;
                                  followers: number;
                                  handle: string;
                                  id: string;
                                  name: string;
                                  photoUrl: string
                                  | null;
                                  verified: boolean;
                              }
                              | null;
                          emoji: string;
                          id: string;
                          imageUrl: string
                          | null;
                          jobs: {
                              attempts: number;
                              createdAt: string;
                              credits: number;
                              error: string | null;
                              finishedAt: string | null;
                              id: string;
                              kind: "storyboard" | "revision" | "sample" | "final";
                              maxAttempts: number;
                              provider: string;
                              status:
                                  | "failed"
                                  | "done"
                                  | "queued"
                                  | "running"
                                  | "retry"
                                  | "blocked"
                                  | "cancelled";
                          }[];
                          name: string;
                          offer: | {
                              assets: string[];
                              blocker: string
                              | null;
                              channel: string;
                              creatorId: string;
                              expiresAt: string;
                              format: string;
                              id: string;
                              keep: string;
                              media: string[];
                              message: string;
                              portfolio: boolean;
                              postDate: string;
                              region: string;
                              rejectReason: string | null;
                              respondedAt: string | null;
                              rightsEnd: string;
                              rightsStart: string;
                              sentAt: string;
                              status: "withdrawn" | "sent" | "accepted" | "rejected" | "expired";
                              thread: {
                                  at: string;
                                  by: (...) | (...) | (...) | (...);
                                  name: string;
                                  tag?: (...) | (...);
                                  text: string;
                              }[];
                          }
                          | null;
                          order: | {
                              blocked: string
                              | null;
                              comments: {
                                  at: string;
                                  by: (...) | (...) | (...) | (...);
                                  name: string;
                                  tag?: (...) | (...);
                                  text: string;
                              }[];
                              confirmedAt: string;
                              creatorMetricsDone: boolean;
                              id: string;
                              metrics: {
                                  at: string;
                                  by: string;
                                  id: string;
                                  name: string;
                                  period: string;
                                  source: (...)
                                  | (...)
                                  | (...);
                                  value: number;
                                  verified: boolean;
                              }[];
                              outputUrl: string
                              | null;
                              paidAt: string | null;
                              payoutStatus: "paid" | "progress" | "scheduled" | "hold";
                              proof:
                                  | { at: string; captures: number; url: string; verified: boolean }
                                  | null;
                              qa: string;
                              revisionsLeft: number;
                              usesVoice: boolean;
                              version: number;
                          }
                          | null;
                          orgId: string;
                          orgName: string;
                          pastOffers: {
                              at: string;
                              creatorId: string;
                              creatorName: string;
                              id: string;
                              note: string;
                              status: "withdrawn"
                              | "rejected"
                              | "expired";
                          }[];
                          payout: number
                          | null;
                          price: number | null;
                          productId: string;
                          stage:
                              | "done"
                              | "accepted"
                              | "storyboard"
                              | "cancelled"
                              | "matching"
                              | "offer"
                              | "producing"
                              | "creator_review"
                              | "advertiser_review"
                              | "approved"
                              | "published";
                          stageLabel: string;
                          storyboard: {
                              approved: | { at: string; by: string; no: number; version: number }
                              | null;
                              batch: number;
                              history: {
                                  at: string;
                                  by: string;
                                  detail: string;
                                  title: string;
                                  tone?: "done" | "warn";
                              }[];
                              notes: string[];
                              options: {
                                  cta: string;
                                  exposure: string;
                                  no: number;
                                  qa: { ok: boolean; text: string };
                                  scenes: { exposure?: ...; line: ...; time: ...; visual: ... }[];
                                  summary: string;
                                  title: string;
                                  version: number;
                              }[];
                              regenerationsLeft: number;
                              sample: "generating"
                              | "ready"
                              | "none";
                              sampleAudioUrl: string | null;
                              sampleUrl: string | null;
                              selected: number;
                              status: "failed" | "generating" | "ready";
                              versions: number[];
                          };
                          type: "AI"
                          | "Direct";
                          updatedAt: string;
                      },
                  >;
              };
              creator: {
                  acceptOffer: (
                      campaignId: string,
                  ) => Promise<
                      {
                          brief: {
                              ban: string;
                              channels: string[];
                              cta: string;
                              disclosure: string;
                              goal: string;
                              length: number;
                              message: string;
                              mustSay: string;
                              scene: string;
                              target: string;
                              tone: string;
                          };
                          cancelReason: string
                          | null;
                          code: string;
                          createdAt: string;
                          creator:
                              | {
                                  category: string;
                                  color: string;
                                  engagement: number;
                                  followers: number;
                                  handle: string;
                                  id: string;
                                  name: string;
                                  photoUrl: string
                                  | null;
                                  verified: boolean;
                              }
                              | null;
                          emoji: string;
                          id: string;
                          imageUrl: string
                          | null;
                          jobs: {
                              attempts: number;
                              createdAt: string;
                              credits: number;
                              error: string | null;
                              finishedAt: string | null;
                              id: string;
                              kind: "storyboard" | "revision" | "sample" | "final";
                              maxAttempts: number;
                              provider: string;
                              status:
                                  | "failed"
                                  | "done"
                                  | "queued"
                                  | "running"
                                  | "retry"
                                  | "blocked"
                                  | "cancelled";
                          }[];
                          name: string;
                          offer: | {
                              assets: string[];
                              blocker: string
                              | null;
                              channel: string;
                              creatorId: string;
                              expiresAt: string;
                              format: string;
                              id: string;
                              keep: string;
                              media: string[];
                              message: string;
                              portfolio: boolean;
                              postDate: string;
                              region: string;
                              rejectReason: string | null;
                              respondedAt: string | null;
                              rightsEnd: string;
                              rightsStart: string;
                              sentAt: string;
                              status: "withdrawn" | "sent" | "accepted" | "rejected" | "expired";
                              thread: {
                                  at: string;
                                  by: (...) | (...) | (...) | (...);
                                  name: string;
                                  tag?: (...) | (...);
                                  text: string;
                              }[];
                          }
                          | null;
                          order: | {
                              blocked: string
                              | null;
                              comments: {
                                  at: string;
                                  by: (...) | (...) | (...) | (...);
                                  name: string;
                                  tag?: (...) | (...);
                                  text: string;
                              }[];
                              confirmedAt: string;
                              creatorMetricsDone: boolean;
                              id: string;
                              metrics: {
                                  at: string;
                                  by: string;
                                  id: string;
                                  name: string;
                                  period: string;
                                  source: (...)
                                  | (...)
                                  | (...);
                                  value: number;
                                  verified: boolean;
                              }[];
                              outputUrl: string
                              | null;
                              paidAt: string | null;
                              payoutStatus: "paid" | "progress" | "scheduled" | "hold";
                              proof:
                                  | { at: string; captures: number; url: string; verified: boolean }
                                  | null;
                              qa: string;
                              revisionsLeft: number;
                              usesVoice: boolean;
                              version: number;
                          }
                          | null;
                          orgId: string;
                          orgName: string;
                          pastOffers: {
                              at: string;
                              creatorId: string;
                              creatorName: string;
                              id: string;
                              note: string;
                              status: "withdrawn"
                              | "rejected"
                              | "expired";
                          }[];
                          payout: number
                          | null;
                          price: number | null;
                          productId: string;
                          stage:
                              | "done"
                              | "accepted"
                              | "storyboard"
                              | "cancelled"
                              | "matching"
                              | "offer"
                              | "producing"
                              | "creator_review"
                              | "advertiser_review"
                              | "approved"
                              | "published";
                          stageLabel: string;
                          storyboard: {
                              approved: | { at: string; by: string; no: number; version: number }
                              | null;
                              batch: number;
                              history: {
                                  at: string;
                                  by: string;
                                  detail: string;
                                  title: string;
                                  tone?: "done" | "warn";
                              }[];
                              notes: string[];
                              options: {
                                  cta: string;
                                  exposure: string;
                                  no: number;
                                  qa: { ok: boolean; text: string };
                                  scenes: { exposure?: ...; line: ...; time: ...; visual: ... }[];
                                  summary: string;
                                  title: string;
                                  version: number;
                              }[];
                              regenerationsLeft: number;
                              sample: "generating"
                              | "ready"
                              | "none";
                              sampleAudioUrl: string | null;
                              sampleUrl: string | null;
                              selected: number;
                              status: "failed" | "generating" | "ready";
                              versions: number[];
                          };
                          type: "AI"
                          | "Direct";
                          updatedAt: string;
                      },
                  >;
                  addSocial: (
                      input: { handle: string; mode: "api" | "manual"; platform: string },
                  ) => Promise<
                      {
                          accounts: {
                              handle: string;
                              id: string;
                              lastSync: string
                              | null;
                              mode: "api" | "manual";
                              platform: string;
                              status: "pending" | "connected" | "disconnected";
                              tokenExpiry: string | null;
                          }[];
                          snapshots: {
                              at: string;
                              id: string;
                              metric: string;
                              period: string;
                              platform: string;
                              source: string;
                              status: "pending"
                              | "rejected"
                              | "confirmed";
                              unit: string;
                              value: string;
                          }[];
                      },
                  >;
                  approveOutput: (
                      campaignId: string,
                      text?: string,
                  ) => Promise<
                      {
                          brief: {
                              ban: string;
                              channels: string[];
                              cta: string;
                              disclosure: string;
                              goal: string;
                              length: number;
                              message: string;
                              mustSay: string;
                              scene: string;
                              target: string;
                              tone: string;
                          };
                          cancelReason: string
                          | null;
                          code: string;
                          createdAt: string;
                          creator:
                              | {
                                  category: string;
                                  color: string;
                                  engagement: number;
                                  followers: number;
                                  handle: string;
                                  id: string;
                                  name: string;
                                  photoUrl: string
                                  | null;
                                  verified: boolean;
                              }
                              | null;
                          emoji: string;
                          id: string;
                          imageUrl: string
                          | null;
                          jobs: {
                              attempts: number;
                              createdAt: string;
                              credits: number;
                              error: string | null;
                              finishedAt: string | null;
                              id: string;
                              kind: "storyboard" | "revision" | "sample" | "final";
                              maxAttempts: number;
                              provider: string;
                              status:
                                  | "failed"
                                  | "done"
                                  | "queued"
                                  | "running"
                                  | "retry"
                                  | "blocked"
                                  | "cancelled";
                          }[];
                          name: string;
                          offer: | {
                              assets: string[];
                              blocker: string
                              | null;
                              channel: string;
                              creatorId: string;
                              expiresAt: string;
                              format: string;
                              id: string;
                              keep: string;
                              media: string[];
                              message: string;
                              portfolio: boolean;
                              postDate: string;
                              region: string;
                              rejectReason: string | null;
                              respondedAt: string | null;
                              rightsEnd: string;
                              rightsStart: string;
                              sentAt: string;
                              status: "withdrawn" | "sent" | "accepted" | "rejected" | "expired";
                              thread: {
                                  at: string;
                                  by: (...) | (...) | (...) | (...);
                                  name: string;
                                  tag?: (...) | (...);
                                  text: string;
                              }[];
                          }
                          | null;
                          order: | {
                              blocked: string
                              | null;
                              comments: {
                                  at: string;
                                  by: (...) | (...) | (...) | (...);
                                  name: string;
                                  tag?: (...) | (...);
                                  text: string;
                              }[];
                              confirmedAt: string;
                              creatorMetricsDone: boolean;
                              id: string;
                              metrics: {
                                  at: string;
                                  by: string;
                                  id: string;
                                  name: string;
                                  period: string;
                                  source: (...)
                                  | (...)
                                  | (...);
                                  value: number;
                                  verified: boolean;
                              }[];
                              outputUrl: string
                              | null;
                              paidAt: string | null;
                              payoutStatus: "paid" | "progress" | "scheduled" | "hold";
                              proof:
                                  | { at: string; captures: number; url: string; verified: boolean }
                                  | null;
                              qa: string;
                              revisionsLeft: number;
                              usesVoice: boolean;
                              version: number;
                          }
                          | null;
                          orgId: string;
                          orgName: string;
                          pastOffers: {
                              at: string;
                              creatorId: string;
                              creatorName: string;
                              id: string;
                              note: string;
                              status: "withdrawn"
                              | "rejected"
                              | "expired";
                          }[];
                          payout: number
                          | null;
                          price: number | null;
                          productId: string;
                          stage:
                              | "done"
                              | "accepted"
                              | "storyboard"
                              | "cancelled"
                              | "matching"
                              | "offer"
                              | "producing"
                              | "creator_review"
                              | "advertiser_review"
                              | "approved"
                              | "published";
                          stageLabel: string;
                          storyboard: {
                              approved: | { at: string; by: string; no: number; version: number }
                              | null;
                              batch: number;
                              history: {
                                  at: string;
                                  by: string;
                                  detail: string;
                                  title: string;
                                  tone?: "done" | "warn";
                              }[];
                              notes: string[];
                              options: {
                                  cta: string;
                                  exposure: string;
                                  no: number;
                                  qa: { ok: boolean; text: string };
                                  scenes: { exposure?: ...; line: ...; time: ...; visual: ... }[];
                                  summary: string;
                                  title: string;
                                  version: number;
                              }[];
                              regenerationsLeft: number;
                              sample: "generating"
                              | "ready"
                              | "none";
                              sampleAudioUrl: string | null;
                              sampleUrl: string | null;
                              selected: number;
                              status: "failed" | "generating" | "ready";
                              versions: number[];
                          };
                          type: "AI"
                          | "Direct";
                          updatedAt: string;
                      },
                  >;
                  assetBoard: (
                      assetId: string,
                  ) => Promise<{ expiresInMinutes: number; url: string }>;
                  assets: () => Promise<
                      {
                          boardAt: string
                          | null;
                          boardStatus: "pending" | "failed" | "ready" | "none";
                          consent:
                              | {
                                  doc: string;
                                  end: string;
                                  issueResolved: string
                                  | null;
                                  media: string[];
                                  paid: boolean;
                                  portfolio: boolean;
                                  purpose: string;
                                  region: string;
                                  revokedAt: string | null;
                                  revokeReason: string | null;
                                  secondary: boolean;
                                  showcase: boolean;
                                  signedAt: string;
                                  start: string;
                                  status: "active" | "suspended" | "expired" | "revoked";
                              }
                              | null;
                          desc: string;
                          destroyAt: string
                          | null;
                          hasFile: boolean;
                          id: string;
                          kind: "face" | "voice" | "ref";
                          label: string;
                          replaced: boolean;
                          review: "pending" | "rejected" | "approved" | "needs";
                          uploadedAt: string;
                          version: number;
                      }[],
                  >;
                  campaign: (
                      campaignId: string,
                  ) => Promise<
                      {
                          brief: {
                              ban: string;
                              channels: string[];
                              cta: string;
                              disclosure: string;
                              goal: string;
                              length: number;
                              message: string;
                              mustSay: string;
                              scene: string;
                              target: string;
                              tone: string;
                          };
                          cancelReason: string
                          | null;
                          code: string;
                          createdAt: string;
                          creator:
                              | {
                                  category: string;
                                  color: string;
                                  engagement: number;
                                  followers: number;
                                  handle: string;
                                  id: string;
                                  name: string;
                                  photoUrl: string
                                  | null;
                                  verified: boolean;
                              }
                              | null;
                          emoji: string;
                          id: string;
                          imageUrl: string
                          | null;
                          jobs: {
                              attempts: number;
                              createdAt: string;
                              credits: number;
                              error: string | null;
                              finishedAt: string | null;
                              id: string;
                              kind: "storyboard" | "revision" | "sample" | "final";
                              maxAttempts: number;
                              provider: string;
                              status:
                                  | "failed"
                                  | "done"
                                  | "queued"
                                  | "running"
                                  | "retry"
                                  | "blocked"
                                  | "cancelled";
                          }[];
                          name: string;
                          offer: | {
                              assets: string[];
                              blocker: string
                              | null;
                              channel: string;
                              creatorId: string;
                              expiresAt: string;
                              format: string;
                              id: string;
                              keep: string;
                              media: string[];
                              message: string;
                              portfolio: boolean;
                              postDate: string;
                              region: string;
                              rejectReason: string | null;
                              respondedAt: string | null;
                              rightsEnd: string;
                              rightsStart: string;
                              sentAt: string;
                              status: "withdrawn" | "sent" | "accepted" | "rejected" | "expired";
                              thread: {
                                  at: string;
                                  by: (...) | (...) | (...) | (...);
                                  name: string;
                                  tag?: (...) | (...);
                                  text: string;
                              }[];
                          }
                          | null;
                          order: | {
                              blocked: string
                              | null;
                              comments: {
                                  at: string;
                                  by: (...) | (...) | (...) | (...);
                                  name: string;
                                  tag?: (...) | (...);
                                  text: string;
                              }[];
                              confirmedAt: string;
                              creatorMetricsDone: boolean;
                              id: string;
                              metrics: {
                                  at: string;
                                  by: string;
                                  id: string;
                                  name: string;
                                  period: string;
                                  source: (...)
                                  | (...)
                                  | (...);
                                  value: number;
                                  verified: boolean;
                              }[];
                              outputUrl: string
                              | null;
                              paidAt: string | null;
                              payoutStatus: "paid" | "progress" | "scheduled" | "hold";
                              proof:
                                  | { at: string; captures: number; url: string; verified: boolean }
                                  | null;
                              qa: string;
                              revisionsLeft: number;
                              usesVoice: boolean;
                              version: number;
                          }
                          | null;
                          orgId: string;
                          orgName: string;
                          pastOffers: {
                              at: string;
                              creatorId: string;
                              creatorName: string;
                              id: string;
                              note: string;
                              status: "withdrawn"
                              | "rejected"
                              | "expired";
                          }[];
                          payout: number
                          | null;
                          price: number | null;
                          productId: string;
                          stage:
                              | "done"
                              | "accepted"
                              | "storyboard"
                              | "cancelled"
                              | "matching"
                              | "offer"
                              | "producing"
                              | "creator_review"
                              | "advertiser_review"
                              | "approved"
                              | "published";
                          stageLabel: string;
                          storyboard: {
                              approved: | { at: string; by: string; no: number; version: number }
                              | null;
                              batch: number;
                              history: {
                                  at: string;
                                  by: string;
                                  detail: string;
                                  title: string;
                                  tone?: "done" | "warn";
                              }[];
                              notes: string[];
                              options: {
                                  cta: string;
                                  exposure: string;
                                  no: number;
                                  qa: { ok: boolean; text: string };
                                  scenes: { exposure?: ...; line: ...; time: ...; visual: ... }[];
                                  summary: string;
                                  title: string;
                                  version: number;
                              }[];
                              regenerationsLeft: number;
                              sample: "generating"
                              | "ready"
                              | "none";
                              sampleAudioUrl: string | null;
                              sampleUrl: string | null;
                              selected: number;
                              status: "failed" | "generating" | "ready";
                              versions: number[];
                          };
                          type: "AI"
                          | "Direct";
                          updatedAt: string;
                      },
                  >;
                  campaigns: (
                      params?: {
                          page?: number;
                          pageSize?: number;
                          q?: string;
                          stage?: (
                              | "done"
                              | "accepted"
                              | "storyboard"
                              | "cancelled"
                              | "matching"
                              | "offer"
                              | "producing"
                              | "creator_review"
                              | "advertiser_review"
                              | "approved"
                              | "published"
                          )[];
                      },
                  ) => Promise<
                      {
                          items: {
                              brief: {
                                  ban: string;
                                  channels: string[];
                                  cta: string;
                                  disclosure: string;
                                  goal: string;
                                  length: number;
                                  message: string;
                                  mustSay: string;
                                  scene: string;
                                  target: string;
                                  tone: string;
                              };
                              cancelReason: string
                              | null;
                              code: string;
                              createdAt: string;
                              creator:
                                  | {
                                      category: string;
                                      color: string;
                                      engagement: number;
                                      followers: number;
                                      handle: string;
                                      id: string;
                                      name: string;
                                      photoUrl: (...)
                                      | (...);
                                      verified: boolean;
                                  }
                                  | null;
                              emoji: string;
                              id: string;
                              imageUrl: string
                              | null;
                              jobs: {
                                  attempts: number;
                                  createdAt: string;
                                  credits: number;
                                  error: (...) | (...);
                                  finishedAt: (...) | (...);
                                  id: string;
                                  kind: (...) | (...) | (...) | (...);
                                  maxAttempts: number;
                                  provider: string;
                                  status: (...) | (...) | (...) | (...) | (...) | (...) | (...);
                              }[];
                              name: string;
                              offer: | {
                                  assets: (...)[];
                                  blocker: (...) | (...);
                                  channel: string;
                                  creatorId: string;
                                  expiresAt: string;
                                  format: string;
                                  id: string;
                                  keep: string;
                                  media: (...)[];
                                  message: string;
                                  portfolio: boolean;
                                  postDate: string;
                                  region: string;
                                  rejectReason: (...) | (...);
                                  respondedAt: (...) | (...);
                                  rightsEnd: string;
                                  rightsStart: string;
                                  sentAt: string;
                                  status: (...) | (...) | (...) | (...) | (...);
                                  thread: (...)[];
                              }
                              | null;
                              order: | {
                                  blocked: (...)
                                  | (...);
                                  comments: (...)[];
                                  confirmedAt: string;
                                  creatorMetricsDone: boolean;
                                  id: string;
                                  metrics: (...)[];
                                  outputUrl: (...) | (...);
                                  paidAt: (...) | (...);
                                  payoutStatus: (...) | (...) | (...) | (...);
                                  proof: (...) | (...);
                                  qa: string;
                                  revisionsLeft: number;
                                  usesVoice: boolean;
                                  version: number;
                              }
                              | null;
                              orgId: string;
                              orgName: string;
                              pastOffers: {
                                  at: string;
                                  creatorId: string;
                                  creatorName: string;
                                  id: string;
                                  note: string;
                                  status: (...)
                                  | (...)
                                  | (...);
                              }[];
                              payout: number
                              | null;
                              price: number | null;
                              productId: string;
                              stage:
                                  | "done"
                                  | "accepted"
                                  | "storyboard"
                                  | "cancelled"
                                  | "matching"
                                  | "offer"
                                  | "producing"
                                  | "creator_review"
                                  | "advertiser_review"
                                  | "approved"
                                  | "published";
                              stageLabel: string;
                              storyboard: {
                                  approved: { at: ...; by: ...; no: ...; version: ... }
                                  | null;
                                  batch: number;
                                  history: { at: ...; by: ...; detail: ...; title: ...; tone?: ... }[];
                                  notes: string[];
                                  options: {
                                      cta: ...;
                                      exposure: ...;
                                      no: ...;
                                      qa: ...;
                                      scenes: ...;
                                      summary: ...;
                                      title: ...;
                                      version: ...;
                                  }[];
                                  regenerationsLeft: number;
                                  sample: "generating"
                                  | "ready"
                                  | "none";
                                  sampleAudioUrl: string | null;
                                  sampleUrl: string | null;
                                  selected: number;
                                  status: "failed" | "generating" | "ready";
                                  versions: number[];
                              };
                              type: "AI"
                              | "Direct";
                              updatedAt: string;
                          }[];
                          page: number;
                          pageSize: number;
                          total: number;
                      },
                  >;
                  comment: (
                      campaignId: string,
                      input: { tag?: string; text: string },
                  ) => Promise<
                      {
                          brief: {
                              ban: string;
                              channels: string[];
                              cta: string;
                              disclosure: string;
                              goal: string;
                              length: number;
                              message: string;
                              mustSay: string;
                              scene: string;
                              target: string;
                              tone: string;
                          };
                          cancelReason: string
                          | null;
                          code: string;
                          createdAt: string;
                          creator:
                              | {
                                  category: string;
                                  color: string;
                                  engagement: number;
                                  followers: number;
                                  handle: string;
                                  id: string;
                                  name: string;
                                  photoUrl: string
                                  | null;
                                  verified: boolean;
                              }
                              | null;
                          emoji: string;
                          id: string;
                          imageUrl: string
                          | null;
                          jobs: {
                              attempts: number;
                              createdAt: string;
                              credits: number;
                              error: string | null;
                              finishedAt: string | null;
                              id: string;
                              kind: "storyboard" | "revision" | "sample" | "final";
                              maxAttempts: number;
                              provider: string;
                              status:
                                  | "failed"
                                  | "done"
                                  | "queued"
                                  | "running"
                                  | "retry"
                                  | "blocked"
                                  | "cancelled";
                          }[];
                          name: string;
                          offer: | {
                              assets: string[];
                              blocker: string
                              | null;
                              channel: string;
                              creatorId: string;
                              expiresAt: string;
                              format: string;
                              id: string;
                              keep: string;
                              media: string[];
                              message: string;
                              portfolio: boolean;
                              postDate: string;
                              region: string;
                              rejectReason: string | null;
                              respondedAt: string | null;
                              rightsEnd: string;
                              rightsStart: string;
                              sentAt: string;
                              status: "withdrawn" | "sent" | "accepted" | "rejected" | "expired";
                              thread: {
                                  at: string;
                                  by: (...) | (...) | (...) | (...);
                                  name: string;
                                  tag?: (...) | (...);
                                  text: string;
                              }[];
                          }
                          | null;
                          order: | {
                              blocked: string
                              | null;
                              comments: {
                                  at: string;
                                  by: (...) | (...) | (...) | (...);
                                  name: string;
                                  tag?: (...) | (...);
                                  text: string;
                              }[];
                              confirmedAt: string;
                              creatorMetricsDone: boolean;
                              id: string;
                              metrics: {
                                  at: string;
                                  by: string;
                                  id: string;
                                  name: string;
                                  period: string;
                                  source: (...)
                                  | (...)
                                  | (...);
                                  value: number;
                                  verified: boolean;
                              }[];
                              outputUrl: string
                              | null;
                              paidAt: string | null;
                              payoutStatus: "paid" | "progress" | "scheduled" | "hold";
                              proof:
                                  | { at: string; captures: number; url: string; verified: boolean }
                                  | null;
                              qa: string;
                              revisionsLeft: number;
                              usesVoice: boolean;
                              version: number;
                          }
                          | null;
                          orgId: string;
                          orgName: string;
                          pastOffers: {
                              at: string;
                              creatorId: string;
                              creatorName: string;
                              id: string;
                              note: string;
                              status: "withdrawn"
                              | "rejected"
                              | "expired";
                          }[];
                          payout: number
                          | null;
                          price: number | null;
                          productId: string;
                          stage:
                              | "done"
                              | "accepted"
                              | "storyboard"
                              | "cancelled"
                              | "matching"
                              | "offer"
                              | "producing"
                              | "creator_review"
                              | "advertiser_review"
                              | "approved"
                              | "published";
                          stageLabel: string;
                          storyboard: {
                              approved: | { at: string; by: string; no: number; version: number }
                              | null;
                              batch: number;
                              history: {
                                  at: string;
                                  by: string;
                                  detail: string;
                                  title: string;
                                  tone?: "done" | "warn";
                              }[];
                              notes: string[];
                              options: {
                                  cta: string;
                                  exposure: string;
                                  no: number;
                                  qa: { ok: boolean; text: string };
                                  scenes: { exposure?: ...; line: ...; time: ...; visual: ... }[];
                                  summary: string;
                                  title: string;
                                  version: number;
                              }[];
                              regenerationsLeft: number;
                              sample: "generating"
                              | "ready"
                              | "none";
                              sampleAudioUrl: string | null;
                              sampleUrl: string | null;
                              selected: number;
                              status: "failed" | "generating" | "ready";
                              versions: number[];
                          };
                          type: "AI"
                          | "Direct";
                          updatedAt: string;
                      },
                  >;
                  disconnectSocial: (
                      socialId: string,
                  ) => Promise<
                      {
                          accounts: {
                              handle: string;
                              id: string;
                              lastSync: string
                              | null;
                              mode: "api" | "manual";
                              platform: string;
                              status: "pending" | "connected" | "disconnected";
                              tokenExpiry: string | null;
                          }[];
                          snapshots: {
                              at: string;
                              id: string;
                              metric: string;
                              period: string;
                              platform: string;
                              source: string;
                              status: "pending"
                              | "rejected"
                              | "confirmed";
                              unit: string;
                              value: string;
                          }[];
                      },
                  >;
                  offers: () => Promise<
                      {
                          brief: {
                              ban: string;
                              channels: string[];
                              cta: string;
                              disclosure: string;
                              goal: string;
                              length: number;
                              message: string;
                              mustSay: string;
                              scene: string;
                              target: string;
                              tone: string;
                          };
                          cancelReason: string
                          | null;
                          code: string;
                          createdAt: string;
                          creator:
                              | {
                                  category: string;
                                  color: string;
                                  engagement: number;
                                  followers: number;
                                  handle: string;
                                  id: string;
                                  name: string;
                                  photoUrl: string
                                  | null;
                                  verified: boolean;
                              }
                              | null;
                          emoji: string;
                          id: string;
                          imageUrl: string
                          | null;
                          jobs: {
                              attempts: number;
                              createdAt: string;
                              credits: number;
                              error: string | null;
                              finishedAt: string | null;
                              id: string;
                              kind: "storyboard" | "revision" | "sample" | "final";
                              maxAttempts: number;
                              provider: string;
                              status:
                                  | "failed"
                                  | "done"
                                  | "queued"
                                  | "running"
                                  | "retry"
                                  | "blocked"
                                  | "cancelled";
                          }[];
                          name: string;
                          offer: | {
                              assets: string[];
                              blocker: string
                              | null;
                              channel: string;
                              creatorId: string;
                              expiresAt: string;
                              format: string;
                              id: string;
                              keep: string;
                              media: string[];
                              message: string;
                              portfolio: boolean;
                              postDate: string;
                              region: string;
                              rejectReason: string | null;
                              respondedAt: string | null;
                              rightsEnd: string;
                              rightsStart: string;
                              sentAt: string;
                              status: "withdrawn" | "sent" | "accepted" | "rejected" | "expired";
                              thread: { at: ...; by: ...; name: ...; tag?: ...; text: ... }[];
                          }
                          | null;
                          order: | {
                              blocked: string
                              | null;
                              comments: { at: ...; by: ...; name: ...; tag?: ...; text: ... }[];
                              confirmedAt: string;
                              creatorMetricsDone: boolean;
                              id: string;
                              metrics: {
                                  at: ...;
                                  by: ...;
                                  id: ...;
                                  name: ...;
                                  period: ...;
                                  source: ...;
                                  value: ...;
                                  verified: ...;
                              }[];
                              outputUrl: string
                              | null;
                              paidAt: string | null;
                              payoutStatus: "paid" | "progress" | "scheduled" | "hold";
                              proof: { at: ...; captures: ...; url: ...; verified: ... } | null;
                              qa: string;
                              revisionsLeft: number;
                              usesVoice: boolean;
                              version: number;
                          }
                          | null;
                          orgId: string;
                          orgName: string;
                          pastOffers: {
                              at: string;
                              creatorId: string;
                              creatorName: string;
                              id: string;
                              note: string;
                              status: "withdrawn"
                              | "rejected"
                              | "expired";
                          }[];
                          payout: number
                          | null;
                          price: number | null;
                          productId: string;
                          stage:
                              | "done"
                              | "accepted"
                              | "storyboard"
                              | "cancelled"
                              | "matching"
                              | "offer"
                              | "producing"
                              | "creator_review"
                              | "advertiser_review"
                              | "approved"
                              | "published";
                          stageLabel: string;
                          storyboard: {
                              approved: | { at: string; by: string; no: number; version: number }
                              | null;
                              batch: number;
                              history: {
                                  at: string;
                                  by: string;
                                  detail: string;
                                  title: string;
                                  tone?: (...) | (...) | (...);
                              }[];
                              notes: string[];
                              options: {
                                  cta: string;
                                  exposure: string;
                                  no: number;
                                  qa: { ok: ...; text: ... };
                                  scenes: (...)[];
                                  summary: string;
                                  title: string;
                                  version: number;
                              }[];
                              regenerationsLeft: number;
                              sample: "generating"
                              | "ready"
                              | "none";
                              sampleAudioUrl: string | null;
                              sampleUrl: string | null;
                              selected: number;
                              status: "failed" | "generating" | "ready";
                              versions: number[];
                          };
                          type: "AI"
                          | "Direct";
                          updatedAt: string;
                      }[],
                  >;
                  openDispute: (
                      campaignId: string,
                      input: { text: string; title: string },
                  ) => Promise<
                      {
                          brief: {
                              ban: string;
                              channels: string[];
                              cta: string;
                              disclosure: string;
                              goal: string;
                              length: number;
                              message: string;
                              mustSay: string;
                              scene: string;
                              target: string;
                              tone: string;
                          };
                          cancelReason: string
                          | null;
                          code: string;
                          createdAt: string;
                          creator:
                              | {
                                  category: string;
                                  color: string;
                                  engagement: number;
                                  followers: number;
                                  handle: string;
                                  id: string;
                                  name: string;
                                  photoUrl: string
                                  | null;
                                  verified: boolean;
                              }
                              | null;
                          emoji: string;
                          id: string;
                          imageUrl: string
                          | null;
                          jobs: {
                              attempts: number;
                              createdAt: string;
                              credits: number;
                              error: string | null;
                              finishedAt: string | null;
                              id: string;
                              kind: "storyboard" | "revision" | "sample" | "final";
                              maxAttempts: number;
                              provider: string;
                              status:
                                  | "failed"
                                  | "done"
                                  | "queued"
                                  | "running"
                                  | "retry"
                                  | "blocked"
                                  | "cancelled";
                          }[];
                          name: string;
                          offer: | {
                              assets: string[];
                              blocker: string
                              | null;
                              channel: string;
                              creatorId: string;
                              expiresAt: string;
                              format: string;
                              id: string;
                              keep: string;
                              media: string[];
                              message: string;
                              portfolio: boolean;
                              postDate: string;
                              region: string;
                              rejectReason: string | null;
                              respondedAt: string | null;
                              rightsEnd: string;
                              rightsStart: string;
                              sentAt: string;
                              status: "withdrawn" | "sent" | "accepted" | "rejected" | "expired";
                              thread: {
                                  at: string;
                                  by: (...) | (...) | (...) | (...);
                                  name: string;
                                  tag?: (...) | (...);
                                  text: string;
                              }[];
                          }
                          | null;
                          order: | {
                              blocked: string
                              | null;
                              comments: {
                                  at: string;
                                  by: (...) | (...) | (...) | (...);
                                  name: string;
                                  tag?: (...) | (...);
                                  text: string;
                              }[];
                              confirmedAt: string;
                              creatorMetricsDone: boolean;
                              id: string;
                              metrics: {
                                  at: string;
                                  by: string;
                                  id: string;
                                  name: string;
                                  period: string;
                                  source: (...)
                                  | (...)
                                  | (...);
                                  value: number;
                                  verified: boolean;
                              }[];
                              outputUrl: string
                              | null;
                              paidAt: string | null;
                              payoutStatus: "paid" | "progress" | "scheduled" | "hold";
                              proof:
                                  | { at: string; captures: number; url: string; verified: boolean }
                                  | null;
                              qa: string;
                              revisionsLeft: number;
                              usesVoice: boolean;
                              version: number;
                          }
                          | null;
                          orgId: string;
                          orgName: string;
                          pastOffers: {
                              at: string;
                              creatorId: string;
                              creatorName: string;
                              id: string;
                              note: string;
                              status: "withdrawn"
                              | "rejected"
                              | "expired";
                          }[];
                          payout: number
                          | null;
                          price: number | null;
                          productId: string;
                          stage:
                              | "done"
                              | "accepted"
                              | "storyboard"
                              | "cancelled"
                              | "matching"
                              | "offer"
                              | "producing"
                              | "creator_review"
                              | "advertiser_review"
                              | "approved"
                              | "published";
                          stageLabel: string;
                          storyboard: {
                              approved: | { at: string; by: string; no: number; version: number }
                              | null;
                              batch: number;
                              history: {
                                  at: string;
                                  by: string;
                                  detail: string;
                                  title: string;
                                  tone?: "done" | "warn";
                              }[];
                              notes: string[];
                              options: {
                                  cta: string;
                                  exposure: string;
                                  no: number;
                                  qa: { ok: boolean; text: string };
                                  scenes: { exposure?: ...; line: ...; time: ...; visual: ... }[];
                                  summary: string;
                                  title: string;
                                  version: number;
                              }[];
                              regenerationsLeft: number;
                              sample: "generating"
                              | "ready"
                              | "none";
                              sampleAudioUrl: string | null;
                              sampleUrl: string | null;
                              selected: number;
                              status: "failed" | "generating" | "ready";
                              versions: number[];
                          };
                          type: "AI"
                          | "Direct";
                          updatedAt: string;
                      },
                  >;
                  payouts: () => Promise<
                      {
                          amount: number;
                          blocked: string
                          | null;
                          campaignCode: string;
                          campaignId: string;
                          campaignName: string;
                          net: number;
                          orderId: string;
                          orgName: string;
                          paidAt: string | null;
                          status: "paid" | "progress" | "scheduled" | "hold";
                          tax: number;
                      }[],
                  >;
                  refuseOutput: (
                      campaignId: string,
                      reason: string,
                  ) => Promise<
                      {
                          brief: {
                              ban: string;
                              channels: string[];
                              cta: string;
                              disclosure: string;
                              goal: string;
                              length: number;
                              message: string;
                              mustSay: string;
                              scene: string;
                              target: string;
                              tone: string;
                          };
                          cancelReason: string
                          | null;
                          code: string;
                          createdAt: string;
                          creator:
                              | {
                                  category: string;
                                  color: string;
                                  engagement: number;
                                  followers: number;
                                  handle: string;
                                  id: string;
                                  name: string;
                                  photoUrl: string
                                  | null;
                                  verified: boolean;
                              }
                              | null;
                          emoji: string;
                          id: string;
                          imageUrl: string
                          | null;
                          jobs: {
                              attempts: number;
                              createdAt: string;
                              credits: number;
                              error: string | null;
                              finishedAt: string | null;
                              id: string;
                              kind: "storyboard" | "revision" | "sample" | "final";
                              maxAttempts: number;
                              provider: string;
                              status:
                                  | "failed"
                                  | "done"
                                  | "queued"
                                  | "running"
                                  | "retry"
                                  | "blocked"
                                  | "cancelled";
                          }[];
                          name: string;
                          offer: | {
                              assets: string[];
                              blocker: string
                              | null;
                              channel: string;
                              creatorId: string;
                              expiresAt: string;
                              format: string;
                              id: string;
                              keep: string;
                              media: string[];
                              message: string;
                              portfolio: boolean;
                              postDate: string;
                              region: string;
                              rejectReason: string | null;
                              respondedAt: string | null;
                              rightsEnd: string;
                              rightsStart: string;
                              sentAt: string;
                              status: "withdrawn" | "sent" | "accepted" | "rejected" | "expired";
                              thread: {
                                  at: string;
                                  by: (...) | (...) | (...) | (...);
                                  name: string;
                                  tag?: (...) | (...);
                                  text: string;
                              }[];
                          }
                          | null;
                          order: | {
                              blocked: string
                              | null;
                              comments: {
                                  at: string;
                                  by: (...) | (...) | (...) | (...);
                                  name: string;
                                  tag?: (...) | (...);
                                  text: string;
                              }[];
                              confirmedAt: string;
                              creatorMetricsDone: boolean;
                              id: string;
                              metrics: {
                                  at: string;
                                  by: string;
                                  id: string;
                                  name: string;
                                  period: string;
                                  source: (...)
                                  | (...)
                                  | (...);
                                  value: number;
                                  verified: boolean;
                              }[];
                              outputUrl: string
                              | null;
                              paidAt: string | null;
                              payoutStatus: "paid" | "progress" | "scheduled" | "hold";
                              proof:
                                  | { at: string; captures: number; url: string; verified: boolean }
                                  | null;
                              qa: string;
                              revisionsLeft: number;
                              usesVoice: boolean;
                              version: number;
                          }
                          | null;
                          orgId: string;
                          orgName: string;
                          pastOffers: {
                              at: string;
                              creatorId: string;
                              creatorName: string;
                              id: string;
                              note: string;
                              status: "withdrawn"
                              | "rejected"
                              | "expired";
                          }[];
                          payout: number
                          | null;
                          price: number | null;
                          productId: string;
                          stage:
                              | "done"
                              | "accepted"
                              | "storyboard"
                              | "cancelled"
                              | "matching"
                              | "offer"
                              | "producing"
                              | "creator_review"
                              | "advertiser_review"
                              | "approved"
                              | "published";
                          stageLabel: string;
                          storyboard: {
                              approved: | { at: string; by: string; no: number; version: number }
                              | null;
                              batch: number;
                              history: {
                                  at: string;
                                  by: string;
                                  detail: string;
                                  title: string;
                                  tone?: "done" | "warn";
                              }[];
                              notes: string[];
                              options: {
                                  cta: string;
                                  exposure: string;
                                  no: number;
                                  qa: { ok: boolean; text: string };
                                  scenes: { exposure?: ...; line: ...; time: ...; visual: ... }[];
                                  summary: string;
                                  title: string;
                                  version: number;
                              }[];
                              regenerationsLeft: number;
                              sample: "generating"
                              | "ready"
                              | "none";
                              sampleAudioUrl: string | null;
                              sampleUrl: string | null;
                              selected: number;
                              status: "failed" | "generating" | "ready";
                              versions: number[];
                          };
                          type: "AI"
                          | "Direct";
                          updatedAt: string;
                      },
                  >;
                  rejectOffer: (
                      campaignId: string,
                      input: { note?: string; reason: string },
                  ) => Promise<void>;
                  replyOffer: (
                      campaignId: string,
                      text: string,
                  ) => Promise<
                      {
                          brief: {
                              ban: string;
                              channels: string[];
                              cta: string;
                              disclosure: string;
                              goal: string;
                              length: number;
                              message: string;
                              mustSay: string;
                              scene: string;
                              target: string;
                              tone: string;
                          };
                          cancelReason: string
                          | null;
                          code: string;
                          createdAt: string;
                          creator:
                              | {
                                  category: string;
                                  color: string;
                                  engagement: number;
                                  followers: number;
                                  handle: string;
                                  id: string;
                                  name: string;
                                  photoUrl: string
                                  | null;
                                  verified: boolean;
                              }
                              | null;
                          emoji: string;
                          id: string;
                          imageUrl: string
                          | null;
                          jobs: {
                              attempts: number;
                              createdAt: string;
                              credits: number;
                              error: string | null;
                              finishedAt: string | null;
                              id: string;
                              kind: "storyboard" | "revision" | "sample" | "final";
                              maxAttempts: number;
                              provider: string;
                              status:
                                  | "failed"
                                  | "done"
                                  | "queued"
                                  | "running"
                                  | "retry"
                                  | "blocked"
                                  | "cancelled";
                          }[];
                          name: string;
                          offer: | {
                              assets: string[];
                              blocker: string
                              | null;
                              channel: string;
                              creatorId: string;
                              expiresAt: string;
                              format: string;
                              id: string;
                              keep: string;
                              media: string[];
                              message: string;
                              portfolio: boolean;
                              postDate: string;
                              region: string;
                              rejectReason: string | null;
                              respondedAt: string | null;
                              rightsEnd: string;
                              rightsStart: string;
                              sentAt: string;
                              status: "withdrawn" | "sent" | "accepted" | "rejected" | "expired";
                              thread: {
                                  at: string;
                                  by: (...) | (...) | (...) | (...);
                                  name: string;
                                  tag?: (...) | (...);
                                  text: string;
                              }[];
                          }
                          | null;
                          order: | {
                              blocked: string
                              | null;
                              comments: {
                                  at: string;
                                  by: (...) | (...) | (...) | (...);
                                  name: string;
                                  tag?: (...) | (...);
                                  text: string;
                              }[];
                              confirmedAt: string;
                              creatorMetricsDone: boolean;
                              id: string;
                              metrics: {
                                  at: string;
                                  by: string;
                                  id: string;
                                  name: string;
                                  period: string;
                                  source: (...)
                                  | (...)
                                  | (...);
                                  value: number;
                                  verified: boolean;
                              }[];
                              outputUrl: string
                              | null;
                              paidAt: string | null;
                              payoutStatus: "paid" | "progress" | "scheduled" | "hold";
                              proof:
                                  | { at: string; captures: number; url: string; verified: boolean }
                                  | null;
                              qa: string;
                              revisionsLeft: number;
                              usesVoice: boolean;
                              version: number;
                          }
                          | null;
                          orgId: string;
                          orgName: string;
                          pastOffers: {
                              at: string;
                              creatorId: string;
                              creatorName: string;
                              id: string;
                              note: string;
                              status: "withdrawn"
                              | "rejected"
                              | "expired";
                          }[];
                          payout: number
                          | null;
                          price: number | null;
                          productId: string;
                          stage:
                              | "done"
                              | "accepted"
                              | "storyboard"
                              | "cancelled"
                              | "matching"
                              | "offer"
                              | "producing"
                              | "creator_review"
                              | "advertiser_review"
                              | "approved"
                              | "published";
                          stageLabel: string;
                          storyboard: {
                              approved: | { at: string; by: string; no: number; version: number }
                              | null;
                              batch: number;
                              history: {
                                  at: string;
                                  by: string;
                                  detail: string;
                                  title: string;
                                  tone?: "done" | "warn";
                              }[];
                              notes: string[];
                              options: {
                                  cta: string;
                                  exposure: string;
                                  no: number;
                                  qa: { ok: boolean; text: string };
                                  scenes: { exposure?: ...; line: ...; time: ...; visual: ... }[];
                                  summary: string;
                                  title: string;
                                  version: number;
                              }[];
                              regenerationsLeft: number;
                              sample: "generating"
                              | "ready"
                              | "none";
                              sampleAudioUrl: string | null;
                              sampleUrl: string | null;
                              selected: number;
                              status: "failed" | "generating" | "ready";
                              versions: number[];
                          };
                          type: "AI"
                          | "Direct";
                          updatedAt: string;
                      },
                  >;
                  requestDeletion: () => Promise<{ activeOrders: number; ok: boolean }>;
                  requestRevision: (
                      campaignId: string,
                      text: string,
                  ) => Promise<
                      {
                          brief: {
                              ban: string;
                              channels: string[];
                              cta: string;
                              disclosure: string;
                              goal: string;
                              length: number;
                              message: string;
                              mustSay: string;
                              scene: string;
                              target: string;
                              tone: string;
                          };
                          cancelReason: string
                          | null;
                          code: string;
                          createdAt: string;
                          creator:
                              | {
                                  category: string;
                                  color: string;
                                  engagement: number;
                                  followers: number;
                                  handle: string;
                                  id: string;
                                  name: string;
                                  photoUrl: string
                                  | null;
                                  verified: boolean;
                              }
                              | null;
                          emoji: string;
                          id: string;
                          imageUrl: string
                          | null;
                          jobs: {
                              attempts: number;
                              createdAt: string;
                              credits: number;
                              error: string | null;
                              finishedAt: string | null;
                              id: string;
                              kind: "storyboard" | "revision" | "sample" | "final";
                              maxAttempts: number;
                              provider: string;
                              status:
                                  | "failed"
                                  | "done"
                                  | "queued"
                                  | "running"
                                  | "retry"
                                  | "blocked"
                                  | "cancelled";
                          }[];
                          name: string;
                          offer: | {
                              assets: string[];
                              blocker: string
                              | null;
                              channel: string;
                              creatorId: string;
                              expiresAt: string;
                              format: string;
                              id: string;
                              keep: string;
                              media: string[];
                              message: string;
                              portfolio: boolean;
                              postDate: string;
                              region: string;
                              rejectReason: string | null;
                              respondedAt: string | null;
                              rightsEnd: string;
                              rightsStart: string;
                              sentAt: string;
                              status: "withdrawn" | "sent" | "accepted" | "rejected" | "expired";
                              thread: {
                                  at: string;
                                  by: (...) | (...) | (...) | (...);
                                  name: string;
                                  tag?: (...) | (...);
                                  text: string;
                              }[];
                          }
                          | null;
                          order: | {
                              blocked: string
                              | null;
                              comments: {
                                  at: string;
                                  by: (...) | (...) | (...) | (...);
                                  name: string;
                                  tag?: (...) | (...);
                                  text: string;
                              }[];
                              confirmedAt: string;
                              creatorMetricsDone: boolean;
                              id: string;
                              metrics: {
                                  at: string;
                                  by: string;
                                  id: string;
                                  name: string;
                                  period: string;
                                  source: (...)
                                  | (...)
                                  | (...);
                                  value: number;
                                  verified: boolean;
                              }[];
                              outputUrl: string
                              | null;
                              paidAt: string | null;
                              payoutStatus: "paid" | "progress" | "scheduled" | "hold";
                              proof:
                                  | { at: string; captures: number; url: string; verified: boolean }
                                  | null;
                              qa: string;
                              revisionsLeft: number;
                              usesVoice: boolean;
                              version: number;
                          }
                          | null;
                          orgId: string;
                          orgName: string;
                          pastOffers: {
                              at: string;
                              creatorId: string;
                              creatorName: string;
                              id: string;
                              note: string;
                              status: "withdrawn"
                              | "rejected"
                              | "expired";
                          }[];
                          payout: number
                          | null;
                          price: number | null;
                          productId: string;
                          stage:
                              | "done"
                              | "accepted"
                              | "storyboard"
                              | "cancelled"
                              | "matching"
                              | "offer"
                              | "producing"
                              | "creator_review"
                              | "advertiser_review"
                              | "approved"
                              | "published";
                          stageLabel: string;
                          storyboard: {
                              approved: | { at: string; by: string; no: number; version: number }
                              | null;
                              batch: number;
                              history: {
                                  at: string;
                                  by: string;
                                  detail: string;
                                  title: string;
                                  tone?: "done" | "warn";
                              }[];
                              notes: string[];
                              options: {
                                  cta: string;
                                  exposure: string;
                                  no: number;
                                  qa: { ok: boolean; text: string };
                                  scenes: { exposure?: ...; line: ...; time: ...; visual: ... }[];
                                  summary: string;
                                  title: string;
                                  version: number;
                              }[];
                              regenerationsLeft: number;
                              sample: "generating"
                              | "ready"
                              | "none";
                              sampleAudioUrl: string | null;
                              sampleUrl: string | null;
                              selected: number;
                              status: "failed" | "generating" | "ready";
                              versions: number[];
                          };
                          type: "AI"
                          | "Direct";
                          updatedAt: string;
                      },
                  >;
                  revokeConsent: (
                      assetId: string,
                      reason: string,
                  ) => Promise<{ affected: number }>;
                  savePayoutAccount: (
                      input: { bank: string; holder: string; number: string },
                  ) => Promise<
                      {
                          aiFee: number
                          | null;
                          aiOn: boolean;
                          aiPrice: number | null;
                          available: "now" | "later" | "busy";
                          availableFlag: boolean;
                          availableFrom: string | null;
                          availableText: string;
                          bio: string;
                          cadence: string;
                          categories: string[];
                          category: string;
                          channels: string[];
                          color: string;
                          dataSource: string;
                          directFee: number | null;
                          directOn: boolean;
                          directPrice: number | null;
                          engagement: number;
                          excluded: string[];
                          followers: number;
                          handle: string;
                          id: string;
                          keep: string;
                          langs: string[];
                          lead: string;
                          monthCap: number;
                          name: string;
                          payoutAccount: { bank: string; holder: string; number: string } | null;
                          photoUrl: string | null;
                          review: "pending" | "rejected" | "approved" | "needs";
                          verified: boolean;
                      },
                  >;
                  saveProfile: (
                      input: {
                          available: boolean;
                          availableFrom?: string | null;
                          bio: string;
                          categories: string[];
                          channels: string[];
                          handle: string;
                          langs: string[];
                          name: string;
                          photoUrl?: string | null;
                      },
                  ) => Promise<
                      {
                          aiFee: number
                          | null;
                          aiOn: boolean;
                          aiPrice: number | null;
                          available: "now" | "later" | "busy";
                          availableFlag: boolean;
                          availableFrom: string | null;
                          availableText: string;
                          bio: string;
                          cadence: string;
                          categories: string[];
                          category: string;
                          channels: string[];
                          color: string;
                          dataSource: string;
                          directFee: number | null;
                          directOn: boolean;
                          directPrice: number | null;
                          engagement: number;
                          excluded: string[];
                          followers: number;
                          handle: string;
                          id: string;
                          keep: string;
                          langs: string[];
                          lead: string;
                          monthCap: number;
                          name: string;
                          payoutAccount: { bank: string; holder: string; number: string } | null;
                          photoUrl: string | null;
                          review: "pending" | "rejected" | "approved" | "needs";
                          verified: boolean;
                      },
                  >;
                  saveRates: (
                      input: {
                          aiFee?: number | null;
                          aiOn: boolean;
                          directFee: number;
                          directOn: boolean;
                          excluded: string[];
                          keep: string;
                          lead: string;
                          monthCap: number;
                      },
                  ) => Promise<
                      {
                          aiFee: number
                          | null;
                          aiOn: boolean;
                          aiPrice: number | null;
                          available: "now" | "later" | "busy";
                          availableFlag: boolean;
                          availableFrom: string | null;
                          availableText: string;
                          bio: string;
                          cadence: string;
                          categories: string[];
                          category: string;
                          channels: string[];
                          color: string;
                          dataSource: string;
                          directFee: number | null;
                          directOn: boolean;
                          directPrice: number | null;
                          engagement: number;
                          excluded: string[];
                          followers: number;
                          handle: string;
                          id: string;
                          keep: string;
                          langs: string[];
                          lead: string;
                          monthCap: number;
                          name: string;
                          payoutAccount: { bank: string; holder: string; number: string } | null;
                          photoUrl: string | null;
                          review: "pending" | "rejected" | "approved" | "needs";
                          verified: boolean;
                      },
                  >;
                  social: () => Promise<
                      {
                          accounts: {
                              handle: string;
                              id: string;
                              lastSync: string
                              | null;
                              mode: "api" | "manual";
                              platform: string;
                              status: "pending" | "connected" | "disconnected";
                              tokenExpiry: string | null;
                          }[];
                          snapshots: {
                              at: string;
                              id: string;
                              metric: string;
                              period: string;
                              platform: string;
                              source: string;
                              status: "pending"
                              | "rejected"
                              | "confirmed";
                              unit: string;
                              value: string;
                          }[];
                      },
                  >;
                  submitMetrics: (
                      campaignId: string,
                      input: { metrics: { name: string; period: string; value: number }[] },
                  ) => Promise<
                      {
                          brief: {
                              ban: string;
                              channels: string[];
                              cta: string;
                              disclosure: string;
                              goal: string;
                              length: number;
                              message: string;
                              mustSay: string;
                              scene: string;
                              target: string;
                              tone: string;
                          };
                          cancelReason: string
                          | null;
                          code: string;
                          createdAt: string;
                          creator:
                              | {
                                  category: string;
                                  color: string;
                                  engagement: number;
                                  followers: number;
                                  handle: string;
                                  id: string;
                                  name: string;
                                  photoUrl: string
                                  | null;
                                  verified: boolean;
                              }
                              | null;
                          emoji: string;
                          id: string;
                          imageUrl: string
                          | null;
                          jobs: {
                              attempts: number;
                              createdAt: string;
                              credits: number;
                              error: string | null;
                              finishedAt: string | null;
                              id: string;
                              kind: "storyboard" | "revision" | "sample" | "final";
                              maxAttempts: number;
                              provider: string;
                              status:
                                  | "failed"
                                  | "done"
                                  | "queued"
                                  | "running"
                                  | "retry"
                                  | "blocked"
                                  | "cancelled";
                          }[];
                          name: string;
                          offer: | {
                              assets: string[];
                              blocker: string
                              | null;
                              channel: string;
                              creatorId: string;
                              expiresAt: string;
                              format: string;
                              id: string;
                              keep: string;
                              media: string[];
                              message: string;
                              portfolio: boolean;
                              postDate: string;
                              region: string;
                              rejectReason: string | null;
                              respondedAt: string | null;
                              rightsEnd: string;
                              rightsStart: string;
                              sentAt: string;
                              status: "withdrawn" | "sent" | "accepted" | "rejected" | "expired";
                              thread: {
                                  at: string;
                                  by: (...) | (...) | (...) | (...);
                                  name: string;
                                  tag?: (...) | (...);
                                  text: string;
                              }[];
                          }
                          | null;
                          order: | {
                              blocked: string
                              | null;
                              comments: {
                                  at: string;
                                  by: (...) | (...) | (...) | (...);
                                  name: string;
                                  tag?: (...) | (...);
                                  text: string;
                              }[];
                              confirmedAt: string;
                              creatorMetricsDone: boolean;
                              id: string;
                              metrics: {
                                  at: string;
                                  by: string;
                                  id: string;
                                  name: string;
                                  period: string;
                                  source: (...)
                                  | (...)
                                  | (...);
                                  value: number;
                                  verified: boolean;
                              }[];
                              outputUrl: string
                              | null;
                              paidAt: string | null;
                              payoutStatus: "paid" | "progress" | "scheduled" | "hold";
                              proof:
                                  | { at: string; captures: number; url: string; verified: boolean }
                                  | null;
                              qa: string;
                              revisionsLeft: number;
                              usesVoice: boolean;
                              version: number;
                          }
                          | null;
                          orgId: string;
                          orgName: string;
                          pastOffers: {
                              at: string;
                              creatorId: string;
                              creatorName: string;
                              id: string;
                              note: string;
                              status: "withdrawn"
                              | "rejected"
                              | "expired";
                          }[];
                          payout: number
                          | null;
                          price: number | null;
                          productId: string;
                          stage:
                              | "done"
                              | "accepted"
                              | "storyboard"
                              | "cancelled"
                              | "matching"
                              | "offer"
                              | "producing"
                              | "creator_review"
                              | "advertiser_review"
                              | "approved"
                              | "published";
                          stageLabel: string;
                          storyboard: {
                              approved: | { at: string; by: string; no: number; version: number }
                              | null;
                              batch: number;
                              history: {
                                  at: string;
                                  by: string;
                                  detail: string;
                                  title: string;
                                  tone?: "done" | "warn";
                              }[];
                              notes: string[];
                              options: {
                                  cta: string;
                                  exposure: string;
                                  no: number;
                                  qa: { ok: boolean; text: string };
                                  scenes: { exposure?: ...; line: ...; time: ...; visual: ... }[];
                                  summary: string;
                                  title: string;
                                  version: number;
                              }[];
                              regenerationsLeft: number;
                              sample: "generating"
                              | "ready"
                              | "none";
                              sampleAudioUrl: string | null;
                              sampleUrl: string | null;
                              selected: number;
                              status: "failed" | "generating" | "ready";
                              versions: number[];
                          };
                          type: "AI"
                          | "Direct";
                          updatedAt: string;
                      },
                  >;
                  submitOutput: (
                      campaignId: string,
                      input: { note?: string; outputUrl: string },
                  ) => Promise<
                      {
                          brief: {
                              ban: string;
                              channels: string[];
                              cta: string;
                              disclosure: string;
                              goal: string;
                              length: number;
                              message: string;
                              mustSay: string;
                              scene: string;
                              target: string;
                              tone: string;
                          };
                          cancelReason: string
                          | null;
                          code: string;
                          createdAt: string;
                          creator:
                              | {
                                  category: string;
                                  color: string;
                                  engagement: number;
                                  followers: number;
                                  handle: string;
                                  id: string;
                                  name: string;
                                  photoUrl: string
                                  | null;
                                  verified: boolean;
                              }
                              | null;
                          emoji: string;
                          id: string;
                          imageUrl: string
                          | null;
                          jobs: {
                              attempts: number;
                              createdAt: string;
                              credits: number;
                              error: string | null;
                              finishedAt: string | null;
                              id: string;
                              kind: "storyboard" | "revision" | "sample" | "final";
                              maxAttempts: number;
                              provider: string;
                              status:
                                  | "failed"
                                  | "done"
                                  | "queued"
                                  | "running"
                                  | "retry"
                                  | "blocked"
                                  | "cancelled";
                          }[];
                          name: string;
                          offer: | {
                              assets: string[];
                              blocker: string
                              | null;
                              channel: string;
                              creatorId: string;
                              expiresAt: string;
                              format: string;
                              id: string;
                              keep: string;
                              media: string[];
                              message: string;
                              portfolio: boolean;
                              postDate: string;
                              region: string;
                              rejectReason: string | null;
                              respondedAt: string | null;
                              rightsEnd: string;
                              rightsStart: string;
                              sentAt: string;
                              status: "withdrawn" | "sent" | "accepted" | "rejected" | "expired";
                              thread: {
                                  at: string;
                                  by: (...) | (...) | (...) | (...);
                                  name: string;
                                  tag?: (...) | (...);
                                  text: string;
                              }[];
                          }
                          | null;
                          order: | {
                              blocked: string
                              | null;
                              comments: {
                                  at: string;
                                  by: (...) | (...) | (...) | (...);
                                  name: string;
                                  tag?: (...) | (...);
                                  text: string;
                              }[];
                              confirmedAt: string;
                              creatorMetricsDone: boolean;
                              id: string;
                              metrics: {
                                  at: string;
                                  by: string;
                                  id: string;
                                  name: string;
                                  period: string;
                                  source: (...)
                                  | (...)
                                  | (...);
                                  value: number;
                                  verified: boolean;
                              }[];
                              outputUrl: string
                              | null;
                              paidAt: string | null;
                              payoutStatus: "paid" | "progress" | "scheduled" | "hold";
                              proof:
                                  | { at: string; captures: number; url: string; verified: boolean }
                                  | null;
                              qa: string;
                              revisionsLeft: number;
                              usesVoice: boolean;
                              version: number;
                          }
                          | null;
                          orgId: string;
                          orgName: string;
                          pastOffers: {
                              at: string;
                              creatorId: string;
                              creatorName: string;
                              id: string;
                              note: string;
                              status: "withdrawn"
                              | "rejected"
                              | "expired";
                          }[];
                          payout: number
                          | null;
                          price: number | null;
                          productId: string;
                          stage:
                              | "done"
                              | "accepted"
                              | "storyboard"
                              | "cancelled"
                              | "matching"
                              | "offer"
                              | "producing"
                              | "creator_review"
                              | "advertiser_review"
                              | "approved"
                              | "published";
                          stageLabel: string;
                          storyboard: {
                              approved: | { at: string; by: string; no: number; version: number }
                              | null;
                              batch: number;
                              history: {
                                  at: string;
                                  by: string;
                                  detail: string;
                                  title: string;
                                  tone?: "done" | "warn";
                              }[];
                              notes: string[];
                              options: {
                                  cta: string;
                                  exposure: string;
                                  no: number;
                                  qa: { ok: boolean; text: string };
                                  scenes: { exposure?: ...; line: ...; time: ...; visual: ... }[];
                                  summary: string;
                                  title: string;
                                  version: number;
                              }[];
                              regenerationsLeft: number;
                              sample: "generating"
                              | "ready"
                              | "none";
                              sampleAudioUrl: string | null;
                              sampleUrl: string | null;
                              selected: number;
                              status: "failed" | "generating" | "ready";
                              versions: number[];
                          };
                          type: "AI"
                          | "Direct";
                          updatedAt: string;
                      },
                  >;
                  submitProof: (
                      campaignId: string,
                      input: { captures: number; url: string },
                  ) => Promise<
                      {
                          brief: {
                              ban: string;
                              channels: string[];
                              cta: string;
                              disclosure: string;
                              goal: string;
                              length: number;
                              message: string;
                              mustSay: string;
                              scene: string;
                              target: string;
                              tone: string;
                          };
                          cancelReason: string
                          | null;
                          code: string;
                          createdAt: string;
                          creator:
                              | {
                                  category: string;
                                  color: string;
                                  engagement: number;
                                  followers: number;
                                  handle: string;
                                  id: string;
                                  name: string;
                                  photoUrl: string
                                  | null;
                                  verified: boolean;
                              }
                              | null;
                          emoji: string;
                          id: string;
                          imageUrl: string
                          | null;
                          jobs: {
                              attempts: number;
                              createdAt: string;
                              credits: number;
                              error: string | null;
                              finishedAt: string | null;
                              id: string;
                              kind: "storyboard" | "revision" | "sample" | "final";
                              maxAttempts: number;
                              provider: string;
                              status:
                                  | "failed"
                                  | "done"
                                  | "queued"
                                  | "running"
                                  | "retry"
                                  | "blocked"
                                  | "cancelled";
                          }[];
                          name: string;
                          offer: | {
                              assets: string[];
                              blocker: string
                              | null;
                              channel: string;
                              creatorId: string;
                              expiresAt: string;
                              format: string;
                              id: string;
                              keep: string;
                              media: string[];
                              message: string;
                              portfolio: boolean;
                              postDate: string;
                              region: string;
                              rejectReason: string | null;
                              respondedAt: string | null;
                              rightsEnd: string;
                              rightsStart: string;
                              sentAt: string;
                              status: "withdrawn" | "sent" | "accepted" | "rejected" | "expired";
                              thread: {
                                  at: string;
                                  by: (...) | (...) | (...) | (...);
                                  name: string;
                                  tag?: (...) | (...);
                                  text: string;
                              }[];
                          }
                          | null;
                          order: | {
                              blocked: string
                              | null;
                              comments: {
                                  at: string;
                                  by: (...) | (...) | (...) | (...);
                                  name: string;
                                  tag?: (...) | (...);
                                  text: string;
                              }[];
                              confirmedAt: string;
                              creatorMetricsDone: boolean;
                              id: string;
                              metrics: {
                                  at: string;
                                  by: string;
                                  id: string;
                                  name: string;
                                  period: string;
                                  source: (...)
                                  | (...)
                                  | (...);
                                  value: number;
                                  verified: boolean;
                              }[];
                              outputUrl: string
                              | null;
                              paidAt: string | null;
                              payoutStatus: "paid" | "progress" | "scheduled" | "hold";
                              proof:
                                  | { at: string; captures: number; url: string; verified: boolean }
                                  | null;
                              qa: string;
                              revisionsLeft: number;
                              usesVoice: boolean;
                              version: number;
                          }
                          | null;
                          orgId: string;
                          orgName: string;
                          pastOffers: {
                              at: string;
                              creatorId: string;
                              creatorName: string;
                              id: string;
                              note: string;
                              status: "withdrawn"
                              | "rejected"
                              | "expired";
                          }[];
                          payout: number
                          | null;
                          price: number | null;
                          productId: string;
                          stage:
                              | "done"
                              | "accepted"
                              | "storyboard"
                              | "cancelled"
                              | "matching"
                              | "offer"
                              | "producing"
                              | "creator_review"
                              | "advertiser_review"
                              | "approved"
                              | "published";
                          stageLabel: string;
                          storyboard: {
                              approved: | { at: string; by: string; no: number; version: number }
                              | null;
                              batch: number;
                              history: {
                                  at: string;
                                  by: string;
                                  detail: string;
                                  title: string;
                                  tone?: "done" | "warn";
                              }[];
                              notes: string[];
                              options: {
                                  cta: string;
                                  exposure: string;
                                  no: number;
                                  qa: { ok: boolean; text: string };
                                  scenes: { exposure?: ...; line: ...; time: ...; visual: ... }[];
                                  summary: string;
                                  title: string;
                                  version: number;
                              }[];
                              regenerationsLeft: number;
                              sample: "generating"
                              | "ready"
                              | "none";
                              sampleAudioUrl: string | null;
                              sampleUrl: string | null;
                              selected: number;
                              status: "failed" | "generating" | "ready";
                              versions: number[];
                          };
                          type: "AI"
                          | "Direct";
                          updatedAt: string;
                      },
                  >;
                  submitSocialMetrics: (
                      socialId: string,
                      input: { captures: number; followers: number; views: number },
                  ) => Promise<
                      {
                          accounts: {
                              handle: string;
                              id: string;
                              lastSync: string
                              | null;
                              mode: "api" | "manual";
                              platform: string;
                              status: "pending" | "connected" | "disconnected";
                              tokenExpiry: string | null;
                          }[];
                          snapshots: {
                              at: string;
                              id: string;
                              metric: string;
                              period: string;
                              platform: string;
                              source: string;
                              status: "pending"
                              | "rejected"
                              | "confirmed";
                              unit: string;
                              value: string;
                          }[];
                      },
                  >;
                  updateConsent: (
                      assetId: string,
                      input: {
                          agreed: boolean;
                          end: string;
                          media: string[];
                          paid: boolean;
                          portfolio: boolean;
                          region: string;
                          secondary: boolean;
                          showcase: boolean;
                          start: string;
                      },
                  ) => Promise<
                      {
                          boardAt: string
                          | null;
                          boardStatus: "pending" | "failed" | "ready" | "none";
                          consent:
                              | {
                                  doc: string;
                                  end: string;
                                  issueResolved: string
                                  | null;
                                  media: string[];
                                  paid: boolean;
                                  portfolio: boolean;
                                  purpose: string;
                                  region: string;
                                  revokedAt: string | null;
                                  revokeReason: string | null;
                                  secondary: boolean;
                                  showcase: boolean;
                                  signedAt: string;
                                  start: string;
                                  status: "active" | "suspended" | "expired" | "revoked";
                              }
                              | null;
                          desc: string;
                          destroyAt: string
                          | null;
                          hasFile: boolean;
                          id: string;
                          kind: "face" | "voice" | "ref";
                          label: string;
                          replaced: boolean;
                          review: "pending" | "rejected" | "approved" | "needs";
                          uploadedAt: string;
                          version: number;
                      },
                  >;
                  uploadAsset: (
                      input: {
                          desc: string;
                          fileUrl: string;
                          kind: "face" | "voice" | "ref";
                      },
                  ) => Promise<
                      {
                          boardAt: string
                          | null;
                          boardStatus: "pending" | "failed" | "ready" | "none";
                          consent:
                              | {
                                  doc: string;
                                  end: string;
                                  issueResolved: string
                                  | null;
                                  media: string[];
                                  paid: boolean;
                                  portfolio: boolean;
                                  purpose: string;
                                  region: string;
                                  revokedAt: string | null;
                                  revokeReason: string | null;
                                  secondary: boolean;
                                  showcase: boolean;
                                  signedAt: string;
                                  start: string;
                                  status: "active" | "suspended" | "expired" | "revoked";
                              }
                              | null;
                          desc: string;
                          destroyAt: string
                          | null;
                          hasFile: boolean;
                          id: string;
                          kind: "face" | "voice" | "ref";
                          label: string;
                          replaced: boolean;
                          review: "pending" | "rejected" | "approved" | "needs";
                          uploadedAt: string;
                          version: number;
                      },
                  >;
              };
              creators: {
                  get: (
                      creatorId: string,
                  ) => Promise<
                      {
                          aiFee: number
                          | null;
                          aiPrice: number | null;
                          available: "now" | "later" | "busy";
                          availableText: string;
                          bio: string;
                          cadence: string;
                          categories: string[];
                          category: string;
                          channels: string[];
                          color: string;
                          dataSource: string;
                          directFee: number | null;
                          directPrice: number | null;
                          engagement: number;
                          excluded: string[];
                          followers: number;
                          handle: string;
                          id: string;
                          langs: string[];
                          name: string;
                          photoUrl: string | null;
                          verified: boolean;
                      },
                  >;
                  list: (
                      params?: {
                          category?: string;
                          channel?: string;
                          page?: number;
                          pageSize?: number;
                          q?: string;
                          sort?: "followers" | "engagement" | "price";
                          type?: "AI" | "Direct";
                      },
                  ) => Promise<
                      {
                          items: {
                              aiFee: number
                              | null;
                              aiPrice: number | null;
                              available: "now" | "later" | "busy";
                              availableText: string;
                              bio: string;
                              cadence: string;
                              categories: string[];
                              category: string;
                              channels: string[];
                              color: string;
                              dataSource: string;
                              directFee: number | null;
                              directPrice: number | null;
                              engagement: number;
                              excluded: string[];
                              followers: number;
                              handle: string;
                              id: string;
                              langs: string[];
                              name: string;
                              photoUrl: string | null;
                              verified: boolean;
                          }[];
                          page: number;
                          pageSize: number;
                          total: number;
                      },
                  >;
              };
              me: () => Promise<
                  {
                      creator: | {
                          aiFee: number
                          | null;
                          aiOn: boolean;
                          aiPrice: number | null;
                          available: "now" | "later" | "busy";
                          availableFlag: boolean;
                          availableFrom: string | null;
                          availableText: string;
                          bio: string;
                          cadence: string;
                          categories: string[];
                          category: string;
                          channels: string[];
                          color: string;
                          dataSource: string;
                          directFee: number | null;
                          directOn: boolean;
                          directPrice: number | null;
                          engagement: number;
                          excluded: string[];
                          followers: number;
                          handle: string;
                          id: string;
                          keep: string;
                          langs: string[];
                          lead: string;
                          monthCap: number;
                          name: string;
                          payoutAccount: { bank: string; holder: string; number: string } | null;
                          photoUrl: string | null;
                          review: "pending" | "rejected" | "approved" | "needs";
                          verified: boolean;
                      }
                      | null;
                      mockAi: boolean;
                      org: | {
                          bizNumber: string;
                          channel: string;
                          credits: number;
                          email: string;
                          id: string;
                          members: {
                              email: string;
                              id: string;
                              joined: boolean;
                              lastSeen: string
                              | null;
                              name: string | null;
                              role: "admin" | "manager";
                          }[];
                          myRole: "admin"
                          | "manager";
                          name: string;
                          review: "pending" | "rejected" | "approved" | "needs";
                      }
                      | null;
                      roles: ("advertiser" | "creator")[];
                  },
              >;
              org: {
                  chargeCredits: (
                      input: { amount: number; idempotencyKey: string },
                  ) => Promise<
                      {
                          balance: number;
                          costs: { [key: string]: number };
                          ledger: {
                              at: string;
                              delta: number;
                              desc: string;
                              id: string;
                              kind: "none" | "debit" | "charge" | "grant" | "adjust";
                              ref: string;
                          }[];
                          reserved: number;
                          unitPrice: number;
                          vatRate: number;
                      },
                  >;
                  create: (
                      input: {
                          bizNumber: string;
                          channel?: string;
                          email: string;
                          name: string;
                      },
                  ) => Promise<
                      {
                          bizNumber: string;
                          channel: string;
                          credits: number;
                          email: string;
                          id: string;
                          members: {
                              email: string;
                              id: string;
                              joined: boolean;
                              lastSeen: string
                              | null;
                              name: string | null;
                              role: "admin" | "manager";
                          }[];
                          myRole: "admin"
                          | "manager";
                          name: string;
                          review: "pending" | "rejected" | "approved" | "needs";
                      },
                  >;
                  credits: () => Promise<
                      {
                          balance: number;
                          costs: { [key: string]: number };
                          ledger: {
                              at: string;
                              delta: number;
                              desc: string;
                              id: string;
                              kind: "none" | "debit" | "charge" | "grant" | "adjust";
                              ref: string;
                          }[];
                          reserved: number;
                          unitPrice: number;
                          vatRate: number;
                      },
                  >;
                  invite: (
                      input: { email: string; role: "admin" | "manager" },
                  ) => Promise<
                      {
                          bizNumber: string;
                          channel: string;
                          credits: number;
                          email: string;
                          id: string;
                          members: {
                              email: string;
                              id: string;
                              joined: boolean;
                              lastSeen: string
                              | null;
                              name: string | null;
                              role: "admin" | "manager";
                          }[];
                          myRole: "admin"
                          | "manager";
                          name: string;
                          review: "pending" | "rejected" | "approved" | "needs";
                      },
                  >;
                  removeMember: (
                      memberId: string,
                  ) => Promise<
                      {
                          bizNumber: string;
                          channel: string;
                          credits: number;
                          email: string;
                          id: string;
                          members: {
                              email: string;
                              id: string;
                              joined: boolean;
                              lastSeen: string
                              | null;
                              name: string | null;
                              role: "admin" | "manager";
                          }[];
                          myRole: "admin"
                          | "manager";
                          name: string;
                          review: "pending" | "rejected" | "approved" | "needs";
                      },
                  >;
                  update: (
                      input: {
                          bizNumber?: string;
                          channel?: string;
                          email?: string;
                          name?: string;
                      },
                  ) => Promise<
                      {
                          bizNumber: string;
                          channel: string;
                          credits: number;
                          email: string;
                          id: string;
                          members: {
                              email: string;
                              id: string;
                              joined: boolean;
                              lastSeen: string
                              | null;
                              name: string | null;
                              role: "admin" | "manager";
                          }[];
                          myRole: "admin"
                          | "manager";
                          name: string;
                          review: "pending" | "rejected" | "approved" | "needs";
                      },
                  >;
              };
              pricing: () => Promise<
                  {
                      aiFee: number;
                      autoApproveDays: number;
                      cap: number;
                      commission: number;
                      credits: {
                          extraRevision?: number;
                          revision?: number;
                          sample?: number;
                          storyboard?: number;
                          unit?: number;
                      };
                      history: {
                          at: string;
                          by: string;
                          detail: string;
                          title: string;
                          tone?: "done"
                          | "warn";
                      }[];
                      offerDays: number;
                      opsFee: number;
                      retry: number;
                      revisions: number;
                      rightsDays: number;
                      rightsFee: number;
                      rounding: number;
                      samples: number;
                      urlMinutes: number;
                      version: number;
                      withholding: number;
                  },
              >;
              products: {
                  create: (
                      input: {
                          banned: string[];
                          benefits: string[];
                          category: string;
                          desc?: string;
                          emoji?: string;
                          evidence?: string | null;
                          imageUrl?: string | null;
                          name: string;
                      },
                  ) => Promise<
                      {
                          banned: string[];
                          benefits: string[];
                          campaignCount: number;
                          category: string;
                          createdAt: string;
                          desc: string;
                          emoji: string;
                          evidence: string
                          | null;
                          id: string;
                          imageUrl: string | null;
                          name: string;
                          status: "active" | "review" | "archived";
                          updatedAt: string;
                      },
                  >;
                  list: (
                      includeArchived?: boolean,
                  ) => Promise<
                      {
                          banned: string[];
                          benefits: string[];
                          campaignCount: number;
                          category: string;
                          createdAt: string;
                          desc: string;
                          emoji: string;
                          evidence: string
                          | null;
                          id: string;
                          imageUrl: string | null;
                          name: string;
                          status: "active" | "review" | "archived";
                          updatedAt: string;
                      }[],
                  >;
                  setStatus: (
                      productId: string,
                      input: { status: "active" | "archived" },
                  ) => Promise<
                      {
                          banned: string[];
                          benefits: string[];
                          campaignCount: number;
                          category: string;
                          createdAt: string;
                          desc: string;
                          emoji: string;
                          evidence: string
                          | null;
                          id: string;
                          imageUrl: string | null;
                          name: string;
                          status: "active" | "review" | "archived";
                          updatedAt: string;
                      },
                  >;
                  update: (
                      productId: string,
                      input: {
                          banned?: string[];
                          benefits?: string[];
                          category?: string;
                          desc?: string;
                          emoji?: string;
                          evidence?: string | null;
                          imageUrl?: string | null;
                          name?: string;
                      },
                  ) => Promise<
                      {
                          banned: string[];
                          benefits: string[];
                          campaignCount: number;
                          category: string;
                          createdAt: string;
                          desc: string;
                          emoji: string;
                          evidence: string
                          | null;
                          id: string;
                          imageUrl: string | null;
                          name: string;
                          status: "active" | "review" | "archived";
                          updatedAt: string;
                      },
                  >;
              };
          };
          uploads: {
              ticket: (
                  input: {
                      contentType: string;
                      purpose:
                          | "avatar"
                          | "place"
                          | "event"
                          | "casting"
                          | "product"
                          | "asset"
                          | "proof"
                          | "evidence";
                      size: number;
                  },
              ) => Promise<
                  {
                      expiresIn: number;
                      headers: { [key: string]: string };
                      key: string;
                      method: "PUT";
                      uploadUrl: string;
                      url: string;
                  },
              >;
          };
          users: {
              addProfile: (
                  input: {
                      role: "user" | "influencer" | "venue" | "advertiser" | "creator";
                      service: "day" | "studio";
                  },
              ) => Promise<
                  {
                      admin: { role: "owner" | "operator" }
                      | null;
                      createdAt: string;
                      email: string;
                      emailVerified: boolean;
                      id: string;
                      name: string;
                      profiles: {
                          role: "user" | "influencer" | "venue" | "advertiser" | "creator";
                          service: "day" | "studio";
                      }[];
                      status: "active"
                      | "suspended"
                      | "withdrawn";
                  },
              >;
              changePassword: (
                  input: { currentPassword: string; newPassword: string },
              ) => Promise<void>;
              revokeOtherSessions: () => Promise<{ revoked: number }>;
              revokeSession: (id: string) => Promise<void>;
              sessions: () => Promise<
                  {
                      items: {
                          createdAt: string;
                          current: boolean;
                          id: string;
                          ip: string;
                          lastUsedAt: string;
                          userAgent: string
                          | null;
                      }[];
                  },
              >;
              updateMe: (
                  input: { name?: string },
              ) => Promise<
                  {
                      admin: { role: "owner" | "operator" }
                      | null;
                      createdAt: string;
                      email: string;
                      emailVerified: boolean;
                      id: string;
                      name: string;
                      profiles: {
                          role: "user" | "influencer" | "venue" | "advertiser" | "creator";
                          service: "day" | "studio";
                      }[];
                      status: "active"
                      | "suspended"
                      | "withdrawn";
                  },
              >;
              withdraw: (input: { password: string; reason?: string }) => Promise<void>;
              withdrawalCheck: () => Promise<
                  { blockers: { reason: string; service: "day"
                  | "studio" }[] },
              >;
          };
      }