Tipos de comandos e interações
Assinaturas públicas completas do SDK de bots do Monky, geradas da entrada TypeScript de @monky/bot-sdk. Campos opcionais usam ?; campos readonly não devem ser alterados. Os links de origem incluem regras de validação e detalhes da implementação.
Visão geral do SDK de bots e eventos · Interações · Configurações · Áudio
AudioPreviewSource
export type AudioPreviewSource = {
url: string;
fileName?: string | undefined;
durationMs?: number | undefined;
} | {
resourceId: string;
fileName?: string | undefined;
durationMs?: number | undefined;
};BotCarouselComponent
export type BotCarouselComponent = {
type: "carousel";
imageUrls: string[];
label?: string | undefined;
presentation?: {
format?: "banner" | "landscape" | "square" | "portrait" | undefined;
fit?: "cover" | "contain" | undefined;
size?: "compact" | "regular" | "wide" | undefined;
} | undefined;
};BotCarouselFit
export type BotCarouselFit = "cover" | "contain";BotCarouselFormat
export type BotCarouselFormat = "banner" | "landscape" | "square" | "portrait";BotCarouselInput
export type BotCarouselInput = {
type: "carousel";
imageAssetRefs: string[];
label?: string | undefined;
presentation?: {
format?: "banner" | "landscape" | "square" | "portrait" | undefined;
fit?: "cover" | "contain" | undefined;
size?: "compact" | "regular" | "wide" | undefined;
} | undefined;
};BotCarouselPresentation
export type BotCarouselPresentation = {
format?: "banner" | "landscape" | "square" | "portrait" | undefined;
fit?: "cover" | "contain" | undefined;
size?: "compact" | "regular" | "wide" | undefined;
};BotCarouselSize
export type BotCarouselSize = "compact" | "regular" | "wide";BotFieldLocalization
export type BotFieldLocalization = {
description?: string | undefined;
placeholder?: string | undefined;
label?: string | undefined;
choices?: Record<string, {
description?: string | undefined;
label?: string | undefined;
}> | undefined;
};BotForm
export type BotForm = {
title: string;
fields: ({
type: "text";
name: string;
label: string;
description?: string | undefined;
placeholder?: string | undefined;
multiline?: boolean | undefined;
minLength?: number | undefined;
maxLength?: number | undefined;
defaultValue?: string | undefined;
required?: boolean | undefined;
} | {
type: "integer";
name: string;
label: string;
description?: string | undefined;
placeholder?: string | undefined;
defaultValue?: number | undefined;
required?: boolean | undefined;
min?: number | undefined;
max?: number | undefined;
} | {
type: "select";
name: string;
label: string;
choices: {
value: string;
label: string;
description?: string | undefined;
audio?: {
url: string;
fileName?: string | undefined;
durationMs?: number | undefined;
} | {
resourceId: string;
fileName?: string | undefined;
durationMs?: number | undefined;
} | undefined;
}[];
description?: string | undefined;
placeholder?: string | undefined;
defaultValue?: string | undefined;
required?: boolean | undefined;
presentation?: "dropdown" | "buttons" | undefined;
} | {
type: "boolean";
name: string;
label: string;
description?: string | undefined;
defaultValue?: boolean | undefined;
required?: boolean | undefined;
} | {
type: "string-list";
name: string;
label: string;
description?: string | undefined;
placeholder?: string | undefined;
maxLength?: number | undefined;
defaultValue?: string[] | undefined;
required?: boolean | undefined;
minItems?: number | undefined;
maxItems?: number | undefined;
} | {
type: "image-list";
name: string;
label: string;
description?: string | undefined;
required?: boolean | undefined;
presentation?: {
format?: "banner" | "landscape" | "square" | "portrait" | undefined;
fit?: "cover" | "contain" | undefined;
size?: "compact" | "regular" | "wide" | undefined;
} | undefined;
minItems?: number | undefined;
maxItems?: number | undefined;
})[];
description?: string | undefined;
submitLabel?: string | undefined;
};BotFormField
export type BotFormField = {
type: "text";
name: string;
label: string;
description?: string | undefined;
placeholder?: string | undefined;
multiline?: boolean | undefined;
minLength?: number | undefined;
maxLength?: number | undefined;
defaultValue?: string | undefined;
required?: boolean | undefined;
} | {
type: "integer";
name: string;
label: string;
description?: string | undefined;
placeholder?: string | undefined;
defaultValue?: number | undefined;
required?: boolean | undefined;
min?: number | undefined;
max?: number | undefined;
} | {
type: "select";
name: string;
label: string;
choices: {
value: string;
label: string;
description?: string | undefined;
audio?: {
url: string;
fileName?: string | undefined;
durationMs?: number | undefined;
} | {
resourceId: string;
fileName?: string | undefined;
durationMs?: number | undefined;
} | undefined;
}[];
description?: string | undefined;
placeholder?: string | undefined;
defaultValue?: string | undefined;
required?: boolean | undefined;
presentation?: "dropdown" | "buttons" | undefined;
} | {
type: "boolean";
name: string;
label: string;
description?: string | undefined;
defaultValue?: boolean | undefined;
required?: boolean | undefined;
} | {
type: "string-list";
name: string;
label: string;
description?: string | undefined;
placeholder?: string | undefined;
maxLength?: number | undefined;
defaultValue?: string[] | undefined;
required?: boolean | undefined;
minItems?: number | undefined;
maxItems?: number | undefined;
} | {
type: "image-list";
name: string;
label: string;
description?: string | undefined;
required?: boolean | undefined;
presentation?: {
format?: "banner" | "landscape" | "square" | "portrait" | undefined;
fit?: "cover" | "contain" | undefined;
size?: "compact" | "regular" | "wide" | undefined;
} | undefined;
minItems?: number | undefined;
maxItems?: number | undefined;
};BotFormValues
export type BotFormValues = {
[x: string]: string | number | boolean | string[];
};BotInputResult
export type BotInputResult<T> = {
success: true;
values: T;
} | {
success: false;
field: string;
reason: BotInputError;
};BotLocale
export type BotLocale = "pt-BR" | "en";botLocaleSchema
Este é um validador Zod. parse(valor) retorna Output ou lança erro; safeParse(valor) retorna um resultado discriminado de sucesso/erro. Input descreve a estrutura aceita; a origem também aplica refinamentos e limites de tamanho.
type Input = "pt-BR" | "en" | "en-US";
type Output = "pt-BR" | "en";BotLocalizedMessage
export type BotLocalizedMessage = {
content: string;
localizations?: {
'pt-BR'?: string | undefined;
en?: string | undefined;
} | undefined;
components?: {
type: "carousel";
imageAssetRefs: string[];
label?: string | undefined;
presentation?: {
format?: "banner" | "landscape" | "square" | "portrait" | undefined;
fit?: "cover" | "contain" | undefined;
size?: "compact" | "regular" | "wide" | undefined;
} | undefined;
}[] | undefined;
};BotMessageComponent
export type BotMessageComponent = {
type: "carousel";
imageUrls: string[];
label?: string | undefined;
presentation?: {
format?: "banner" | "landscape" | "square" | "portrait" | undefined;
fit?: "cover" | "contain" | undefined;
size?: "compact" | "regular" | "wide" | undefined;
} | undefined;
};BotMessageComponentInput
export type BotMessageComponentInput = {
type: "carousel";
imageAssetRefs: string[];
label?: string | undefined;
presentation?: {
format?: "banner" | "landscape" | "square" | "portrait" | undefined;
fit?: "cover" | "contain" | undefined;
size?: "compact" | "regular" | "wide" | undefined;
} | undefined;
};BotMessageContent
export type BotMessageContent = string | {
content: string;
localizations?: {
'pt-BR'?: string | undefined;
en?: string | undefined;
} | undefined;
components?: {
type: "carousel";
imageAssetRefs: string[];
label?: string | undefined;
presentation?: {
format?: "banner" | "landscape" | "square" | "portrait" | undefined;
fit?: "cover" | "contain" | undefined;
size?: "compact" | "regular" | "wide" | undefined;
} | undefined;
}[] | undefined;
};BotMessageLocalizations
export type BotMessageLocalizations = {
'pt-BR'?: string | undefined;
en?: string | undefined;
};BotPublishedMessageContent
export type BotPublishedMessageContent = string | (Omit<{
content: string;
localizations?: {
'pt-BR'?: string | undefined;
en?: string | undefined;
} | undefined;
components?: {
type: "carousel";
imageAssetRefs: string[];
label?: string | undefined;
presentation?: {
format?: "banner" | "landscape" | "square" | "portrait" | undefined;
fit?: "cover" | "contain" | undefined;
size?: "compact" | "regular" | "wide" | undefined;
} | undefined;
}[] | undefined;
}, "components"> & {
components?: never;
});BotSelector
export interface BotSelector {
id: string;
botId: string;
messageId: string;
createdAt: number;
closedAt: number | null;
responses: Record<string, string>;
resultMessageId: string | null;
messagePublished?: boolean | undefined;
creatorUserId?: string | undefined;
sourceInvocationId?: string | undefined;
title: string;
choices: {
value: string;
label: string;
description?: string | undefined;
audio?: {
url: string;
fileName?: string | undefined;
durationMs?: number | undefined;
} | {
resourceId: string;
fileName?: string | undefined;
durationMs?: number | undefined;
} | undefined;
}[];
presentation: "dropdown" | "buttons";
expiresAt?: number | undefined;
channelId: string;
invokerId?: string | undefined;
responder: "any" | "invoker";
allowChange: boolean;
maxResponders?: number | undefined;
metadata?: Record<string, string> | undefined;
}BotSelectorCreate
export type BotSelectorCreate = {
title: string;
choices: {
value: string;
label: string;
description?: string | undefined;
audio?: {
url: string;
fileName?: string | undefined;
durationMs?: number | undefined;
} | {
resourceId: string;
fileName?: string | undefined;
durationMs?: number | undefined;
} | undefined;
}[];
presentation: "dropdown" | "buttons";
channelId: string;
responder: "any" | "invoker";
allowChange: boolean;
expiresAt?: number | undefined;
id?: string | undefined;
invocationId?: string | undefined;
invokerId?: string | undefined;
maxResponders?: number | undefined;
metadata?: Record<string, string> | undefined;
};BotSelectorPatch
export type BotSelectorPatch = {
title?: string | undefined;
expiresAt?: number | undefined;
maxResponders?: number | undefined;
};BotSelectorPublic
export interface BotSelectorPublic {
counts: Record<string, number>;
responseCount: number;
ownResponse?: string | undefined;
canRespond: boolean;
title: string;
choices: {
value: string;
label: string;
description?: string | undefined;
audio?: {
url: string;
fileName?: string | undefined;
durationMs?: number | undefined;
} | {
resourceId: string;
fileName?: string | undefined;
durationMs?: number | undefined;
} | undefined;
}[];
presentation: "dropdown" | "buttons";
expiresAt?: number | undefined;
id: string;
channelId: string;
botId: string;
createdAt: number;
responder: "any" | "invoker";
allowChange: boolean;
maxResponders?: number | undefined;
messageId: string;
closedAt: number | null;
resultMessageId: string | null;
messagePublished?: boolean | undefined;
}BotSelectorRespondedPayload
export type BotSelectorRespondedPayload = {
value: string;
id: string;
channelId: string;
userId: string;
settings?: {
server: Record<string, string | number | boolean | string[]>;
schemaRevision: number;
serverRevision: number;
user: Record<string, string | number | boolean | string[]>;
} | undefined;
};botSelectorRespondedSchema
Este é um validador Zod. parse(valor) retorna Output ou lança erro; safeParse(valor) retorna um resultado discriminado de sucesso/erro. Input descreve a estrutura aceita; a origem também aplica refinamentos e limites de tamanho.
type Input = {
value: string;
id: string;
channelId: string;
userId: string;
settings?: {
server: Record<string, string | number | boolean | string[]>;
schemaRevision: number;
serverRevision: number;
user: Record<string, string | number | boolean | string[]>;
} | undefined;
};
type Output = {
value: string;
id: string;
channelId: string;
userId: string;
settings?: {
server: Record<string, string | number | boolean | string[]>;
schemaRevision: number;
serverRevision: number;
user: Record<string, string | number | boolean | string[]>;
} | undefined;
};BotServerSettingsSnapshot
export type BotServerSettingsSnapshot = {
values: Record<string, string | number | boolean | string[]>;
revision: number;
schemaRevision: number;
};botServerSettingsSnapshotSchema
Este é um validador Zod. parse(valor) retorna Output ou lança erro; safeParse(valor) retorna um resultado discriminado de sucesso/erro. Input descreve a estrutura aceita; a origem também aplica refinamentos e limites de tamanho.
type Input = {
values: Record<string, string | number | boolean | string[]>;
revision: number;
schemaRevision: number;
};
type Output = {
values: Record<string, string | number | boolean | string[]>;
revision: number;
schemaRevision: number;
};BotSettingsContext
export type BotSettingsContext = {
server: Record<string, string | number | boolean | string[]>;
schemaRevision: number;
serverRevision: number;
user: Record<string, string | number | boolean | string[]>;
};botSettingsContextSchema
Este é um validador Zod. parse(valor) retorna Output ou lança erro; safeParse(valor) retorna um resultado discriminado de sucesso/erro. Input descreve a estrutura aceita; a origem também aplica refinamentos e limites de tamanho.
type Input = {
server: Record<string, string | number | boolean | string[]>;
schemaRevision: number;
serverRevision: number;
user: Record<string, string | number | boolean | string[]>;
};
type Output = {
server: Record<string, string | number | boolean | string[]>;
schemaRevision: number;
serverRevision: number;
user: Record<string, string | number | boolean | string[]>;
};BotSettingsDefinition
export type BotSettingsDefinition = {
server?: {
title: string;
fields: ({
type: "text";
name: string;
label: string;
description?: string | undefined;
placeholder?: string | undefined;
multiline?: boolean | undefined;
minLength?: number | undefined;
maxLength?: number | undefined;
defaultValue?: string | undefined;
required?: boolean | undefined;
} | {
type: "integer";
name: string;
label: string;
description?: string | undefined;
placeholder?: string | undefined;
defaultValue?: number | undefined;
required?: boolean | undefined;
min?: number | undefined;
max?: number | undefined;
} | {
type: "select";
name: string;
label: string;
choices: {
value: string;
label: string;
description?: string | undefined;
audio?: {
url: string;
fileName?: string | undefined;
durationMs?: number | undefined;
} | {
resourceId: string;
fileName?: string | undefined;
durationMs?: number | undefined;
} | undefined;
}[];
description?: string | undefined;
placeholder?: string | undefined;
defaultValue?: string | undefined;
required?: boolean | undefined;
presentation?: "dropdown" | "buttons" | undefined;
} | {
type: "boolean";
name: string;
label: string;
description?: string | undefined;
defaultValue?: boolean | undefined;
required?: boolean | undefined;
} | {
type: "string-list";
name: string;
label: string;
description?: string | undefined;
placeholder?: string | undefined;
maxLength?: number | undefined;
defaultValue?: string[] | undefined;
required?: boolean | undefined;
minItems?: number | undefined;
maxItems?: number | undefined;
} | {
type: "image-list";
name: string;
label: string;
description?: string | undefined;
required?: boolean | undefined;
presentation?: {
format?: "banner" | "landscape" | "square" | "portrait" | undefined;
fit?: "cover" | "contain" | undefined;
size?: "compact" | "regular" | "wide" | undefined;
} | undefined;
minItems?: number | undefined;
maxItems?: number | undefined;
})[];
description?: string | undefined;
submitLabel?: string | undefined;
} | undefined;
user?: {
title: string;
fields: ({
type: "text";
name: string;
label: string;
description?: string | undefined;
placeholder?: string | undefined;
multiline?: boolean | undefined;
minLength?: number | undefined;
maxLength?: number | undefined;
defaultValue?: string | undefined;
required?: boolean | undefined;
} | {
type: "integer";
name: string;
label: string;
description?: string | undefined;
placeholder?: string | undefined;
defaultValue?: number | undefined;
required?: boolean | undefined;
min?: number | undefined;
max?: number | undefined;
} | {
type: "select";
name: string;
label: string;
choices: {
value: string;
label: string;
description?: string | undefined;
audio?: {
url: string;
fileName?: string | undefined;
durationMs?: number | undefined;
} | {
resourceId: string;
fileName?: string | undefined;
durationMs?: number | undefined;
} | undefined;
}[];
description?: string | undefined;
placeholder?: string | undefined;
defaultValue?: string | undefined;
required?: boolean | undefined;
presentation?: "dropdown" | "buttons" | undefined;
} | {
type: "boolean";
name: string;
label: string;
description?: string | undefined;
defaultValue?: boolean | undefined;
required?: boolean | undefined;
} | {
type: "string-list";
name: string;
label: string;
description?: string | undefined;
placeholder?: string | undefined;
maxLength?: number | undefined;
defaultValue?: string[] | undefined;
required?: boolean | undefined;
minItems?: number | undefined;
maxItems?: number | undefined;
} | {
type: "image-list";
name: string;
label: string;
description?: string | undefined;
required?: boolean | undefined;
presentation?: {
format?: "banner" | "landscape" | "square" | "portrait" | undefined;
fit?: "cover" | "contain" | undefined;
size?: "compact" | "regular" | "wide" | undefined;
} | undefined;
minItems?: number | undefined;
maxItems?: number | undefined;
})[];
description?: string | undefined;
submitLabel?: string | undefined;
} | undefined;
localizations?: {
'pt-BR'?: {
server?: {
title?: string | undefined;
description?: string | undefined;
fields?: Record<string, {
description?: string | undefined;
placeholder?: string | undefined;
label?: string | undefined;
choices?: Record<string, {
description?: string | undefined;
label?: string | undefined;
}> | undefined;
}> | undefined;
submitLabel?: string | undefined;
} | undefined;
user?: {
title?: string | undefined;
description?: string | undefined;
fields?: Record<string, {
description?: string | undefined;
placeholder?: string | undefined;
label?: string | undefined;
choices?: Record<string, {
description?: string | undefined;
label?: string | undefined;
}> | undefined;
}> | undefined;
submitLabel?: string | undefined;
} | undefined;
} | undefined;
en?: {
server?: {
title?: string | undefined;
description?: string | undefined;
fields?: Record<string, {
description?: string | undefined;
placeholder?: string | undefined;
label?: string | undefined;
choices?: Record<string, {
description?: string | undefined;
label?: string | undefined;
}> | undefined;
}> | undefined;
submitLabel?: string | undefined;
} | undefined;
user?: {
title?: string | undefined;
description?: string | undefined;
fields?: Record<string, {
description?: string | undefined;
placeholder?: string | undefined;
label?: string | undefined;
choices?: Record<string, {
description?: string | undefined;
label?: string | undefined;
}> | undefined;
}> | undefined;
submitLabel?: string | undefined;
} | undefined;
} | undefined;
} | undefined;
};botSettingsDefinitionSchema
Este é um validador Zod. parse(valor) retorna Output ou lança erro; safeParse(valor) retorna um resultado discriminado de sucesso/erro. Input descreve a estrutura aceita; a origem também aplica refinamentos e limites de tamanho.
type Input = {
server?: {
title: string;
fields: ({
type: "text";
name: string;
label: string;
description?: string | undefined;
placeholder?: string | undefined;
multiline?: boolean | undefined;
minLength?: number | undefined;
maxLength?: number | undefined;
defaultValue?: string | undefined;
required?: boolean | undefined;
} | {
type: "integer";
name: string;
label: string;
description?: string | undefined;
placeholder?: string | undefined;
defaultValue?: number | undefined;
required?: boolean | undefined;
min?: number | undefined;
max?: number | undefined;
} | {
type: "select";
name: string;
label: string;
choices: {
value: string;
label: string;
description?: string | undefined;
audio?: {
url: string;
fileName?: string | undefined;
durationMs?: number | undefined;
} | {
resourceId: string;
fileName?: string | undefined;
durationMs?: number | undefined;
} | undefined;
}[];
description?: string | undefined;
placeholder?: string | undefined;
defaultValue?: string | undefined;
required?: boolean | undefined;
presentation?: "dropdown" | "buttons" | undefined;
} | {
type: "boolean";
name: string;
label: string;
description?: string | undefined;
defaultValue?: boolean | undefined;
required?: boolean | undefined;
} | {
type: "string-list";
name: string;
label: string;
description?: string | undefined;
placeholder?: string | undefined;
maxLength?: number | undefined;
defaultValue?: string[] | undefined;
required?: boolean | undefined;
minItems?: number | undefined;
maxItems?: number | undefined;
} | {
type: "image-list";
name: string;
label: string;
description?: string | undefined;
required?: boolean | undefined;
presentation?: {
format?: "banner" | "landscape" | "square" | "portrait" | undefined;
fit?: "cover" | "contain" | undefined;
size?: "compact" | "regular" | "wide" | undefined;
} | undefined;
minItems?: number | undefined;
maxItems?: number | undefined;
})[];
description?: string | undefined;
submitLabel?: string | undefined;
} | undefined;
user?: {
title: string;
fields: ({
type: "text";
name: string;
label: string;
description?: string | undefined;
placeholder?: string | undefined;
multiline?: boolean | undefined;
minLength?: number | undefined;
maxLength?: number | undefined;
defaultValue?: string | undefined;
required?: boolean | undefined;
} | {
type: "integer";
name: string;
label: string;
description?: string | undefined;
placeholder?: string | undefined;
defaultValue?: number | undefined;
required?: boolean | undefined;
min?: number | undefined;
max?: number | undefined;
} | {
type: "select";
name: string;
label: string;
choices: {
value: string;
label: string;
description?: string | undefined;
audio?: {
url: string;
fileName?: string | undefined;
durationMs?: number | undefined;
} | {
resourceId: string;
fileName?: string | undefined;
durationMs?: number | undefined;
} | undefined;
}[];
description?: string | undefined;
placeholder?: string | undefined;
defaultValue?: string | undefined;
required?: boolean | undefined;
presentation?: "dropdown" | "buttons" | undefined;
} | {
type: "boolean";
name: string;
label: string;
description?: string | undefined;
defaultValue?: boolean | undefined;
required?: boolean | undefined;
} | {
type: "string-list";
name: string;
label: string;
description?: string | undefined;
placeholder?: string | undefined;
maxLength?: number | undefined;
defaultValue?: string[] | undefined;
required?: boolean | undefined;
minItems?: number | undefined;
maxItems?: number | undefined;
} | {
type: "image-list";
name: string;
label: string;
description?: string | undefined;
required?: boolean | undefined;
presentation?: {
format?: "banner" | "landscape" | "square" | "portrait" | undefined;
fit?: "cover" | "contain" | undefined;
size?: "compact" | "regular" | "wide" | undefined;
} | undefined;
minItems?: number | undefined;
maxItems?: number | undefined;
})[];
description?: string | undefined;
submitLabel?: string | undefined;
} | undefined;
localizations?: {
'pt-BR'?: {
server?: {
title?: string | undefined;
description?: string | undefined;
fields?: Record<string, {
description?: string | undefined;
placeholder?: string | undefined;
label?: string | undefined;
choices?: Record<string, {
description?: string | undefined;
label?: string | undefined;
}> | undefined;
}> | undefined;
submitLabel?: string | undefined;
} | undefined;
user?: {
title?: string | undefined;
description?: string | undefined;
fields?: Record<string, {
description?: string | undefined;
placeholder?: string | undefined;
label?: string | undefined;
choices?: Record<string, {
description?: string | undefined;
label?: string | undefined;
}> | undefined;
}> | undefined;
submitLabel?: string | undefined;
} | undefined;
} | undefined;
en?: {
server?: {
title?: string | undefined;
description?: string | undefined;
fields?: Record<string, {
description?: string | undefined;
placeholder?: string | undefined;
label?: string | undefined;
choices?: Record<string, {
description?: string | undefined;
label?: string | undefined;
}> | undefined;
}> | undefined;
submitLabel?: string | undefined;
} | undefined;
user?: {
title?: string | undefined;
description?: string | undefined;
fields?: Record<string, {
description?: string | undefined;
placeholder?: string | undefined;
label?: string | undefined;
choices?: Record<string, {
description?: string | undefined;
label?: string | undefined;
}> | undefined;
}> | undefined;
submitLabel?: string | undefined;
} | undefined;
} | undefined;
} | undefined;
};
type Output = {
server?: {
title: string;
fields: ({
type: "text";
name: string;
label: string;
description?: string | undefined;
placeholder?: string | undefined;
multiline?: boolean | undefined;
minLength?: number | undefined;
maxLength?: number | undefined;
defaultValue?: string | undefined;
required?: boolean | undefined;
} | {
type: "integer";
name: string;
label: string;
description?: string | undefined;
placeholder?: string | undefined;
defaultValue?: number | undefined;
required?: boolean | undefined;
min?: number | undefined;
max?: number | undefined;
} | {
type: "select";
name: string;
label: string;
choices: {
value: string;
label: string;
description?: string | undefined;
audio?: {
url: string;
fileName?: string | undefined;
durationMs?: number | undefined;
} | {
resourceId: string;
fileName?: string | undefined;
durationMs?: number | undefined;
} | undefined;
}[];
description?: string | undefined;
placeholder?: string | undefined;
defaultValue?: string | undefined;
required?: boolean | undefined;
presentation?: "dropdown" | "buttons" | undefined;
} | {
type: "boolean";
name: string;
label: string;
description?: string | undefined;
defaultValue?: boolean | undefined;
required?: boolean | undefined;
} | {
type: "string-list";
name: string;
label: string;
description?: string | undefined;
placeholder?: string | undefined;
maxLength?: number | undefined;
defaultValue?: string[] | undefined;
required?: boolean | undefined;
minItems?: number | undefined;
maxItems?: number | undefined;
} | {
type: "image-list";
name: string;
label: string;
description?: string | undefined;
required?: boolean | undefined;
presentation?: {
format?: "banner" | "landscape" | "square" | "portrait" | undefined;
fit?: "cover" | "contain" | undefined;
size?: "compact" | "regular" | "wide" | undefined;
} | undefined;
minItems?: number | undefined;
maxItems?: number | undefined;
})[];
description?: string | undefined;
submitLabel?: string | undefined;
} | undefined;
user?: {
title: string;
fields: ({
type: "text";
name: string;
label: string;
description?: string | undefined;
placeholder?: string | undefined;
multiline?: boolean | undefined;
minLength?: number | undefined;
maxLength?: number | undefined;
defaultValue?: string | undefined;
required?: boolean | undefined;
} | {
type: "integer";
name: string;
label: string;
description?: string | undefined;
placeholder?: string | undefined;
defaultValue?: number | undefined;
required?: boolean | undefined;
min?: number | undefined;
max?: number | undefined;
} | {
type: "select";
name: string;
label: string;
choices: {
value: string;
label: string;
description?: string | undefined;
audio?: {
url: string;
fileName?: string | undefined;
durationMs?: number | undefined;
} | {
resourceId: string;
fileName?: string | undefined;
durationMs?: number | undefined;
} | undefined;
}[];
description?: string | undefined;
placeholder?: string | undefined;
defaultValue?: string | undefined;
required?: boolean | undefined;
presentation?: "dropdown" | "buttons" | undefined;
} | {
type: "boolean";
name: string;
label: string;
description?: string | undefined;
defaultValue?: boolean | undefined;
required?: boolean | undefined;
} | {
type: "string-list";
name: string;
label: string;
description?: string | undefined;
placeholder?: string | undefined;
maxLength?: number | undefined;
defaultValue?: string[] | undefined;
required?: boolean | undefined;
minItems?: number | undefined;
maxItems?: number | undefined;
} | {
type: "image-list";
name: string;
label: string;
description?: string | undefined;
required?: boolean | undefined;
presentation?: {
format?: "banner" | "landscape" | "square" | "portrait" | undefined;
fit?: "cover" | "contain" | undefined;
size?: "compact" | "regular" | "wide" | undefined;
} | undefined;
minItems?: number | undefined;
maxItems?: number | undefined;
})[];
description?: string | undefined;
submitLabel?: string | undefined;
} | undefined;
localizations?: {
'pt-BR'?: {
server?: {
title?: string | undefined;
description?: string | undefined;
fields?: Record<string, {
description?: string | undefined;
placeholder?: string | undefined;
label?: string | undefined;
choices?: Record<string, {
description?: string | undefined;
label?: string | undefined;
}> | undefined;
}> | undefined;
submitLabel?: string | undefined;
} | undefined;
user?: {
title?: string | undefined;
description?: string | undefined;
fields?: Record<string, {
description?: string | undefined;
placeholder?: string | undefined;
label?: string | undefined;
choices?: Record<string, {
description?: string | undefined;
label?: string | undefined;
}> | undefined;
}> | undefined;
submitLabel?: string | undefined;
} | undefined;
} | undefined;
en?: {
server?: {
title?: string | undefined;
description?: string | undefined;
fields?: Record<string, {
description?: string | undefined;
placeholder?: string | undefined;
label?: string | undefined;
choices?: Record<string, {
description?: string | undefined;
label?: string | undefined;
}> | undefined;
}> | undefined;
submitLabel?: string | undefined;
} | undefined;
user?: {
title?: string | undefined;
description?: string | undefined;
fields?: Record<string, {
description?: string | undefined;
placeholder?: string | undefined;
label?: string | undefined;
choices?: Record<string, {
description?: string | undefined;
label?: string | undefined;
}> | undefined;
}> | undefined;
submitLabel?: string | undefined;
} | undefined;
} | undefined;
} | undefined;
};BotSettingsSnapshot
export type BotSettingsSnapshot = {
bot: {
name: string;
botId: string;
revision: number;
schemaRevision: number;
online: boolean;
capabilities: {
downloadsSound: boolean;
};
hasServerSettings: boolean;
hasUserSettings: boolean;
canConfigure: boolean;
avatarUrl?: string | null | undefined;
permissions?: {
revision: number;
requested: ("commands" | "read_messages" | "send_messages" | "publish_voice" | "receive_voice" | "local_execution" | "sound_download" | "selectors" | "miniapps" | "live_actions" | "server_storage" | "device_storage")[] | null;
granted: ("commands" | "read_messages" | "send_messages" | "publish_voice" | "receive_voice" | "local_execution" | "sound_download" | "selectors" | "miniapps" | "live_actions" | "server_storage" | "device_storage")[];
reviewRequired: boolean;
reviewedBy: string | null;
reviewedAt: number | null;
} | undefined;
canManage?: boolean | undefined;
manifestUrl?: string | null | undefined;
};
definition: {
server?: {
title: string;
fields: ({
type: "text";
name: string;
label: string;
description?: string | undefined;
placeholder?: string | undefined;
multiline?: boolean | undefined;
minLength?: number | undefined;
maxLength?: number | undefined;
defaultValue?: string | undefined;
required?: boolean | undefined;
} | {
type: "integer";
name: string;
label: string;
description?: string | undefined;
placeholder?: string | undefined;
defaultValue?: number | undefined;
required?: boolean | undefined;
min?: number | undefined;
max?: number | undefined;
} | {
type: "select";
name: string;
label: string;
choices: {
value: string;
label: string;
description?: string | undefined;
audio?: {
url: string;
fileName?: string | undefined;
durationMs?: number | undefined;
} | {
resourceId: string;
fileName?: string | undefined;
durationMs?: number | undefined;
} | undefined;
}[];
description?: string | undefined;
placeholder?: string | undefined;
defaultValue?: string | undefined;
required?: boolean | undefined;
presentation?: "dropdown" | "buttons" | undefined;
} | {
type: "boolean";
name: string;
label: string;
description?: string | undefined;
defaultValue?: boolean | undefined;
required?: boolean | undefined;
} | {
type: "string-list";
name: string;
label: string;
description?: string | undefined;
placeholder?: string | undefined;
maxLength?: number | undefined;
defaultValue?: string[] | undefined;
required?: boolean | undefined;
minItems?: number | undefined;
maxItems?: number | undefined;
} | {
type: "image-list";
name: string;
label: string;
description?: string | undefined;
required?: boolean | undefined;
presentation?: {
format?: "banner" | "landscape" | "square" | "portrait" | undefined;
fit?: "cover" | "contain" | undefined;
size?: "compact" | "regular" | "wide" | undefined;
} | undefined;
minItems?: number | undefined;
maxItems?: number | undefined;
})[];
description?: string | undefined;
submitLabel?: string | undefined;
} | undefined;
user?: {
title: string;
fields: ({
type: "text";
name: string;
label: string;
description?: string | undefined;
placeholder?: string | undefined;
multiline?: boolean | undefined;
minLength?: number | undefined;
maxLength?: number | undefined;
defaultValue?: string | undefined;
required?: boolean | undefined;
} | {
type: "integer";
name: string;
label: string;
description?: string | undefined;
placeholder?: string | undefined;
defaultValue?: number | undefined;
required?: boolean | undefined;
min?: number | undefined;
max?: number | undefined;
} | {
type: "select";
name: string;
label: string;
choices: {
value: string;
label: string;
description?: string | undefined;
audio?: {
url: string;
fileName?: string | undefined;
durationMs?: number | undefined;
} | {
resourceId: string;
fileName?: string | undefined;
durationMs?: number | undefined;
} | undefined;
}[];
description?: string | undefined;
placeholder?: string | undefined;
defaultValue?: string | undefined;
required?: boolean | undefined;
presentation?: "dropdown" | "buttons" | undefined;
} | {
type: "boolean";
name: string;
label: string;
description?: string | undefined;
defaultValue?: boolean | undefined;
required?: boolean | undefined;
} | {
type: "string-list";
name: string;
label: string;
description?: string | undefined;
placeholder?: string | undefined;
maxLength?: number | undefined;
defaultValue?: string[] | undefined;
required?: boolean | undefined;
minItems?: number | undefined;
maxItems?: number | undefined;
} | {
type: "image-list";
name: string;
label: string;
description?: string | undefined;
required?: boolean | undefined;
presentation?: {
format?: "banner" | "landscape" | "square" | "portrait" | undefined;
fit?: "cover" | "contain" | undefined;
size?: "compact" | "regular" | "wide" | undefined;
} | undefined;
minItems?: number | undefined;
maxItems?: number | undefined;
})[];
description?: string | undefined;
submitLabel?: string | undefined;
} | undefined;
localizations?: {
'pt-BR'?: {
server?: {
title?: string | undefined;
description?: string | undefined;
fields?: Record<string, {
description?: string | undefined;
placeholder?: string | undefined;
label?: string | undefined;
choices?: Record<string, {
description?: string | undefined;
label?: string | undefined;
}> | undefined;
}> | undefined;
submitLabel?: string | undefined;
} | undefined;
user?: {
title?: string | undefined;
description?: string | undefined;
fields?: Record<string, {
description?: string | undefined;
placeholder?: string | undefined;
label?: string | undefined;
choices?: Record<string, {
description?: string | undefined;
label?: string | undefined;
}> | undefined;
}> | undefined;
submitLabel?: string | undefined;
} | undefined;
} | undefined;
en?: {
server?: {
title?: string | undefined;
description?: string | undefined;
fields?: Record<string, {
description?: string | undefined;
placeholder?: string | undefined;
label?: string | undefined;
choices?: Record<string, {
description?: string | undefined;
label?: string | undefined;
}> | undefined;
}> | undefined;
submitLabel?: string | undefined;
} | undefined;
user?: {
title?: string | undefined;
description?: string | undefined;
fields?: Record<string, {
description?: string | undefined;
placeholder?: string | undefined;
label?: string | undefined;
choices?: Record<string, {
description?: string | undefined;
label?: string | undefined;
}> | undefined;
}> | undefined;
submitLabel?: string | undefined;
} | undefined;
} | undefined;
} | undefined;
};
server?: {
values: Record<string, string | number | boolean | string[]>;
revision: number;
schemaRevision: number;
} | undefined;
};botSettingsSnapshotSchema
Este é um validador Zod. parse(valor) retorna Output ou lança erro; safeParse(valor) retorna um resultado discriminado de sucesso/erro. Input descreve a estrutura aceita; a origem também aplica refinamentos e limites de tamanho.
type Input = {
bot: {
name: string;
botId: string;
revision: number;
schemaRevision: number;
online: boolean;
capabilities: {
downloadsSound: boolean;
};
hasServerSettings: boolean;
hasUserSettings: boolean;
canConfigure: boolean;
avatarUrl?: string | null | undefined;
permissions?: {
revision: number;
requested: ("commands" | "read_messages" | "send_messages" | "publish_voice" | "receive_voice" | "local_execution" | "sound_download" | "selectors" | "miniapps" | "live_actions" | "server_storage" | "device_storage")[] | null;
granted: ("commands" | "read_messages" | "send_messages" | "publish_voice" | "receive_voice" | "local_execution" | "sound_download" | "selectors" | "miniapps" | "live_actions" | "server_storage" | "device_storage")[];
reviewRequired: boolean;
reviewedBy: string | null;
reviewedAt: number | null;
} | undefined;
canManage?: boolean | undefined;
manifestUrl?: string | null | undefined;
};
definition: {
server?: {
title: string;
fields: ({
type: "text";
name: string;
label: string;
description?: string | undefined;
placeholder?: string | undefined;
multiline?: boolean | undefined;
minLength?: number | undefined;
maxLength?: number | undefined;
defaultValue?: string | undefined;
required?: boolean | undefined;
} | {
type: "integer";
name: string;
label: string;
description?: string | undefined;
placeholder?: string | undefined;
defaultValue?: number | undefined;
required?: boolean | undefined;
min?: number | undefined;
max?: number | undefined;
} | {
type: "select";
name: string;
label: string;
choices: {
value: string;
label: string;
description?: string | undefined;
audio?: {
url: string;
fileName?: string | undefined;
durationMs?: number | undefined;
} | {
resourceId: string;
fileName?: string | undefined;
durationMs?: number | undefined;
} | undefined;
}[];
description?: string | undefined;
placeholder?: string | undefined;
defaultValue?: string | undefined;
required?: boolean | undefined;
presentation?: "dropdown" | "buttons" | undefined;
} | {
type: "boolean";
name: string;
label: string;
description?: string | undefined;
defaultValue?: boolean | undefined;
required?: boolean | undefined;
} | {
type: "string-list";
name: string;
label: string;
description?: string | undefined;
placeholder?: string | undefined;
maxLength?: number | undefined;
defaultValue?: string[] | undefined;
required?: boolean | undefined;
minItems?: number | undefined;
maxItems?: number | undefined;
} | {
type: "image-list";
name: string;
label: string;
description?: string | undefined;
required?: boolean | undefined;
presentation?: {
format?: "banner" | "landscape" | "square" | "portrait" | undefined;
fit?: "cover" | "contain" | undefined;
size?: "compact" | "regular" | "wide" | undefined;
} | undefined;
minItems?: number | undefined;
maxItems?: number | undefined;
})[];
description?: string | undefined;
submitLabel?: string | undefined;
} | undefined;
user?: {
title: string;
fields: ({
type: "text";
name: string;
label: string;
description?: string | undefined;
placeholder?: string | undefined;
multiline?: boolean | undefined;
minLength?: number | undefined;
maxLength?: number | undefined;
defaultValue?: string | undefined;
required?: boolean | undefined;
} | {
type: "integer";
name: string;
label: string;
description?: string | undefined;
placeholder?: string | undefined;
defaultValue?: number | undefined;
required?: boolean | undefined;
min?: number | undefined;
max?: number | undefined;
} | {
type: "select";
name: string;
label: string;
choices: {
value: string;
label: string;
description?: string | undefined;
audio?: {
url: string;
fileName?: string | undefined;
durationMs?: number | undefined;
} | {
resourceId: string;
fileName?: string | undefined;
durationMs?: number | undefined;
} | undefined;
}[];
description?: string | undefined;
placeholder?: string | undefined;
defaultValue?: string | undefined;
required?: boolean | undefined;
presentation?: "dropdown" | "buttons" | undefined;
} | {
type: "boolean";
name: string;
label: string;
description?: string | undefined;
defaultValue?: boolean | undefined;
required?: boolean | undefined;
} | {
type: "string-list";
name: string;
label: string;
description?: string | undefined;
placeholder?: string | undefined;
maxLength?: number | undefined;
defaultValue?: string[] | undefined;
required?: boolean | undefined;
minItems?: number | undefined;
maxItems?: number | undefined;
} | {
type: "image-list";
name: string;
label: string;
description?: string | undefined;
required?: boolean | undefined;
presentation?: {
format?: "banner" | "landscape" | "square" | "portrait" | undefined;
fit?: "cover" | "contain" | undefined;
size?: "compact" | "regular" | "wide" | undefined;
} | undefined;
minItems?: number | undefined;
maxItems?: number | undefined;
})[];
description?: string | undefined;
submitLabel?: string | undefined;
} | undefined;
localizations?: {
'pt-BR'?: {
server?: {
title?: string | undefined;
description?: string | undefined;
fields?: Record<string, {
description?: string | undefined;
placeholder?: string | undefined;
label?: string | undefined;
choices?: Record<string, {
description?: string | undefined;
label?: string | undefined;
}> | undefined;
}> | undefined;
submitLabel?: string | undefined;
} | undefined;
user?: {
title?: string | undefined;
description?: string | undefined;
fields?: Record<string, {
description?: string | undefined;
placeholder?: string | undefined;
label?: string | undefined;
choices?: Record<string, {
description?: string | undefined;
label?: string | undefined;
}> | undefined;
}> | undefined;
submitLabel?: string | undefined;
} | undefined;
} | undefined;
en?: {
server?: {
title?: string | undefined;
description?: string | undefined;
fields?: Record<string, {
description?: string | undefined;
placeholder?: string | undefined;
label?: string | undefined;
choices?: Record<string, {
description?: string | undefined;
label?: string | undefined;
}> | undefined;
}> | undefined;
submitLabel?: string | undefined;
} | undefined;
user?: {
title?: string | undefined;
description?: string | undefined;
fields?: Record<string, {
description?: string | undefined;
placeholder?: string | undefined;
label?: string | undefined;
choices?: Record<string, {
description?: string | undefined;
label?: string | undefined;
}> | undefined;
}> | undefined;
submitLabel?: string | undefined;
} | undefined;
} | undefined;
} | undefined;
};
server?: {
values: Record<string, string | number | boolean | string[]>;
revision: number;
schemaRevision: number;
} | undefined;
};
type Output = {
bot: {
name: string;
botId: string;
revision: number;
schemaRevision: number;
online: boolean;
capabilities: {
downloadsSound: boolean;
};
hasServerSettings: boolean;
hasUserSettings: boolean;
canConfigure: boolean;
avatarUrl?: string | null | undefined;
permissions?: {
revision: number;
requested: ("commands" | "read_messages" | "send_messages" | "publish_voice" | "receive_voice" | "local_execution" | "sound_download" | "selectors" | "miniapps" | "live_actions" | "server_storage" | "device_storage")[] | null;
granted: ("commands" | "read_messages" | "send_messages" | "publish_voice" | "receive_voice" | "local_execution" | "sound_download" | "selectors" | "miniapps" | "live_actions" | "server_storage" | "device_storage")[];
reviewRequired: boolean;
reviewedBy: string | null;
reviewedAt: number | null;
} | undefined;
canManage?: boolean | undefined;
manifestUrl?: string | null | undefined;
};
definition: {
server?: {
title: string;
fields: ({
type: "text";
name: string;
label: string;
description?: string | undefined;
placeholder?: string | undefined;
multiline?: boolean | undefined;
minLength?: number | undefined;
maxLength?: number | undefined;
defaultValue?: string | undefined;
required?: boolean | undefined;
} | {
type: "integer";
name: string;
label: string;
description?: string | undefined;
placeholder?: string | undefined;
defaultValue?: number | undefined;
required?: boolean | undefined;
min?: number | undefined;
max?: number | undefined;
} | {
type: "select";
name: string;
label: string;
choices: {
value: string;
label: string;
description?: string | undefined;
audio?: {
url: string;
fileName?: string | undefined;
durationMs?: number | undefined;
} | {
resourceId: string;
fileName?: string | undefined;
durationMs?: number | undefined;
} | undefined;
}[];
description?: string | undefined;
placeholder?: string | undefined;
defaultValue?: string | undefined;
required?: boolean | undefined;
presentation?: "dropdown" | "buttons" | undefined;
} | {
type: "boolean";
name: string;
label: string;
description?: string | undefined;
defaultValue?: boolean | undefined;
required?: boolean | undefined;
} | {
type: "string-list";
name: string;
label: string;
description?: string | undefined;
placeholder?: string | undefined;
maxLength?: number | undefined;
defaultValue?: string[] | undefined;
required?: boolean | undefined;
minItems?: number | undefined;
maxItems?: number | undefined;
} | {
type: "image-list";
name: string;
label: string;
description?: string | undefined;
required?: boolean | undefined;
presentation?: {
format?: "banner" | "landscape" | "square" | "portrait" | undefined;
fit?: "cover" | "contain" | undefined;
size?: "compact" | "regular" | "wide" | undefined;
} | undefined;
minItems?: number | undefined;
maxItems?: number | undefined;
})[];
description?: string | undefined;
submitLabel?: string | undefined;
} | undefined;
user?: {
title: string;
fields: ({
type: "text";
name: string;
label: string;
description?: string | undefined;
placeholder?: string | undefined;
multiline?: boolean | undefined;
minLength?: number | undefined;
maxLength?: number | undefined;
defaultValue?: string | undefined;
required?: boolean | undefined;
} | {
type: "integer";
name: string;
label: string;
description?: string | undefined;
placeholder?: string | undefined;
defaultValue?: number | undefined;
required?: boolean | undefined;
min?: number | undefined;
max?: number | undefined;
} | {
type: "select";
name: string;
label: string;
choices: {
value: string;
label: string;
description?: string | undefined;
audio?: {
url: string;
fileName?: string | undefined;
durationMs?: number | undefined;
} | {
resourceId: string;
fileName?: string | undefined;
durationMs?: number | undefined;
} | undefined;
}[];
description?: string | undefined;
placeholder?: string | undefined;
defaultValue?: string | undefined;
required?: boolean | undefined;
presentation?: "dropdown" | "buttons" | undefined;
} | {
type: "boolean";
name: string;
label: string;
description?: string | undefined;
defaultValue?: boolean | undefined;
required?: boolean | undefined;
} | {
type: "string-list";
name: string;
label: string;
description?: string | undefined;
placeholder?: string | undefined;
maxLength?: number | undefined;
defaultValue?: string[] | undefined;
required?: boolean | undefined;
minItems?: number | undefined;
maxItems?: number | undefined;
} | {
type: "image-list";
name: string;
label: string;
description?: string | undefined;
required?: boolean | undefined;
presentation?: {
format?: "banner" | "landscape" | "square" | "portrait" | undefined;
fit?: "cover" | "contain" | undefined;
size?: "compact" | "regular" | "wide" | undefined;
} | undefined;
minItems?: number | undefined;
maxItems?: number | undefined;
})[];
description?: string | undefined;
submitLabel?: string | undefined;
} | undefined;
localizations?: {
'pt-BR'?: {
server?: {
title?: string | undefined;
description?: string | undefined;
fields?: Record<string, {
description?: string | undefined;
placeholder?: string | undefined;
label?: string | undefined;
choices?: Record<string, {
description?: string | undefined;
label?: string | undefined;
}> | undefined;
}> | undefined;
submitLabel?: string | undefined;
} | undefined;
user?: {
title?: string | undefined;
description?: string | undefined;
fields?: Record<string, {
description?: string | undefined;
placeholder?: string | undefined;
label?: string | undefined;
choices?: Record<string, {
description?: string | undefined;
label?: string | undefined;
}> | undefined;
}> | undefined;
submitLabel?: string | undefined;
} | undefined;
} | undefined;
en?: {
server?: {
title?: string | undefined;
description?: string | undefined;
fields?: Record<string, {
description?: string | undefined;
placeholder?: string | undefined;
label?: string | undefined;
choices?: Record<string, {
description?: string | undefined;
label?: string | undefined;
}> | undefined;
}> | undefined;
submitLabel?: string | undefined;
} | undefined;
user?: {
title?: string | undefined;
description?: string | undefined;
fields?: Record<string, {
description?: string | undefined;
placeholder?: string | undefined;
label?: string | undefined;
choices?: Record<string, {
description?: string | undefined;
label?: string | undefined;
}> | undefined;
}> | undefined;
submitLabel?: string | undefined;
} | undefined;
} | undefined;
} | undefined;
};
server?: {
values: Record<string, string | number | boolean | string[]>;
revision: number;
schemaRevision: number;
} | undefined;
};BotSettingsSummary
export type BotSettingsSummary = {
name: string;
botId: string;
revision: number;
schemaRevision: number;
online: boolean;
capabilities: {
downloadsSound: boolean;
};
hasServerSettings: boolean;
hasUserSettings: boolean;
canConfigure: boolean;
avatarUrl?: string | null | undefined;
permissions?: {
revision: number;
requested: ("commands" | "read_messages" | "send_messages" | "publish_voice" | "receive_voice" | "local_execution" | "sound_download" | "selectors" | "miniapps" | "live_actions" | "server_storage" | "device_storage")[] | null;
granted: ("commands" | "read_messages" | "send_messages" | "publish_voice" | "receive_voice" | "local_execution" | "sound_download" | "selectors" | "miniapps" | "live_actions" | "server_storage" | "device_storage")[];
reviewRequired: boolean;
reviewedBy: string | null;
reviewedAt: number | null;
} | undefined;
canManage?: boolean | undefined;
manifestUrl?: string | null | undefined;
};botSettingsValuesSchema
Este é um validador Zod. parse(valor) retorna Output ou lança erro; safeParse(valor) retorna um resultado discriminado de sucesso/erro. Input descreve a estrutura aceita; a origem também aplica refinamentos e limites de tamanho.
type Input = {
[x: string]: string | number | boolean | string[];
};
type Output = {
[x: string]: string | number | boolean | string[];
};ChatMessage
export interface ChatMessage {
/**
* Marks a message forwarded from elsewhere (message-forward). In a channel the
* server fills it from the original; the original author is never shown.
*/
forwarded?: MessageForward;
botComponents?: import('./botCarousels.js').BotMessageComponent[];
blocks?: import('./messageBlocks.js').ResolvedMessageBlock[];
localizations?: import('./botMessages.js').BotMessageLocalizations;
reply?: MessageReply;
reactions?: import('./reactions.js').MessageReaction[];
id: string;
channelId: string;
userId: string;
userNickname: string;
userAvatarUrl?: string | null;
content: string;
createdAt: number;
isSystem?: boolean;
// Files attached to this message (#11). Omitted/empty for plain text messages.
attachments?: AttachmentMeta[];
/** When the author last edited the message, so the UI can mark it (#504). */
editedAt?: number | null;
/**
* When the message was deleted (#504). A deleted message keeps its row and
* arrives with an empty `content` and no attachments: the client draws a
* "message deleted" placeholder instead of making the message vanish, which
* would silently rewrite the conversation for everyone reading it.
*/
deletedAt?: number | null;
/** Monotonic server revision prevents delayed edit/delete events undoing a restoration. */
revision?: number;
deletedByUserId?: string | null;
deleteUndoUntil?: number | null;
/**
* True when this message is only visible to the invoking user (#569).
* Ephemeral messages are not persisted and disappear on reconnect.
*/
isEphemeral?: boolean;
isBot?: boolean;
/** Server-authenticated attribution; private argument values are never included. */
botCommand?: BotCommandContext;
/** Native poll attached to this message, personalized with the current member's vote. */
poll?: import('./nativePolls.js').NativePoll;
}ChatReactionEventPayload
export type ChatReactionEventPayload = {
channelId: string;
userId: string;
userNickname: string;
emoji: string;
messageId: string;
};CommandAudioPreviewMimeType
export type CommandAudioPreviewMimeType = "audio/ogg" | "audio/mpeg" | "audio/wav";CommandAutocompleteChoice
export type CommandAutocompleteChoice = {
value: string;
label: string;
description?: string | undefined;
audio?: {
url: string;
fileName?: string | undefined;
durationMs?: number | undefined;
} | {
resourceId: string;
fileName?: string | undefined;
durationMs?: number | undefined;
} | undefined;
};CommandAutocompletePage
export type CommandAutocompletePage = {
choices: {
value: string;
label: string;
description?: string | undefined;
audio?: {
url: string;
fileName?: string | undefined;
durationMs?: number | undefined;
} | {
resourceId: string;
fileName?: string | undefined;
durationMs?: number | undefined;
} | undefined;
}[];
hasMore?: boolean | undefined;
nextCursor?: string | undefined;
};CommandLocalization
export type CommandLocalization = {
description?: string | undefined;
options?: Record<string, {
description?: string | undefined;
placeholder?: string | undefined;
label?: string | undefined;
choices?: Record<string, {
description?: string | undefined;
label?: string | undefined;
}> | undefined;
}> | undefined;
name?: string | undefined;
aliases?: string[] | undefined;
};CommandLocalizations
export type CommandLocalizations = {
'pt-BR'?: {
description?: string | undefined;
options?: Record<string, {
description?: string | undefined;
placeholder?: string | undefined;
label?: string | undefined;
choices?: Record<string, {
description?: string | undefined;
label?: string | undefined;
}> | undefined;
}> | undefined;
name?: string | undefined;
aliases?: string[] | undefined;
} | undefined;
en?: {
description?: string | undefined;
options?: Record<string, {
description?: string | undefined;
placeholder?: string | undefined;
label?: string | undefined;
choices?: Record<string, {
description?: string | undefined;
label?: string | undefined;
}> | undefined;
}> | undefined;
name?: string | undefined;
aliases?: string[] | undefined;
} | undefined;
};CommandOption
export interface CommandOption {
name: string;
/** Display label only; name remains the stable argument identifier. */
label?: string;
description: string;
type: CommandOptionType;
required?: boolean;
placeholder?: string;
choices?: SelectionChoice[];
/** Dynamic suggestions for a string option; mutually exclusive with choices. */
autocomplete?: boolean;
min?: number;
max?: number;
}CommandPresentation
export interface CommandPresentation {
readonly canonicalName: string;
readonly displayName: string;
readonly inputNames: readonly string[];
}CommandResponsePayload
export interface CommandResponsePayload {
localizations?: import('./botMessages.js').BotMessageLocalizations;
components?: import('./botCarousels.js').BotMessageComponentInput[];
invocationId: string;
content: string;
/** Private by default. Public output must be explicitly requested. */
ephemeral?: boolean;
}CommandValue
export type CommandValue = string | number | boolean;CommandValues
export type CommandValues = {
[x: string]: string | number | boolean;
};CommandVoiceRequirement
export type CommandVoiceRequirement = "joined" | "same-bot-channel";getCommandPresentation
export function getCommandPresentation(command: {
name: string;
localizations?: CommandLocalizations;
}, requested: unknown): CommandPresentation;LiveAction
export type LiveAction = {
title: string;
description: string;
content: {
kind: "selector";
selectorId: string;
} | {
kind: "form";
form: {
title: string;
fields: ({
type: "text";
name: string;
label: string;
description?: string | undefined;
placeholder?: string | undefined;
multiline?: boolean | undefined;
minLength?: number | undefined;
maxLength?: number | undefined;
defaultValue?: string | undefined;
required?: boolean | undefined;
} | {
type: "integer";
name: string;
label: string;
description?: string | undefined;
placeholder?: string | undefined;
defaultValue?: number | undefined;
required?: boolean | undefined;
min?: number | undefined;
max?: number | undefined;
} | {
type: "select";
name: string;
label: string;
choices: {
value: string;
label: string;
description?: string | undefined;
audio?: {
url: string;
fileName?: string | undefined;
durationMs?: number | undefined;
} | {
resourceId: string;
fileName?: string | undefined;
durationMs?: number | undefined;
} | undefined;
}[];
description?: string | undefined;
placeholder?: string | undefined;
defaultValue?: string | undefined;
required?: boolean | undefined;
presentation?: "dropdown" | "buttons" | undefined;
} | {
type: "boolean";
name: string;
label: string;
description?: string | undefined;
defaultValue?: boolean | undefined;
required?: boolean | undefined;
} | {
type: "string-list";
name: string;
label: string;
description?: string | undefined;
placeholder?: string | undefined;
maxLength?: number | undefined;
defaultValue?: string[] | undefined;
required?: boolean | undefined;
minItems?: number | undefined;
maxItems?: number | undefined;
} | {
type: "image-list";
name: string;
label: string;
description?: string | undefined;
required?: boolean | undefined;
presentation?: {
format?: "banner" | "landscape" | "square" | "portrait" | undefined;
fit?: "cover" | "contain" | undefined;
size?: "compact" | "regular" | "wide" | undefined;
} | undefined;
minItems?: number | undefined;
maxItems?: number | undefined;
})[];
description?: string | undefined;
submitLabel?: string | undefined;
};
};
expiresAt: number;
audience: {
visibility: "public";
} | {
visibility: "private";
userIds?: string[] | undefined;
roleIds?: string[] | undefined;
};
id: string;
channelId: string;
botId: string;
creatorUserId: string;
imageUrls: string[];
createdAt: number;
revision: number;
imagePresentation?: {
format?: "banner" | "landscape" | "square" | "portrait" | undefined;
fit?: "cover" | "contain" | undefined;
size?: "compact" | "regular" | "wide" | undefined;
} | undefined;
};LiveActionCreate
export type LiveActionCreate = {
title: string;
description: string;
content: {
kind: "selector";
selectorId: string;
} | {
kind: "form";
form: {
title: string;
fields: ({
type: "text";
name: string;
label: string;
description?: string | undefined;
placeholder?: string | undefined;
multiline?: boolean | undefined;
minLength?: number | undefined;
maxLength?: number | undefined;
defaultValue?: string | undefined;
required?: boolean | undefined;
} | {
type: "integer";
name: string;
label: string;
description?: string | undefined;
placeholder?: string | undefined;
defaultValue?: number | undefined;
required?: boolean | undefined;
min?: number | undefined;
max?: number | undefined;
} | {
type: "select";
name: string;
label: string;
choices: {
value: string;
label: string;
description?: string | undefined;
audio?: {
url: string;
fileName?: string | undefined;
durationMs?: number | undefined;
} | {
resourceId: string;
fileName?: string | undefined;
durationMs?: number | undefined;
} | undefined;
}[];
description?: string | undefined;
placeholder?: string | undefined;
defaultValue?: string | undefined;
required?: boolean | undefined;
presentation?: "dropdown" | "buttons" | undefined;
} | {
type: "boolean";
name: string;
label: string;
description?: string | undefined;
defaultValue?: boolean | undefined;
required?: boolean | undefined;
} | {
type: "string-list";
name: string;
label: string;
description?: string | undefined;
placeholder?: string | undefined;
maxLength?: number | undefined;
defaultValue?: string[] | undefined;
required?: boolean | undefined;
minItems?: number | undefined;
maxItems?: number | undefined;
} | {
type: "image-list";
name: string;
label: string;
description?: string | undefined;
required?: boolean | undefined;
presentation?: {
format?: "banner" | "landscape" | "square" | "portrait" | undefined;
fit?: "cover" | "contain" | undefined;
size?: "compact" | "regular" | "wide" | undefined;
} | undefined;
minItems?: number | undefined;
maxItems?: number | undefined;
})[];
description?: string | undefined;
submitLabel?: string | undefined;
};
};
expiresAt: number;
channelId: string;
invocationId: string;
imagePresentation?: {
format?: "banner" | "landscape" | "square" | "portrait" | undefined;
fit?: "cover" | "contain" | undefined;
size?: "compact" | "regular" | "wide" | undefined;
} | undefined;
audience?: {
visibility: "public";
} | {
visibility: "private";
userIds: string[];
roleIds: string[];
} | undefined;
id?: string | undefined;
imageAssetRefs?: string[] | undefined;
};LiveActionSubmission
export type LiveActionSubmission = {
values: Record<string, string | number | boolean | string[]>;
id: string;
channelId: string;
expectedRevision: number;
locale: "pt-BR" | "en";
submissionId: string;
userId: string;
userNickname: string;
};LiveActionUpdate
export type LiveActionUpdate = {
id: string;
expectedRevision: number;
title?: string | undefined;
description?: string | undefined;
content?: {
kind: "selector";
selectorId: string;
} | {
kind: "form";
form: {
title: string;
fields: ({
type: "text";
name: string;
label: string;
description?: string | undefined;
placeholder?: string | undefined;
multiline?: boolean | undefined;
minLength?: number | undefined;
maxLength?: number | undefined;
defaultValue?: string | undefined;
required?: boolean | undefined;
} | {
type: "integer";
name: string;
label: string;
description?: string | undefined;
placeholder?: string | undefined;
defaultValue?: number | undefined;
required?: boolean | undefined;
min?: number | undefined;
max?: number | undefined;
} | {
type: "select";
name: string;
label: string;
choices: {
value: string;
label: string;
description?: string | undefined;
audio?: {
url: string;
fileName?: string | undefined;
durationMs?: number | undefined;
} | {
resourceId: string;
fileName?: string | undefined;
durationMs?: number | undefined;
} | undefined;
}[];
description?: string | undefined;
placeholder?: string | undefined;
defaultValue?: string | undefined;
required?: boolean | undefined;
presentation?: "dropdown" | "buttons" | undefined;
} | {
type: "boolean";
name: string;
label: string;
description?: string | undefined;
defaultValue?: boolean | undefined;
required?: boolean | undefined;
} | {
type: "string-list";
name: string;
label: string;
description?: string | undefined;
placeholder?: string | undefined;
maxLength?: number | undefined;
defaultValue?: string[] | undefined;
required?: boolean | undefined;
minItems?: number | undefined;
maxItems?: number | undefined;
} | {
type: "image-list";
name: string;
label: string;
description?: string | undefined;
required?: boolean | undefined;
presentation?: {
format?: "banner" | "landscape" | "square" | "portrait" | undefined;
fit?: "cover" | "contain" | undefined;
size?: "compact" | "regular" | "wide" | undefined;
} | undefined;
minItems?: number | undefined;
maxItems?: number | undefined;
})[];
description?: string | undefined;
submitLabel?: string | undefined;
};
} | undefined;
expiresAt?: number | undefined;
audience?: {
visibility: "public";
} | {
visibility: "private";
userIds: string[];
roleIds: string[];
} | undefined;
imageAssetRefs?: string[] | undefined;
};localizeCommand
export function localizeCommand<T extends {
description: string;
options?: CommandOption[];
localizations?: CommandLocalizations;
}>(command: T, requested: unknown): T;MessageReaction
export interface MessageReaction {
emoji: string;
users: ReactionUser[];
}normalizeBotLocale
export function normalizeBotLocale(value: unknown): BotLocale | undefined;resolveBotLocale
export function resolveBotLocale(requested: unknown, supported?: readonly BotLocale[], fallback?: BotLocale): BotLocale;resolveBotSettingsValues
export function resolveBotSettingsValues(form: BotForm | undefined, input: unknown): BotInputResult<BotFormValues>;SelectionChoice
export type SelectionChoice = {
value: string;
label: string;
description?: string | undefined;
audio?: {
url: string;
fileName?: string | undefined;
durationMs?: number | undefined;
} | {
resourceId: string;
fileName?: string | undefined;
durationMs?: number | undefined;
} | undefined;
};SlashCommand
export interface SlashCommand {
/** Unique per bot; the command name without the leading `/`. */
name: string;
description: string;
localizations?: CommandLocalizations;
/** The bot that owns this command (`UserSummary.id`). */
botId: string;
/** Display-friendly bot name for the command dropup. */
botName: string;
botAvatarUrl?: string | null;
/** Server-authenticated key; required when localCapabilities is nonempty. */
botPublicKey?: string;
options?: CommandOption[];
/** Prepare these capabilities before starting an invocation or suggestion deadline. */
localCapabilities?: LocalCapabilityId[];
/** Requires explicit caller consent for one local soundboard download. */
downloadsSound?: boolean;
/** Enforced for invocation, autocomplete and private previews on the caller's device. */
voiceRequirement?: CommandVoiceRequirement;
}SoundDownloadFailureReason
export type SoundDownloadFailureReason = "timeout" | "invalid_request" | "no_folder" | "invalid_url" | "blocked_url" | "invalid_file_name" | "unsupported_audio" | "too_large" | "http_error" | "network_error" | "write_failed";SoundDownloadRequest
export type SoundDownloadRequest = {
title: string;
url: string;
fileName: string;
};SoundDownloadResult
export type SoundDownloadResult = {
status: "downloaded";
} | {
status: "exists";
} | {
status: "failed";
reason: "timeout" | "invalid_request" | "no_folder" | "invalid_url" | "blocked_url" | "invalid_file_name" | "unsupported_audio" | "too_large" | "http_error" | "network_error" | "write_failed";
} | {
status: "cancelled";
};