@50heads/mcp 2026.925.2 → 2026.1009.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -27,39 +27,55 @@ export declare class TaskInterceptingTransport implements Transport {
27
27
  }
28
28
  export declare function makeApi(opts: StdioOptions): (tool: string, client?: string, protocol?: string) => {
29
29
  config: () => Promise<{
30
- rates: Record<"GBP" | "USD" | "EUR" | "CAD", number>;
30
+ rates: Record<"GBP" | "USD" | "EUR" | "CAD" | "JPY" | "KRW" | "SEK" | "DKK" | "NOK" | "PLN" | "BRL" | "CZK" | "RON" | "TRY", number>;
31
31
  ratesDate: string;
32
32
  countries: Record<string, {
33
- payMultiplier: number;
34
33
  minWithdrawalPence: number;
35
34
  payoutRails: string[];
36
35
  otpChannel: "sms" | "whatsapp";
37
36
  taxFields: string[];
38
37
  tier2Available: boolean;
39
38
  currency: "GBP" | "USD" | "EUR" | "CAD";
39
+ displayCurrency?: "GBP" | "USD" | "EUR" | "CAD" | "JPY" | "KRW" | "SEK" | "DKK" | "NOK" | "PLN" | "BRL" | "CZK" | "RON" | "TRY" | undefined;
40
40
  wiseFields?: {
41
41
  key: string;
42
42
  label: string;
43
43
  example?: string | undefined;
44
44
  pattern?: string | undefined;
45
45
  }[] | undefined;
46
+ requesterRails?: ("card" | "bank_transfer" | "pix" | "swish" | "vipps" | "mobilepay" | "pse")[] | undefined;
47
+ locale?: string | undefined;
48
+ questionLanguages?: string[] | undefined;
49
+ legalPack?: "uk" | "gdpr-eu" | "gdpr-eea" | "us" | "ca" | "lgpd" | "appi" | "pipa" | "kvkk" | "cl" | "co" | "ar" | "pe" | "uy" | "other" | undefined;
50
+ legalPackVersion?: string | undefined;
51
+ payoutProvenAt?: string | undefined;
52
+ minAge?: number | undefined;
53
+ state?: "known" | "answering" | "launched" | undefined;
46
54
  }>;
47
55
  defaultCountry: {
48
- payMultiplier: number;
49
56
  minWithdrawalPence: number;
50
57
  payoutRails: string[];
51
58
  otpChannel: "sms" | "whatsapp";
52
59
  taxFields: string[];
53
60
  tier2Available: boolean;
54
61
  currency: "GBP" | "USD" | "EUR" | "CAD";
62
+ displayCurrency?: "GBP" | "USD" | "EUR" | "CAD" | "JPY" | "KRW" | "SEK" | "DKK" | "NOK" | "PLN" | "BRL" | "CZK" | "RON" | "TRY" | undefined;
55
63
  wiseFields?: {
56
64
  key: string;
57
65
  label: string;
58
66
  example?: string | undefined;
59
67
  pattern?: string | undefined;
60
68
  }[] | undefined;
69
+ requesterRails?: ("card" | "bank_transfer" | "pix" | "swish" | "vipps" | "mobilepay" | "pse")[] | undefined;
70
+ locale?: string | undefined;
71
+ questionLanguages?: string[] | undefined;
72
+ legalPack?: "uk" | "gdpr-eu" | "gdpr-eea" | "us" | "ca" | "lgpd" | "appi" | "pipa" | "kvkk" | "cl" | "co" | "ar" | "pe" | "uy" | "other" | undefined;
73
+ legalPackVersion?: string | undefined;
74
+ payoutProvenAt?: string | undefined;
75
+ minAge?: number | undefined;
76
+ state?: "known" | "answering" | "launched" | undefined;
61
77
  };
62
- questionLanguages: ("en" | "fr" | "es" | "pt" | "it" | "de" | "nl" | "pl")[];
78
+ questionLanguages: ("en" | "fr" | "es" | "pt" | "it" | "de" | "nl" | "pl" | "ja" | "ko" | "sv" | "da" | "nb" | "cs" | "ro" | "fi" | "tr")[];
63
79
  reverifyDays: number;
64
80
  tier1PayPence: number;
65
81
  tier2PayMultiplier: number;
@@ -86,8 +102,8 @@ export declare function makeApi(opts: StdioOptions): (tool: string, client?: str
86
102
  tier: 0 | 1 | 2 | 3;
87
103
  country: string | null;
88
104
  phone: string | null;
89
- displayCurrency: "GBP" | "USD" | "EUR" | "CAD" | null;
90
- languages: ("en" | "fr" | "es" | "pt" | "it" | "de" | "nl" | "pl")[];
105
+ displayCurrency: "GBP" | "USD" | "EUR" | "CAD" | "JPY" | "KRW" | "SEK" | "DKK" | "NOK" | "PLN" | "BRL" | "CZK" | "RON" | "TRY" | null;
106
+ languages: ("en" | "fr" | "es" | "pt" | "it" | "de" | "nl" | "pl" | "ja" | "ko" | "sv" | "da" | "nb" | "cs" | "ro" | "fi" | "tr")[];
91
107
  locale: string | null;
92
108
  creditsPence: number;
93
109
  earningsPence: number;
@@ -110,8 +126,8 @@ export declare function makeApi(opts: StdioOptions): (tool: string, client?: str
110
126
  tier: 0 | 1 | 2 | 3;
111
127
  country: string | null;
112
128
  phone: string | null;
113
- displayCurrency: "GBP" | "USD" | "EUR" | "CAD" | null;
114
- languages: ("en" | "fr" | "es" | "pt" | "it" | "de" | "nl" | "pl")[];
129
+ displayCurrency: "GBP" | "USD" | "EUR" | "CAD" | "JPY" | "KRW" | "SEK" | "DKK" | "NOK" | "PLN" | "BRL" | "CZK" | "RON" | "TRY" | null;
130
+ languages: ("en" | "fr" | "es" | "pt" | "it" | "de" | "nl" | "pl" | "ja" | "ko" | "sv" | "da" | "nb" | "cs" | "ro" | "fi" | "tr")[];
115
131
  locale: string | null;
116
132
  creditsPence: number;
117
133
  earningsPence: number;
@@ -135,8 +151,8 @@ export declare function makeApi(opts: StdioOptions): (tool: string, client?: str
135
151
  tier: 0 | 1 | 2 | 3;
136
152
  country: string | null;
137
153
  phone: string | null;
138
- displayCurrency: "GBP" | "USD" | "EUR" | "CAD" | null;
139
- languages: ("en" | "fr" | "es" | "pt" | "it" | "de" | "nl" | "pl")[];
154
+ displayCurrency: "GBP" | "USD" | "EUR" | "CAD" | "JPY" | "KRW" | "SEK" | "DKK" | "NOK" | "PLN" | "BRL" | "CZK" | "RON" | "TRY" | null;
155
+ languages: ("en" | "fr" | "es" | "pt" | "it" | "de" | "nl" | "pl" | "ja" | "ko" | "sv" | "da" | "nb" | "cs" | "ro" | "fi" | "tr")[];
140
156
  locale: string | null;
141
157
  creditsPence: number;
142
158
  earningsPence: number;
@@ -159,8 +175,8 @@ export declare function makeApi(opts: StdioOptions): (tool: string, client?: str
159
175
  tier: 0 | 1 | 2 | 3;
160
176
  country: string | null;
161
177
  phone: string | null;
162
- displayCurrency: "GBP" | "USD" | "EUR" | "CAD" | null;
163
- languages: ("en" | "fr" | "es" | "pt" | "it" | "de" | "nl" | "pl")[];
178
+ displayCurrency: "GBP" | "USD" | "EUR" | "CAD" | "JPY" | "KRW" | "SEK" | "DKK" | "NOK" | "PLN" | "BRL" | "CZK" | "RON" | "TRY" | null;
179
+ languages: ("en" | "fr" | "es" | "pt" | "it" | "de" | "nl" | "pl" | "ja" | "ko" | "sv" | "da" | "nb" | "cs" | "ro" | "fi" | "tr")[];
164
180
  locale: string | null;
165
181
  creditsPence: number;
166
182
  earningsPence: number;
@@ -183,8 +199,8 @@ export declare function makeApi(opts: StdioOptions): (tool: string, client?: str
183
199
  tier: 0 | 1 | 2 | 3;
184
200
  country: string | null;
185
201
  phone: string | null;
186
- displayCurrency: "GBP" | "USD" | "EUR" | "CAD" | null;
187
- languages: ("en" | "fr" | "es" | "pt" | "it" | "de" | "nl" | "pl")[];
202
+ displayCurrency: "GBP" | "USD" | "EUR" | "CAD" | "JPY" | "KRW" | "SEK" | "DKK" | "NOK" | "PLN" | "BRL" | "CZK" | "RON" | "TRY" | null;
203
+ languages: ("en" | "fr" | "es" | "pt" | "it" | "de" | "nl" | "pl" | "ja" | "ko" | "sv" | "da" | "nb" | "cs" | "ro" | "fi" | "tr")[];
188
204
  locale: string | null;
189
205
  creditsPence: number;
190
206
  earningsPence: number;
@@ -207,8 +223,8 @@ export declare function makeApi(opts: StdioOptions): (tool: string, client?: str
207
223
  tier: 0 | 1 | 2 | 3;
208
224
  country: string | null;
209
225
  phone: string | null;
210
- displayCurrency: "GBP" | "USD" | "EUR" | "CAD" | null;
211
- languages: ("en" | "fr" | "es" | "pt" | "it" | "de" | "nl" | "pl")[];
226
+ displayCurrency: "GBP" | "USD" | "EUR" | "CAD" | "JPY" | "KRW" | "SEK" | "DKK" | "NOK" | "PLN" | "BRL" | "CZK" | "RON" | "TRY" | null;
227
+ languages: ("en" | "fr" | "es" | "pt" | "it" | "de" | "nl" | "pl" | "ja" | "ko" | "sv" | "da" | "nb" | "cs" | "ro" | "fi" | "tr")[];
212
228
  locale: string | null;
213
229
  creditsPence: number;
214
230
  earningsPence: number;
@@ -232,8 +248,8 @@ export declare function makeApi(opts: StdioOptions): (tool: string, client?: str
232
248
  tier: 0 | 1 | 2 | 3;
233
249
  country: string | null;
234
250
  phone: string | null;
235
- displayCurrency: "GBP" | "USD" | "EUR" | "CAD" | null;
236
- languages: ("en" | "fr" | "es" | "pt" | "it" | "de" | "nl" | "pl")[];
251
+ displayCurrency: "GBP" | "USD" | "EUR" | "CAD" | "JPY" | "KRW" | "SEK" | "DKK" | "NOK" | "PLN" | "BRL" | "CZK" | "RON" | "TRY" | null;
252
+ languages: ("en" | "fr" | "es" | "pt" | "it" | "de" | "nl" | "pl" | "ja" | "ko" | "sv" | "da" | "nb" | "cs" | "ro" | "fi" | "tr")[];
237
253
  locale: string | null;
238
254
  creditsPence: number;
239
255
  earningsPence: number;
@@ -257,8 +273,8 @@ export declare function makeApi(opts: StdioOptions): (tool: string, client?: str
257
273
  tier: 0 | 1 | 2 | 3;
258
274
  country: string | null;
259
275
  phone: string | null;
260
- displayCurrency: "GBP" | "USD" | "EUR" | "CAD" | null;
261
- languages: ("en" | "fr" | "es" | "pt" | "it" | "de" | "nl" | "pl")[];
276
+ displayCurrency: "GBP" | "USD" | "EUR" | "CAD" | "JPY" | "KRW" | "SEK" | "DKK" | "NOK" | "PLN" | "BRL" | "CZK" | "RON" | "TRY" | null;
277
+ languages: ("en" | "fr" | "es" | "pt" | "it" | "de" | "nl" | "pl" | "ja" | "ko" | "sv" | "da" | "nb" | "cs" | "ro" | "fi" | "tr")[];
262
278
  locale: string | null;
263
279
  creditsPence: number;
264
280
  earningsPence: number;
@@ -286,8 +302,8 @@ export declare function makeApi(opts: StdioOptions): (tool: string, client?: str
286
302
  tier: 0 | 1 | 2 | 3;
287
303
  country: string | null;
288
304
  phone: string | null;
289
- displayCurrency: "GBP" | "USD" | "EUR" | "CAD" | null;
290
- languages: ("en" | "fr" | "es" | "pt" | "it" | "de" | "nl" | "pl")[];
305
+ displayCurrency: "GBP" | "USD" | "EUR" | "CAD" | "JPY" | "KRW" | "SEK" | "DKK" | "NOK" | "PLN" | "BRL" | "CZK" | "RON" | "TRY" | null;
306
+ languages: ("en" | "fr" | "es" | "pt" | "it" | "de" | "nl" | "pl" | "ja" | "ko" | "sv" | "da" | "nb" | "cs" | "ro" | "fi" | "tr")[];
291
307
  locale: string | null;
292
308
  creditsPence: number;
293
309
  earningsPence: number;
@@ -332,8 +348,8 @@ export declare function makeApi(opts: StdioOptions): (tool: string, client?: str
332
348
  tier: 0 | 1 | 2 | 3;
333
349
  country: string | null;
334
350
  phone: string | null;
335
- displayCurrency: "GBP" | "USD" | "EUR" | "CAD" | null;
336
- languages: ("en" | "fr" | "es" | "pt" | "it" | "de" | "nl" | "pl")[];
351
+ displayCurrency: "GBP" | "USD" | "EUR" | "CAD" | "JPY" | "KRW" | "SEK" | "DKK" | "NOK" | "PLN" | "BRL" | "CZK" | "RON" | "TRY" | null;
352
+ languages: ("en" | "fr" | "es" | "pt" | "it" | "de" | "nl" | "pl" | "ja" | "ko" | "sv" | "da" | "nb" | "cs" | "ro" | "fi" | "tr")[];
337
353
  locale: string | null;
338
354
  creditsPence: number;
339
355
  earningsPence: number;
@@ -408,6 +424,68 @@ export declare function makeApi(opts: StdioOptions): (tool: string, client?: str
408
424
  }>;
409
425
  };
410
426
  };
427
+ interestAudiences: {
428
+ list: (query?: Partial<import("@50heads/shared").AudienceListQuery>) => Promise<{
429
+ audiences: import("@50heads/shared").AudienceCard[];
430
+ }>;
431
+ get: (slug: string) => Promise<{
432
+ audience: import("@50heads/shared").PublicAudience;
433
+ }>;
434
+ ref: (code: string) => Promise<{
435
+ slug: string;
436
+ }>;
437
+ view: (slug: string, input: import("zod").input<typeof import("@50heads/shared").AudienceViewInput>) => Promise<{
438
+ ok: true;
439
+ }>;
440
+ join: (slug: string, input?: import("zod").input<typeof import("@50heads/shared").JoinStartInput>) => Promise<{
441
+ pj: string;
442
+ secret: string;
443
+ }>;
444
+ state: (slug: string, pj: string, secret: string, gpc?: boolean) => Promise<{
445
+ state: import("@50heads/shared").JoinState;
446
+ }>;
447
+ consent: (slug: string, pj: string, input: {
448
+ s: string;
449
+ measure: boolean;
450
+ }, gpc?: boolean) => Promise<{
451
+ ok: true;
452
+ }>;
453
+ answer: (slug: string, pj: string, input: {
454
+ s: string;
455
+ itemId: string;
456
+ answer: number;
457
+ }) => Promise<{
458
+ step: import("@50heads/shared").JoinState["step"];
459
+ }>;
460
+ claim: (slug: string, pj: string, secret: string) => Promise<{
461
+ membership: import("@50heads/shared").MyMembership;
462
+ }>;
463
+ mine: () => Promise<{
464
+ memberships: import("@50heads/shared").MyMembership[];
465
+ }>;
466
+ gradeUp: (slug: string) => Promise<{
467
+ pj: string;
468
+ secret: string;
469
+ }>;
470
+ workEmail: (slug: string, email: string) => Promise<{
471
+ domain: string;
472
+ }>;
473
+ workEmailVerify: (slug: string, code: string) => Promise<{
474
+ membership: import("@50heads/shared").MyMembership;
475
+ }>;
476
+ orgCode: (slug: string, code: string) => Promise<{
477
+ membership: import("@50heads/shared").MyMembership;
478
+ }>;
479
+ requestReview: (slug: string) => Promise<{
480
+ membership: import("@50heads/shared").MyMembership;
481
+ }>;
482
+ membership: (slug: string) => Promise<{
483
+ membership: import("@50heads/shared").MyMembership;
484
+ }>;
485
+ leave: (slug: string) => Promise<{
486
+ ok: true;
487
+ }>;
488
+ };
411
489
  me: () => Promise<{
412
490
  user: import("@50heads/shared").User;
413
491
  }>;
@@ -451,8 +529,8 @@ export declare function makeApi(opts: StdioOptions): (tool: string, client?: str
451
529
  tier: 0 | 1 | 2 | 3;
452
530
  country: string | null;
453
531
  phone: string | null;
454
- displayCurrency: "GBP" | "USD" | "EUR" | "CAD" | null;
455
- languages: ("en" | "fr" | "es" | "pt" | "it" | "de" | "nl" | "pl")[];
532
+ displayCurrency: "GBP" | "USD" | "EUR" | "CAD" | "JPY" | "KRW" | "SEK" | "DKK" | "NOK" | "PLN" | "BRL" | "CZK" | "RON" | "TRY" | null;
533
+ languages: ("en" | "fr" | "es" | "pt" | "it" | "de" | "nl" | "pl" | "ja" | "ko" | "sv" | "da" | "nb" | "cs" | "ro" | "fi" | "tr")[];
456
534
  locale: string | null;
457
535
  creditsPence: number;
458
536
  earningsPence: number;
@@ -465,6 +543,7 @@ export declare function makeApi(opts: StdioOptions): (tool: string, client?: str
465
543
  total: number;
466
544
  answered: number;
467
545
  };
546
+ earning: "open" | "limited";
468
547
  }>;
469
548
  update: (input: import("@50heads/shared").WorkerUpdateInput) => Promise<{
470
549
  user: import("@50heads/shared").User;
@@ -516,7 +595,7 @@ export declare function makeApi(opts: StdioOptions): (tool: string, client?: str
516
595
  withdrawQuote: () => Promise<{
517
596
  availablePence: number;
518
597
  minimumPence: number;
519
- currency: "GBP" | "USD" | "EUR" | "CAD";
598
+ currency: "GBP" | "USD" | "EUR" | "CAD" | "JPY" | "KRW" | "SEK" | "DKK" | "NOK" | "PLN" | "BRL" | "CZK" | "RON" | "TRY";
520
599
  receiveAmount: number | null;
521
600
  rails: string[];
522
601
  available: boolean;
@@ -556,7 +635,7 @@ export declare function makeApi(opts: StdioOptions): (tool: string, client?: str
556
635
  }>;
557
636
  shared: (token: string) => Promise<{
558
637
  question: {
559
- type: "single_choice" | "multi_choice" | "ab_image" | "pairwise" | "scale_1_5" | "ranking" | "yes_mostly_no" | "click_test" | "reaction" | "free_text";
638
+ type: "single_choice" | "multi_choice" | "ab_image" | "pairwise" | "scale_1_5" | "ranking" | "yes_no" | "yes_mostly_no" | "click_test" | "reaction" | "free_text";
560
639
  text: string;
561
640
  language: string;
562
641
  options: {
@@ -569,8 +648,10 @@ export declare function makeApi(opts: StdioOptions): (tool: string, client?: str
569
648
  rush: boolean;
570
649
  publicResults: boolean;
571
650
  reason: "off" | "optional" | "required";
651
+ answeredBy: "heads" | "private";
652
+ openForDays: 1 | 14 | 7 | 30;
572
653
  id: string;
573
- status: "cancelled" | "draft" | "scheduled" | "live" | "complete" | "underfilled" | "refused";
654
+ status: "cancelled" | "closed" | "live" | "scheduled" | "draft" | "complete" | "underfilled" | "refused";
574
655
  source: "app" | "portal" | "api" | "mcp";
575
656
  answered: number;
576
657
  creditsPerAnswer: number;
@@ -602,6 +683,13 @@ export declare function makeApi(opts: StdioOptions): (tool: string, client?: str
602
683
  } | undefined;
603
684
  scheduledFor?: string | undefined;
604
685
  contentFlag?: "medical" | "violence" | "distressing" | "alcohol_gambling" | "political" | "none" | undefined;
686
+ interestAudienceId?: string | undefined;
687
+ minGrade?: 1 | 2 | 3 | undefined;
688
+ interestPrice?: {
689
+ perAnswerPence: number;
690
+ headShareBps: number;
691
+ } | undefined;
692
+ shownAs?: string | undefined;
605
693
  teamId?: string | null | undefined;
606
694
  askedBy?: {
607
695
  id: string;
@@ -612,6 +700,17 @@ export declare function makeApi(opts: StdioOptions): (tool: string, client?: str
612
700
  archived?: boolean | undefined;
613
701
  bookmarked?: boolean | undefined;
614
702
  externalRef?: string | null | undefined;
703
+ link?: {
704
+ url: string;
705
+ qrSvgUrl: string;
706
+ qrPngUrl: string;
707
+ closesAt: string | null;
708
+ views: number;
709
+ started: number;
710
+ } | null | undefined;
711
+ setId?: string | null | undefined;
712
+ setPosition?: number | null | undefined;
713
+ setCount?: number | null | undefined;
615
714
  };
616
715
  result: {
617
716
  questionId: string;
@@ -635,7 +734,7 @@ export declare function makeApi(opts: StdioOptions): (tool: string, client?: str
635
734
  note: string;
636
735
  suggestedFollowUp: string | null;
637
736
  };
638
- tier: number;
737
+ tier: number | null;
639
738
  language: string;
640
739
  verificationLine: string;
641
740
  medianSeconds: number | null;
@@ -643,8 +742,8 @@ export declare function makeApi(opts: StdioOptions): (tool: string, client?: str
643
742
  answers: {
644
743
  option: string | null;
645
744
  text: string | null;
646
- tier: number;
647
- attestationRef: string;
745
+ tier: number | null;
746
+ attestationRef: string | null;
648
747
  answeredAt: string;
649
748
  translatedText?: string | null | undefined;
650
749
  reason?: string | null | undefined;
@@ -663,6 +762,14 @@ export declare function makeApi(opts: StdioOptions): (tool: string, client?: str
663
762
  }[] | undefined;
664
763
  }[];
665
764
  refundCredits: number;
765
+ provenance?: {
766
+ answeredBy: "heads" | "private";
767
+ access: "app" | "shared_link";
768
+ verified: boolean;
769
+ answers: number;
770
+ issued: number | null;
771
+ denominator: "unknown" | "known";
772
+ } | undefined;
666
773
  breakdown?: {
667
774
  tagId: string;
668
775
  label: string;
@@ -678,7 +785,7 @@ export declare function makeApi(opts: StdioOptions): (tool: string, client?: str
678
785
  }[];
679
786
  }[] | undefined;
680
787
  breakdowns?: {
681
- dimension: "country" | "tier" | "gender" | "age_band" | "tag";
788
+ dimension: "country" | "tier" | "language" | "gender" | "age_band" | "tag";
682
789
  segments: {
683
790
  label: string;
684
791
  n: number;
@@ -782,6 +889,75 @@ export declare function makeApi(opts: StdioOptions): (tool: string, client?: str
782
889
  };
783
890
  expiresAt: string;
784
891
  }>;
892
+ link: (code: string) => Promise<{
893
+ kind: "set" | "question";
894
+ state: "closed" | "live" | "scheduled" | "full" | "paused";
895
+ shownAs: string | null;
896
+ language: string;
897
+ question: {
898
+ type: string;
899
+ text: string;
900
+ context: string | null;
901
+ language: string;
902
+ options: {
903
+ label: string;
904
+ imageUrl: string | null;
905
+ }[];
906
+ neither: boolean;
907
+ stimulus: {
908
+ imageUrl: string | null;
909
+ audioUrl: string | null;
910
+ text: string | null;
911
+ } | null;
912
+ maxTaps: number | null;
913
+ pair: [number, number] | null;
914
+ } | null;
915
+ opensAt: string | null;
916
+ showResult: boolean;
917
+ resultCode: string | null;
918
+ set: {
919
+ count: number;
920
+ questions: {
921
+ position: number;
922
+ state: "closed" | "live" | "scheduled" | "full" | "paused";
923
+ question: {
924
+ type: string;
925
+ text: string;
926
+ context: string | null;
927
+ language: string;
928
+ options: {
929
+ label: string;
930
+ imageUrl: string | null;
931
+ }[];
932
+ neither: boolean;
933
+ stimulus: {
934
+ imageUrl: string | null;
935
+ audioUrl: string | null;
936
+ text: string | null;
937
+ } | null;
938
+ maxTaps: number | null;
939
+ pair: [number, number] | null;
940
+ } | null;
941
+ }[];
942
+ } | null;
943
+ }>;
944
+ answerLink: (code: string, input: import("@50heads/shared").PublicLinkAnswerInput) => Promise<{
945
+ accepted: boolean;
946
+ state: "closed" | "live" | "scheduled" | "full" | "paused";
947
+ showResult: boolean;
948
+ resultCode: string | null;
949
+ visit: string | null;
950
+ remaining: number[];
951
+ answered: {
952
+ position: number;
953
+ resultCode: string | null;
954
+ }[];
955
+ }>;
956
+ linkStarted: (code: string, input: {
957
+ nonce: string;
958
+ }) => Promise<{
959
+ ok: true;
960
+ }>;
785
961
  templates: () => Promise<{
786
962
  templates: import("@50heads/shared").Template[];
787
963
  }>;
@@ -842,7 +1018,10 @@ export declare function makeApi(opts: StdioOptions): (tool: string, client?: str
842
1018
  emailResults: boolean;
843
1019
  emailLowCredits: boolean;
844
1020
  emailWeeklyDigest: boolean;
1021
+ quietDays?: number[] | undefined;
845
1022
  emailExpiringCredits?: boolean | undefined;
1023
+ emailAudiences?: boolean | undefined;
1024
+ emailLifecycle?: boolean | undefined;
846
1025
  }>;
847
1026
  setNotifications: (prefs: import("@50heads/shared").NotificationPrefs) => Promise<{
848
1027
  questionsWaiting: boolean;
@@ -856,7 +1035,10 @@ export declare function makeApi(opts: StdioOptions): (tool: string, client?: str
856
1035
  emailResults: boolean;
857
1036
  emailLowCredits: boolean;
858
1037
  emailWeeklyDigest: boolean;
1038
+ quietDays?: number[] | undefined;
859
1039
  emailExpiringCredits?: boolean | undefined;
1040
+ emailAudiences?: boolean | undefined;
1041
+ emailLifecycle?: boolean | undefined;
860
1042
  }>;
861
1043
  prompts: () => Promise<{
862
1044
  due: ("verify_phone" | "verify_id" | "rating_first_payout" | "rating_tier2" | "rating_milestone_100" | "rating_milestone_500" | "rating_first_result" | "notifications" | "add_tags" | "invite_friend" | "set_payout_method" | "feed_first" | "feed_tier2_pays")[];
@@ -919,10 +1101,14 @@ export declare function makeApi(opts: StdioOptions): (tool: string, client?: str
919
1101
  };
920
1102
  attest: {
921
1103
  nonce: () => Promise<import("@50heads/shared").AttestNonce>;
922
- verify: (input: import("@50heads/shared").AttestRequest) => Promise<{
1104
+ verify: (input: import("@50heads/shared").AttestRequest) => Promise<import("@50heads/shared").AttestResult>;
1105
+ rotateKey: (input: import("zod").input<typeof import("@50heads/shared").DeviceKeyRotateInput>) => Promise<{
923
1106
  ok: true;
924
1107
  }>;
925
- rotateKey: (input: import("zod").input<typeof import("@50heads/shared").DeviceKeyRotateInput>) => Promise<{
1108
+ };
1109
+ deviceCheck: {
1110
+ nonce: (device: import("zod").infer<typeof import("@50heads/shared").DeviceCheckNonceInput>["device"]) => Promise<import("@50heads/shared").AttestNonce>;
1111
+ verify: (input: import("@50heads/shared").DeviceCheckRequest) => Promise<{
926
1112
  ok: true;
927
1113
  }>;
928
1114
  };
@@ -953,6 +1139,136 @@ export declare function makeApi(opts: StdioOptions): (tool: string, client?: str
953
1139
  height: number | null;
954
1140
  }>;
955
1141
  };
1142
+ reviews: {
1143
+ start: (draft: import("@50heads/shared").QuestionDraftInput) => Promise<{
1144
+ inputHash: string;
1145
+ status: "pending" | "failed" | "skipped" | "ready";
1146
+ review?: {
1147
+ status: "ok" | "unavailable" | "skipped";
1148
+ rubricVersion: string;
1149
+ model?: string | undefined;
1150
+ inputHash?: string | undefined;
1151
+ overall?: "pass" | "suggest" | undefined;
1152
+ scores?: {
1153
+ clarity: number;
1154
+ singleIdea: number;
1155
+ neutral: number;
1156
+ options: number;
1157
+ answerable: number;
1158
+ length: number;
1159
+ } | undefined;
1160
+ suggestions?: {
1161
+ id: string;
1162
+ code: string;
1163
+ severity: "info" | "suggest" | "strong";
1164
+ field: string;
1165
+ reason: string;
1166
+ op?: {
1167
+ type: "replace_text";
1168
+ text: string;
1169
+ } | {
1170
+ type: "replace_context";
1171
+ context: string;
1172
+ } | {
1173
+ type: "replace_stimulus_text";
1174
+ text: string;
1175
+ } | {
1176
+ type: "replace_option";
1177
+ index: number;
1178
+ label: string;
1179
+ } | {
1180
+ type: "add_option";
1181
+ label: string;
1182
+ index?: number | undefined;
1183
+ } | {
1184
+ type: "remove_option";
1185
+ index: number;
1186
+ } | {
1187
+ type: "reorder_options";
1188
+ order: number[];
1189
+ } | {
1190
+ type: "set_neither";
1191
+ neither: boolean;
1192
+ } | {
1193
+ type: "set_type";
1194
+ questionType: "single_choice" | "multi_choice" | "ab_image" | "pairwise" | "scale_1_5" | "ranking" | "yes_no" | "yes_mostly_no" | "click_test" | "reaction" | "free_text";
1195
+ } | {
1196
+ type: "tidy";
1197
+ text?: string | undefined;
1198
+ context?: string | undefined;
1199
+ stimulusText?: string | undefined;
1200
+ options?: string[] | undefined;
1201
+ } | undefined;
1202
+ }[] | undefined;
1203
+ skippedReason?: "flag_off" | "incomplete" | "no_text" | "content_refused" | "ai_off" | "asks_killed" | undefined;
1204
+ } | undefined;
1205
+ retryMs?: number | undefined;
1206
+ }>;
1207
+ get: (inputHash: string) => Promise<{
1208
+ inputHash: string;
1209
+ status: "pending" | "failed" | "skipped" | "ready";
1210
+ review?: {
1211
+ status: "ok" | "unavailable" | "skipped";
1212
+ rubricVersion: string;
1213
+ model?: string | undefined;
1214
+ inputHash?: string | undefined;
1215
+ overall?: "pass" | "suggest" | undefined;
1216
+ scores?: {
1217
+ clarity: number;
1218
+ singleIdea: number;
1219
+ neutral: number;
1220
+ options: number;
1221
+ answerable: number;
1222
+ length: number;
1223
+ } | undefined;
1224
+ suggestions?: {
1225
+ id: string;
1226
+ code: string;
1227
+ severity: "info" | "suggest" | "strong";
1228
+ field: string;
1229
+ reason: string;
1230
+ op?: {
1231
+ type: "replace_text";
1232
+ text: string;
1233
+ } | {
1234
+ type: "replace_context";
1235
+ context: string;
1236
+ } | {
1237
+ type: "replace_stimulus_text";
1238
+ text: string;
1239
+ } | {
1240
+ type: "replace_option";
1241
+ index: number;
1242
+ label: string;
1243
+ } | {
1244
+ type: "add_option";
1245
+ label: string;
1246
+ index?: number | undefined;
1247
+ } | {
1248
+ type: "remove_option";
1249
+ index: number;
1250
+ } | {
1251
+ type: "reorder_options";
1252
+ order: number[];
1253
+ } | {
1254
+ type: "set_neither";
1255
+ neither: boolean;
1256
+ } | {
1257
+ type: "set_type";
1258
+ questionType: "single_choice" | "multi_choice" | "ab_image" | "pairwise" | "scale_1_5" | "ranking" | "yes_no" | "yes_mostly_no" | "click_test" | "reaction" | "free_text";
1259
+ } | {
1260
+ type: "tidy";
1261
+ text?: string | undefined;
1262
+ context?: string | undefined;
1263
+ stimulusText?: string | undefined;
1264
+ options?: string[] | undefined;
1265
+ } | undefined;
1266
+ }[] | undefined;
1267
+ skippedReason?: "flag_off" | "incomplete" | "no_text" | "content_refused" | "ai_off" | "asks_killed" | undefined;
1268
+ } | undefined;
1269
+ retryMs?: number | undefined;
1270
+ }>;
1271
+ };
956
1272
  drafts: {
957
1273
  list: () => Promise<{
958
1274
  drafts: import("@50heads/shared").Draft[];
@@ -962,7 +1278,7 @@ export declare function makeApi(opts: StdioOptions): (tool: string, client?: str
962
1278
  }, id?: string) => Promise<{
963
1279
  id: string;
964
1280
  draft: {
965
- type: "single_choice" | "multi_choice" | "ab_image" | "pairwise" | "scale_1_5" | "ranking" | "yes_mostly_no" | "click_test" | "reaction" | "free_text";
1281
+ type: "single_choice" | "multi_choice" | "ab_image" | "pairwise" | "scale_1_5" | "ranking" | "yes_no" | "yes_mostly_no" | "click_test" | "reaction" | "free_text";
966
1282
  text?: string | undefined;
967
1283
  context?: string | undefined;
968
1284
  language?: string | undefined;
@@ -994,6 +1310,15 @@ export declare function makeApi(opts: StdioOptions): (tool: string, client?: str
994
1310
  publicResults?: boolean | undefined;
995
1311
  reason?: "off" | "optional" | "required" | undefined;
996
1312
  contentFlag?: "medical" | "violence" | "distressing" | "alcohol_gambling" | "political" | "none" | undefined;
1313
+ interestAudienceId?: string | undefined;
1314
+ minGrade?: 1 | 2 | 3 | undefined;
1315
+ interestPrice?: {
1316
+ perAnswerPence: number;
1317
+ headShareBps: number;
1318
+ } | undefined;
1319
+ answeredBy?: "heads" | "private" | undefined;
1320
+ openForDays?: 1 | 14 | 7 | 30 | undefined;
1321
+ shownAs?: string | undefined;
997
1322
  };
998
1323
  updatedAt: string;
999
1324
  }>;
@@ -1001,6 +1326,332 @@ export declare function makeApi(opts: StdioOptions): (tool: string, client?: str
1001
1326
  ok: true;
1002
1327
  }>;
1003
1328
  };
1329
+ sets: {
1330
+ create: (input: import("@50heads/shared").SetCreateInputInput, idempotencyKey: string) => Promise<{
1331
+ set: {
1332
+ id: string;
1333
+ status: "open" | "closed";
1334
+ shownAs: string | null;
1335
+ maxAnswers: number;
1336
+ openForDays: 1 | 14 | 7 | 30;
1337
+ publicResults: boolean;
1338
+ expiresAt: string;
1339
+ questionIds: string[];
1340
+ answered: number;
1341
+ creditsReserved: number;
1342
+ creditsSpent: number;
1343
+ link: {
1344
+ url: string;
1345
+ qrSvgUrl: string;
1346
+ qrPngUrl: string;
1347
+ closesAt: string | null;
1348
+ views: number;
1349
+ started: number;
1350
+ } | null;
1351
+ teamId: string | null;
1352
+ createdAt: string;
1353
+ closedAt: string | null;
1354
+ };
1355
+ questions: {
1356
+ type: "single_choice" | "multi_choice" | "ab_image" | "pairwise" | "scale_1_5" | "ranking" | "yes_no" | "yes_mostly_no" | "click_test" | "reaction" | "free_text";
1357
+ text: string;
1358
+ language: string;
1359
+ options: {
1360
+ label: string;
1361
+ imageUrl?: string | undefined;
1362
+ }[];
1363
+ neither: boolean;
1364
+ n: number;
1365
+ tier: 1 | 2 | 3;
1366
+ rush: boolean;
1367
+ publicResults: boolean;
1368
+ reason: "off" | "optional" | "required";
1369
+ answeredBy: "heads" | "private";
1370
+ openForDays: 1 | 14 | 7 | 30;
1371
+ id: string;
1372
+ status: "cancelled" | "closed" | "live" | "scheduled" | "draft" | "complete" | "underfilled" | "refused";
1373
+ source: "app" | "portal" | "api" | "mcp";
1374
+ answered: number;
1375
+ creditsPerAnswer: number;
1376
+ creditsReserved: number;
1377
+ creditsSpent: number;
1378
+ etaMinutes: number;
1379
+ leaderLine: string | null;
1380
+ refusedCategory: string | null;
1381
+ publicCode: string | null;
1382
+ createdAt: string;
1383
+ liveAt: string | null;
1384
+ closedAt: string | null;
1385
+ context?: string | undefined;
1386
+ stimulus?: {
1387
+ imageUrl?: string | undefined;
1388
+ audioUrl?: string | undefined;
1389
+ text?: string | undefined;
1390
+ exposureMs?: number | undefined;
1391
+ } | undefined;
1392
+ targeting?: {
1393
+ countries: string[];
1394
+ tags: string[];
1395
+ ageBands?: ("18-24" | "25-34" | "35-44" | "45-54" | "55-64" | "65+")[] | undefined;
1396
+ genders?: ("woman" | "man" | "non_binary")[] | undefined;
1397
+ verifiedAge?: boolean | undefined;
1398
+ } | undefined;
1399
+ clickTest?: {
1400
+ maxTaps: number;
1401
+ } | undefined;
1402
+ scheduledFor?: string | undefined;
1403
+ contentFlag?: "medical" | "violence" | "distressing" | "alcohol_gambling" | "political" | "none" | undefined;
1404
+ interestAudienceId?: string | undefined;
1405
+ minGrade?: 1 | 2 | 3 | undefined;
1406
+ interestPrice?: {
1407
+ perAnswerPence: number;
1408
+ headShareBps: number;
1409
+ } | undefined;
1410
+ shownAs?: string | undefined;
1411
+ teamId?: string | null | undefined;
1412
+ askedBy?: {
1413
+ id: string;
1414
+ name: string | null;
1415
+ } | null | undefined;
1416
+ projectId?: string | null | undefined;
1417
+ labels?: string[] | undefined;
1418
+ archived?: boolean | undefined;
1419
+ bookmarked?: boolean | undefined;
1420
+ externalRef?: string | null | undefined;
1421
+ link?: {
1422
+ url: string;
1423
+ qrSvgUrl: string;
1424
+ qrPngUrl: string;
1425
+ closesAt: string | null;
1426
+ views: number;
1427
+ started: number;
1428
+ } | null | undefined;
1429
+ setId?: string | null | undefined;
1430
+ setPosition?: number | null | undefined;
1431
+ setCount?: number | null | undefined;
1432
+ }[];
1433
+ }>;
1434
+ list: (filter?: {
1435
+ status?: import("@50heads/shared").SetStatus;
1436
+ limit?: number;
1437
+ cursor?: string;
1438
+ }) => Promise<{
1439
+ sets: import("@50heads/shared").SetV2[];
1440
+ nextCursor: string | null;
1441
+ }>;
1442
+ get: (id: string) => Promise<{
1443
+ set: {
1444
+ id: string;
1445
+ status: "open" | "closed";
1446
+ shownAs: string | null;
1447
+ maxAnswers: number;
1448
+ openForDays: 1 | 14 | 7 | 30;
1449
+ publicResults: boolean;
1450
+ expiresAt: string;
1451
+ questionIds: string[];
1452
+ answered: number;
1453
+ creditsReserved: number;
1454
+ creditsSpent: number;
1455
+ link: {
1456
+ url: string;
1457
+ qrSvgUrl: string;
1458
+ qrPngUrl: string;
1459
+ closesAt: string | null;
1460
+ views: number;
1461
+ started: number;
1462
+ } | null;
1463
+ teamId: string | null;
1464
+ createdAt: string;
1465
+ closedAt: string | null;
1466
+ };
1467
+ questions: {
1468
+ type: "single_choice" | "multi_choice" | "ab_image" | "pairwise" | "scale_1_5" | "ranking" | "yes_no" | "yes_mostly_no" | "click_test" | "reaction" | "free_text";
1469
+ text: string;
1470
+ language: string;
1471
+ options: {
1472
+ label: string;
1473
+ imageUrl?: string | undefined;
1474
+ }[];
1475
+ neither: boolean;
1476
+ n: number;
1477
+ tier: 1 | 2 | 3;
1478
+ rush: boolean;
1479
+ publicResults: boolean;
1480
+ reason: "off" | "optional" | "required";
1481
+ answeredBy: "heads" | "private";
1482
+ openForDays: 1 | 14 | 7 | 30;
1483
+ id: string;
1484
+ status: "cancelled" | "closed" | "live" | "scheduled" | "draft" | "complete" | "underfilled" | "refused";
1485
+ source: "app" | "portal" | "api" | "mcp";
1486
+ answered: number;
1487
+ creditsPerAnswer: number;
1488
+ creditsReserved: number;
1489
+ creditsSpent: number;
1490
+ etaMinutes: number;
1491
+ leaderLine: string | null;
1492
+ refusedCategory: string | null;
1493
+ publicCode: string | null;
1494
+ createdAt: string;
1495
+ liveAt: string | null;
1496
+ closedAt: string | null;
1497
+ context?: string | undefined;
1498
+ stimulus?: {
1499
+ imageUrl?: string | undefined;
1500
+ audioUrl?: string | undefined;
1501
+ text?: string | undefined;
1502
+ exposureMs?: number | undefined;
1503
+ } | undefined;
1504
+ targeting?: {
1505
+ countries: string[];
1506
+ tags: string[];
1507
+ ageBands?: ("18-24" | "25-34" | "35-44" | "45-54" | "55-64" | "65+")[] | undefined;
1508
+ genders?: ("woman" | "man" | "non_binary")[] | undefined;
1509
+ verifiedAge?: boolean | undefined;
1510
+ } | undefined;
1511
+ clickTest?: {
1512
+ maxTaps: number;
1513
+ } | undefined;
1514
+ scheduledFor?: string | undefined;
1515
+ contentFlag?: "medical" | "violence" | "distressing" | "alcohol_gambling" | "political" | "none" | undefined;
1516
+ interestAudienceId?: string | undefined;
1517
+ minGrade?: 1 | 2 | 3 | undefined;
1518
+ interestPrice?: {
1519
+ perAnswerPence: number;
1520
+ headShareBps: number;
1521
+ } | undefined;
1522
+ shownAs?: string | undefined;
1523
+ teamId?: string | null | undefined;
1524
+ askedBy?: {
1525
+ id: string;
1526
+ name: string | null;
1527
+ } | null | undefined;
1528
+ projectId?: string | null | undefined;
1529
+ labels?: string[] | undefined;
1530
+ archived?: boolean | undefined;
1531
+ bookmarked?: boolean | undefined;
1532
+ externalRef?: string | null | undefined;
1533
+ link?: {
1534
+ url: string;
1535
+ qrSvgUrl: string;
1536
+ qrPngUrl: string;
1537
+ closesAt: string | null;
1538
+ views: number;
1539
+ started: number;
1540
+ } | null | undefined;
1541
+ setId?: string | null | undefined;
1542
+ setPosition?: number | null | undefined;
1543
+ setCount?: number | null | undefined;
1544
+ }[];
1545
+ }>;
1546
+ close: (id: string) => Promise<{
1547
+ set: {
1548
+ id: string;
1549
+ status: "open" | "closed";
1550
+ shownAs: string | null;
1551
+ maxAnswers: number;
1552
+ openForDays: 1 | 14 | 7 | 30;
1553
+ publicResults: boolean;
1554
+ expiresAt: string;
1555
+ questionIds: string[];
1556
+ answered: number;
1557
+ creditsReserved: number;
1558
+ creditsSpent: number;
1559
+ link: {
1560
+ url: string;
1561
+ qrSvgUrl: string;
1562
+ qrPngUrl: string;
1563
+ closesAt: string | null;
1564
+ views: number;
1565
+ started: number;
1566
+ } | null;
1567
+ teamId: string | null;
1568
+ createdAt: string;
1569
+ closedAt: string | null;
1570
+ };
1571
+ questions: {
1572
+ type: "single_choice" | "multi_choice" | "ab_image" | "pairwise" | "scale_1_5" | "ranking" | "yes_no" | "yes_mostly_no" | "click_test" | "reaction" | "free_text";
1573
+ text: string;
1574
+ language: string;
1575
+ options: {
1576
+ label: string;
1577
+ imageUrl?: string | undefined;
1578
+ }[];
1579
+ neither: boolean;
1580
+ n: number;
1581
+ tier: 1 | 2 | 3;
1582
+ rush: boolean;
1583
+ publicResults: boolean;
1584
+ reason: "off" | "optional" | "required";
1585
+ answeredBy: "heads" | "private";
1586
+ openForDays: 1 | 14 | 7 | 30;
1587
+ id: string;
1588
+ status: "cancelled" | "closed" | "live" | "scheduled" | "draft" | "complete" | "underfilled" | "refused";
1589
+ source: "app" | "portal" | "api" | "mcp";
1590
+ answered: number;
1591
+ creditsPerAnswer: number;
1592
+ creditsReserved: number;
1593
+ creditsSpent: number;
1594
+ etaMinutes: number;
1595
+ leaderLine: string | null;
1596
+ refusedCategory: string | null;
1597
+ publicCode: string | null;
1598
+ createdAt: string;
1599
+ liveAt: string | null;
1600
+ closedAt: string | null;
1601
+ context?: string | undefined;
1602
+ stimulus?: {
1603
+ imageUrl?: string | undefined;
1604
+ audioUrl?: string | undefined;
1605
+ text?: string | undefined;
1606
+ exposureMs?: number | undefined;
1607
+ } | undefined;
1608
+ targeting?: {
1609
+ countries: string[];
1610
+ tags: string[];
1611
+ ageBands?: ("18-24" | "25-34" | "35-44" | "45-54" | "55-64" | "65+")[] | undefined;
1612
+ genders?: ("woman" | "man" | "non_binary")[] | undefined;
1613
+ verifiedAge?: boolean | undefined;
1614
+ } | undefined;
1615
+ clickTest?: {
1616
+ maxTaps: number;
1617
+ } | undefined;
1618
+ scheduledFor?: string | undefined;
1619
+ contentFlag?: "medical" | "violence" | "distressing" | "alcohol_gambling" | "political" | "none" | undefined;
1620
+ interestAudienceId?: string | undefined;
1621
+ minGrade?: 1 | 2 | 3 | undefined;
1622
+ interestPrice?: {
1623
+ perAnswerPence: number;
1624
+ headShareBps: number;
1625
+ } | undefined;
1626
+ shownAs?: string | undefined;
1627
+ teamId?: string | null | undefined;
1628
+ askedBy?: {
1629
+ id: string;
1630
+ name: string | null;
1631
+ } | null | undefined;
1632
+ projectId?: string | null | undefined;
1633
+ labels?: string[] | undefined;
1634
+ archived?: boolean | undefined;
1635
+ bookmarked?: boolean | undefined;
1636
+ externalRef?: string | null | undefined;
1637
+ link?: {
1638
+ url: string;
1639
+ qrSvgUrl: string;
1640
+ qrPngUrl: string;
1641
+ closesAt: string | null;
1642
+ views: number;
1643
+ started: number;
1644
+ } | null | undefined;
1645
+ setId?: string | null | undefined;
1646
+ setPosition?: number | null | undefined;
1647
+ setCount?: number | null | undefined;
1648
+ }[];
1649
+ } & {
1650
+ refundCredits: number;
1651
+ }>;
1652
+ linkQrUrl: (id: string, format: "svg" | "png") => string;
1653
+ exportCsvUrl: (id: string) => string;
1654
+ };
1004
1655
  asks: {
1005
1656
  create: (draft: import("@50heads/shared").QuestionDraftInput, idempotencyKey: string, fromDraftId?: string) => Promise<{
1006
1657
  question: import("@50heads/shared").QuestionV2;
@@ -1039,8 +1690,8 @@ export declare function makeApi(opts: StdioOptions): (tool: string, client?: str
1039
1690
  answers: {
1040
1691
  option: string | null;
1041
1692
  text: string | null;
1042
- tier: number;
1043
- attestationRef: string;
1693
+ tier: number | null;
1694
+ attestationRef: string | null;
1044
1695
  answeredAt: string;
1045
1696
  translatedText?: string | null | undefined;
1046
1697
  reason?: string | null | undefined;
@@ -1084,10 +1735,13 @@ export declare function makeApi(opts: StdioOptions): (tool: string, client?: str
1084
1735
  }>;
1085
1736
  exportCsvUrl: (id: string, filter?: import("@50heads/shared").ResultFilterInput) => string;
1086
1737
  heatmapUrl: (id: string) => string;
1738
+ linkQrUrl: (id: string, format: "svg" | "png") => string;
1087
1739
  rate: (id: string, usefulness: number) => Promise<{
1088
1740
  ok: true;
1089
1741
  }>;
1090
- createWith: (draft: import("@50heads/shared").QuestionDraftInput, idempotencyKey: string, extras: import("@50heads/shared").AskExtrasInput) => Promise<{
1742
+ createWith: (draft: import("@50heads/shared").QuestionDraftInput, idempotencyKey: string, extras: import("@50heads/shared").AskExtrasInput & {
1743
+ fromDraftId?: string;
1744
+ }) => Promise<{
1091
1745
  question: import("@50heads/shared").QuestionV2;
1092
1746
  }>;
1093
1747
  update: (id: string, input: import("@50heads/shared").QuestionUpdateInput) => Promise<{
@@ -1156,9 +1810,10 @@ export declare function makeApi(opts: StdioOptions): (tool: string, client?: str
1156
1810
  credits: number;
1157
1811
  expiresAt: string;
1158
1812
  }[];
1159
- currency: "GBP" | "USD" | "EUR" | "CAD";
1813
+ currency: "GBP" | "USD" | "EUR" | "CAD" | "JPY" | "KRW" | "SEK" | "DKK" | "NOK" | "PLN" | "BRL" | "CZK" | "RON" | "TRY";
1160
1814
  capRemaining: number | null;
1161
1815
  freeQuestionToday: boolean;
1816
+ privateDeclaredAt?: string | null | undefined;
1162
1817
  }>;
1163
1818
  packs: (currency: string) => Promise<{
1164
1819
  packs: {
@@ -1242,6 +1897,9 @@ export declare function makeApi(opts: StdioOptions): (tool: string, client?: str
1242
1897
  save: (input: import("zod").infer<typeof import("@50heads/shared").SavedAudienceInput>) => Promise<{
1243
1898
  audience: import("@50heads/shared").SavedAudience;
1244
1899
  }>;
1900
+ update: (id: string, input: import("zod").infer<typeof import("@50heads/shared").SavedAudienceInput>) => Promise<{
1901
+ audience: import("@50heads/shared").SavedAudience;
1902
+ }>;
1245
1903
  remove: (id: string) => Promise<{
1246
1904
  ok: true;
1247
1905
  }>;
@@ -1277,7 +1935,7 @@ export declare function makeApi(opts: StdioOptions): (tool: string, client?: str
1277
1935
  recent: {
1278
1936
  id: string;
1279
1937
  at: string;
1280
- kind: "clawback" | "not_paid" | "say" | "ask" | "purchase" | "refund" | "bonus" | "referral" | "payout" | "payout_returned" | "fee" | "expiry" | "adjustment" | "tier2_fee";
1938
+ kind: "clawback" | "not_paid" | "say" | "ask" | "purchase" | "refund" | "bonus" | "referral" | "payout" | "payout_returned" | "fee" | "expiry" | "adjustment" | "tier2_fee" | "founder_credits";
1281
1939
  title: string;
1282
1940
  state: "not_paid" | "available" | "pending" | "in_flight" | "paid" | "reversed";
1283
1941
  amount: number;
@@ -1307,8 +1965,10 @@ export declare function makeApi(opts: StdioOptions): (tool: string, client?: str
1307
1965
  amountPence: number;
1308
1966
  saysNeeded: number;
1309
1967
  saysDone: number;
1310
- state: "in_progress" | "paid" | "closed";
1968
+ state: "closed" | "in_progress" | "paid";
1311
1969
  } | null | undefined;
1970
+ founderCredits?: number | null | undefined;
1971
+ founderCreditsPending?: number | null | undefined;
1312
1972
  accepted?: {
1313
1973
  rate: number | null;
1314
1974
  accepted: number;
@@ -1362,7 +2022,7 @@ export declare function makeApi(opts: StdioOptions): (tool: string, client?: str
1362
2022
  currency: string;
1363
2023
  };
1364
2024
  arrives: string;
1365
- blocker: "tax_details_required" | "no_method" | "below_minimum" | "reverify_required" | "frozen" | "method_cooling_off" | null;
2025
+ blocker: "tax_details_required" | "no_method" | "below_minimum" | "reverify_required" | "frozen" | "method_cooling_off" | "method_unavailable" | "integrity_limited" | null;
1366
2026
  quoteId: string;
1367
2027
  usableFrom?: string | null | undefined;
1368
2028
  }>;
@@ -1373,8 +2033,69 @@ export declare function makeApi(opts: StdioOptions): (tool: string, client?: str
1373
2033
  withdrawals: import("@50heads/shared").Withdrawal[];
1374
2034
  }>;
1375
2035
  payoutMethods: () => Promise<{
1376
- methods: import("@50heads/shared").PayoutMethod[];
2036
+ methods: {
2037
+ id: string;
2038
+ rail: "wise" | "paypal" | "bank_uk" | "venmo";
2039
+ masked: string;
2040
+ holderName: string | null;
2041
+ currency: string;
2042
+ isDefault: boolean;
2043
+ status: "active" | "failed" | "pending_confirmation";
2044
+ copResult: "match" | "close_match" | "no_match" | "unavailable" | null;
2045
+ unavailableReason: string | null;
2046
+ usableFrom?: string | null | undefined;
2047
+ label?: string | undefined;
2048
+ }[];
1377
2049
  available: string[];
2050
+ offered?: {
2051
+ rail: "wise" | "paypal" | "bank_uk" | "venmo";
2052
+ label: string;
2053
+ line: string;
2054
+ currency: string;
2055
+ lockedReason: string | null;
2056
+ }[] | undefined;
2057
+ addDefault?: "wise" | "paypal" | "bank_uk" | "venmo" | undefined;
2058
+ withdrawDefault?: string | null | undefined;
2059
+ }>;
2060
+ wiseRequirements: (currency: string) => Promise<{
2061
+ currency: string;
2062
+ source: "wise" | "fallback";
2063
+ requirement: {
2064
+ type: string;
2065
+ title: string;
2066
+ fields: {
2067
+ key: string;
2068
+ label: string;
2069
+ required: boolean;
2070
+ example?: string | undefined;
2071
+ pattern?: string | undefined;
2072
+ minLength?: number | undefined;
2073
+ maxLength?: number | undefined;
2074
+ options?: {
2075
+ value: string;
2076
+ label: string;
2077
+ }[] | undefined;
2078
+ refresh?: boolean | undefined;
2079
+ }[];
2080
+ } | null;
2081
+ others: {
2082
+ type: string;
2083
+ title: string;
2084
+ fields: {
2085
+ key: string;
2086
+ label: string;
2087
+ required: boolean;
2088
+ example?: string | undefined;
2089
+ pattern?: string | undefined;
2090
+ minLength?: number | undefined;
2091
+ maxLength?: number | undefined;
2092
+ options?: {
2093
+ value: string;
2094
+ label: string;
2095
+ }[] | undefined;
2096
+ refresh?: boolean | undefined;
2097
+ }[];
2098
+ }[];
1378
2099
  }>;
1379
2100
  addPayoutMethod: (input: import("@50heads/shared").AddPayoutMethodInput, reauthToken: string) => Promise<{
1380
2101
  method: import("@50heads/shared").PayoutMethod;
@@ -1388,6 +2109,13 @@ export declare function makeApi(opts: StdioOptions): (tool: string, client?: str
1388
2109
  removePayoutMethod: (id: string, reauthToken: string) => Promise<{
1389
2110
  ok: true;
1390
2111
  }>;
2112
+ acknowledgeNotice: (version: string) => Promise<{
2113
+ ok: true;
2114
+ version: string;
2115
+ }>;
2116
+ decisions: () => Promise<{
2117
+ decisions: import("@50heads/shared").HeadDecision[];
2118
+ }>;
1391
2119
  setAutoPayout: (enabled: boolean) => Promise<{
1392
2120
  ok: true;
1393
2121
  }>;
@@ -1480,12 +2208,14 @@ export declare function makeApi(opts: StdioOptions): (tool: string, client?: str
1480
2208
  ageBand: string | null;
1481
2209
  declaredAgeBand?: "18-24" | "25-34" | "35-44" | "45-54" | "55-64" | "65+" | null | undefined;
1482
2210
  gender?: "woman" | "man" | "non_binary" | null | undefined;
2211
+ answers?: Record<string, "none" | "not_sure" | "prefer_not"> | undefined;
1483
2212
  }>;
1484
2213
  setTags: (tagIds: string[], about?: Omit<import("@50heads/shared").MyTagsInput, "tagIds">) => Promise<{
1485
2214
  tagIds: string[];
1486
2215
  ageBand: string | null;
1487
2216
  declaredAgeBand?: "18-24" | "25-34" | "35-44" | "45-54" | "55-64" | "65+" | null | undefined;
1488
2217
  gender?: "woman" | "man" | "non_binary" | null | undefined;
2218
+ answers?: Record<string, "none" | "not_sure" | "prefer_not"> | undefined;
1489
2219
  }>;
1490
2220
  appeals: () => Promise<{
1491
2221
  appeals: import("@50heads/shared").Appeal[];