import type { ChannelMessage, ChannelUser, ChannelUserChat, MediumProfile, PrebuiltMessage, UnavailableReason, WritingTypeMap } from "./common.js"; export declare const protobufPackage = "channel.app.sdk.v1"; export interface ExtensionEmptyInput { } export interface ExtensionChat { type?: string | undefined; id?: string | undefined; } export interface ExtensionActionResult { type?: string | undefined; attributes?: { [key: string]: any; } | undefined; } export interface ApiKeyField { name?: string | undefined; displayName?: string | undefined; description?: string | undefined; required?: boolean | undefined; sensitive?: boolean | undefined; maskType?: string | undefined; placeholder?: string | undefined; validationRegex?: string | undefined; } export interface ApiKeyGetAuthConfigInput { } export interface ApiKeyGetAuthConfigOutput { authType?: string | undefined; authScope?: string | undefined; fields?: ApiKeyField[] | undefined; providerName?: string | undefined; } export interface ApiKeyValidateCredentialsInput { } export interface ApiKeyUserInfo { email?: string | undefined; name?: string | undefined; user_id?: string | undefined; } export interface ApiKeyValidateCredentialsOutput { valid?: boolean | undefined; error_message?: string | undefined; user_info?: ApiKeyUserInfo | undefined; } export interface ConfigCondition { fieldKey?: string | undefined; operator?: string | undefined; value?: any | undefined; } export interface ConfigLocalizedText { label?: string | undefined; title?: string | undefined; description?: string | undefined; text?: string | undefined; helperText?: string | undefined; placeholder?: string | undefined; message?: string | undefined; url?: string | undefined; fieldLabels?: { [key: string]: string; } | undefined; countryCodePlaceholder?: string | undefined; numberPlaceholder?: string | undefined; recipientPlaceholder?: string | undefined; phonePlaceholder?: string | undefined; postcodePlaceholder?: string | undefined; address1Placeholder?: string | undefined; address2Placeholder?: string | undefined; providerName?: string | undefined; menuLabel?: string | undefined; successMessage?: string | undefined; overviewLabel?: string | undefined; overviewDescription?: string | undefined; nameLabel?: string | undefined; addLabel?: string | undefined; statusLabel?: string | undefined; noneLabel?: string | undefined; onChangeSuccessMessage?: string | undefined; } export interface ConfigLocalizedText_FieldLabelsEntry { key: string; value: string; } export interface ConfigChoice { label?: string | undefined; value?: any | undefined; description?: string | undefined; imageUrl?: string | undefined; i18nMap?: { [key: string]: ConfigLocalizedText; } | undefined; } export interface ConfigChoice_I18nMapEntry { key: string; value?: ConfigLocalizedText | undefined; } export interface ConfigInlineLink { key?: string | undefined; label?: string | undefined; url?: string | undefined; i18nMap?: { [key: string]: ConfigLocalizedText; } | undefined; } export interface ConfigInlineLink_I18nMapEntry { key: string; value?: ConfigLocalizedText | undefined; } export interface ConfigValidationNotice { tone?: string | undefined; title?: string | undefined; message?: string | undefined; placement?: string | undefined; blockId?: string | undefined; i18nMap?: { [key: string]: ConfigLocalizedText; } | undefined; links?: ConfigInlineLink[] | undefined; } export interface ConfigValidationNotice_I18nMapEntry { key: string; value?: ConfigLocalizedText | undefined; } export interface ConfigHooks { draftResolverFunctionName?: string | undefined; validateFunctionName?: string | undefined; draftResolverOnLoadFieldKeys?: string[] | undefined; } export interface ConfigOAuthAdditionalParam { name?: string | undefined; fieldKey?: string | undefined; } export interface ConfigOAuth { additionalParams?: ConfigOAuthAdditionalParam[] | undefined; clientCredentials?: ConfigOAuthClientCredentials | undefined; } export interface ConfigChoicesSource { type?: string | undefined; functionName?: string | undefined; params?: { [key: string]: any; } | undefined; triggerOnLoad?: boolean | undefined; triggerFieldKeys?: string[] | undefined; appId?: string | undefined; } export interface ConfigOverview { title?: string | undefined; description?: string | undefined; nameLabel?: string | undefined; addLabel?: string | undefined; statusLabel?: string | undefined; connectedAtMetadataKey?: string | undefined; connectedByMetadataKey?: string | undefined; featureSectionId?: string | undefined; showAddIcon?: boolean | undefined; i18nMap?: { [key: string]: ConfigLocalizedText; } | undefined; } export interface ConfigOverview_I18nMapEntry { key: string; value?: ConfigLocalizedText | undefined; } export interface ConfigDefaultSelector { key?: string | undefined; label?: string | undefined; description?: string | undefined; descriptionDisplay?: string | undefined; placeholder?: string | undefined; noneLabel?: string | undefined; onChangeFunctionName?: string | undefined; onChangeAppId?: string | undefined; onChangeParams?: { [key: string]: any; } | undefined; onChangeSuccessMessage?: string | undefined; defaultValueMetadataKey?: string | undefined; i18nMap?: { [key: string]: ConfigLocalizedText; } | undefined; } export interface ConfigDefaultSelector_I18nMapEntry { key: string; value?: ConfigLocalizedText | undefined; } export interface ConfigSettings { title?: string | undefined; description?: string | undefined; defaultSelectors?: ConfigDefaultSelector[] | undefined; i18nMap?: { [key: string]: ConfigLocalizedText; } | undefined; } export interface ConfigSettings_I18nMapEntry { key: string; value?: ConfigLocalizedText | undefined; } export interface ConfigDraftResolutionParams { scope?: string | undefined; channelId?: string | undefined; managerId?: string | undefined; changedFieldKey?: string | undefined; changedValue?: any | undefined; values?: { [key: string]: any; } | undefined; } export interface ConfigMediaOptions { visibility?: string | undefined; } export interface ConfigResolvedValueTarget { key?: string | undefined; storageClass?: string | undefined; sensitive?: boolean | undefined; maskType?: string | undefined; } export interface ConfigPhoneFieldLabels { countryCode?: string | undefined; number?: string | undefined; } export interface ConfigAddressFieldLabels { recipient?: string | undefined; countryCode?: string | undefined; phone?: string | undefined; postcode?: string | undefined; address1?: string | undefined; address2?: string | undefined; } export interface ConfigField { type?: string | undefined; key?: string | undefined; label?: string | undefined; description?: string | undefined; helperText?: string | undefined; helperLinks?: ConfigInlineLink[] | undefined; required?: boolean | undefined; placeholder?: string | undefined; validationRegex?: string | undefined; storageClass?: string | undefined; media?: ConfigMediaOptions | undefined; resolvesTo?: ConfigResolvedValueTarget | undefined; visibleWhen?: ConfigCondition[] | undefined; enabledWhen?: ConfigCondition[] | undefined; defaultValue?: any | undefined; choicesSource?: ConfigChoicesSource | undefined; rows?: number | undefined; maskType?: string | undefined; min?: number | undefined; max?: number | undefined; step?: number | undefined; choices?: ConfigChoice[] | undefined; minSelections?: number | undefined; maxSelections?: number | undefined; format?: string | undefined; countryCodeChoices?: ConfigChoice[] | undefined; countryCodePlaceholder?: string | undefined; numberPlaceholder?: string | undefined; searchEnabled?: boolean | undefined; postcodeLookupUrl?: string | undefined; recipientPlaceholder?: string | undefined; phonePlaceholder?: string | undefined; postcodePlaceholder?: string | undefined; address1Placeholder?: string | undefined; address2Placeholder?: string | undefined; accept?: string[] | undefined; maxFileSizeMb?: number | undefined; multiple?: boolean | undefined; fieldLabels?: { [key: string]: any; } | undefined; i18nMap?: { [key: string]: ConfigLocalizedText; } | undefined; overviewSummary?: boolean | undefined; overviewFeature?: boolean | undefined; overviewLabel?: string | undefined; overviewDescription?: string | undefined; hidden?: boolean | undefined; } export interface ConfigField_I18nMapEntry { key: string; value?: ConfigLocalizedText | undefined; } export interface ConfigBlock { type?: string | undefined; id?: string | undefined; title?: string | undefined; description?: string | undefined; visibleWhen?: ConfigCondition[] | undefined; text?: string | undefined; helperLinks?: ConfigInlineLink[] | undefined; tone?: string | undefined; layout?: string | undefined; fields?: ConfigField[] | undefined; renderer?: string | undefined; props?: { [key: string]: any; } | undefined; key?: string | undefined; label?: string | undefined; helperText?: string | undefined; required?: boolean | undefined; placeholder?: string | undefined; validationRegex?: string | undefined; storageClass?: string | undefined; media?: ConfigMediaOptions | undefined; resolvesTo?: ConfigResolvedValueTarget | undefined; enabledWhen?: ConfigCondition[] | undefined; defaultValue?: any | undefined; choicesSource?: ConfigChoicesSource | undefined; rows?: number | undefined; maskType?: string | undefined; min?: number | undefined; max?: number | undefined; step?: number | undefined; choices?: ConfigChoice[] | undefined; minSelections?: number | undefined; maxSelections?: number | undefined; format?: string | undefined; countryCodeChoices?: ConfigChoice[] | undefined; fieldLabels?: { [key: string]: any; } | undefined; countryCodePlaceholder?: string | undefined; numberPlaceholder?: string | undefined; searchEnabled?: boolean | undefined; postcodeLookupUrl?: string | undefined; recipientPlaceholder?: string | undefined; phonePlaceholder?: string | undefined; postcodePlaceholder?: string | undefined; address1Placeholder?: string | undefined; address2Placeholder?: string | undefined; accept?: string[] | undefined; maxFileSizeMb?: number | undefined; multiple?: boolean | undefined; i18nMap?: { [key: string]: ConfigLocalizedText; } | undefined; overviewSummary?: boolean | undefined; overviewFeature?: boolean | undefined; overviewLabel?: string | undefined; overviewDescription?: string | undefined; menuLabel?: string | undefined; menuIcon?: string | undefined; functionName?: string | undefined; appId?: string | undefined; params?: { [key: string]: any; } | undefined; buttonStyle?: string | undefined; validateBeforeRun?: boolean | undefined; validationFieldKeys?: string[] | undefined; saveBeforeRun?: boolean | undefined; afterSuccess?: string[] | undefined; successMessage?: string | undefined; showInOverviewMenu?: boolean | undefined; hidden?: boolean | undefined; /** Action-only allowlist of exact canonical HTTPS origins; no wildcards or paths. */ redirectOrigins?: string[] | undefined; } export interface ConfigBlock_I18nMapEntry { key: string; value?: ConfigLocalizedText | undefined; } export interface ConfigGetConfigSchemaInput { } export interface ConfigGetConfigSchemaOutput { schemaVersion?: string | undefined; configScope?: string | undefined; providerName?: string | undefined; title?: string | undefined; description?: string | undefined; legacyCredentialFallback?: string | undefined; oauth?: ConfigOAuth | undefined; hooks?: ConfigHooks | undefined; blocks?: ConfigBlock[] | undefined; supportsMultiple?: boolean | undefined; keyResolverFunctionName?: string | undefined; i18nMap?: { [key: string]: ConfigLocalizedText; } | undefined; overview?: ConfigOverview | undefined; settings?: ConfigSettings | undefined; } export interface ConfigGetConfigSchemaOutput_I18nMapEntry { key: string; value?: ConfigLocalizedText | undefined; } export interface ConfigValidationError { fieldKey?: string | undefined; reasonCode?: string | undefined; message?: string | undefined; i18nMap?: { [key: string]: ConfigLocalizedText; } | undefined; } export interface ConfigValidationError_I18nMapEntry { key: string; value?: ConfigLocalizedText | undefined; } export interface ConfigValidateStoredConfigInput { } export interface ConfigValidateStoredConfigOutput { valid?: boolean | undefined; reasonCode?: string | undefined; message?: string | undefined; missingFields?: string[] | undefined; errors?: ConfigValidationError[] | undefined; notices?: ConfigValidationNotice[] | undefined; } export interface ConfigChoiceList { choices?: ConfigChoice[] | undefined; } export interface ConfigDraftResolutionOutput { valuesPatch?: { [key: string]: any; } | undefined; choicesPatch?: { [key: string]: any; } | undefined; } export interface OAuthProviderLocalizedText { providerName?: string | undefined; providerDescription?: string | undefined; } /** Plain presentation only. Icons: installation, account, organization, permission, settings. */ export interface OAuthStepDisplay { title?: string | undefined; description?: string | undefined; icon?: string | undefined; i18nMap?: { [key: string]: OAuthStepLocalizedText; } | undefined; } export interface OAuthStepDisplay_I18nMapEntry { key: string; value?: OAuthStepLocalizedText | undefined; } export interface OAuthStepLocalizedText { title?: string | undefined; description?: string | undefined; } /** Platform-owned progress; apps cannot declare execution steps or statuses. */ export interface OAuthFlowStep { id?: string | undefined; title?: string | undefined; description?: string | undefined; icon?: string | undefined; status?: string | undefined; detail?: string | undefined; } export interface OAuthProvider { provider?: string | undefined; authorizationUrl?: string | undefined; tokenUrl?: string | undefined; refreshTokenUrl?: string | undefined; scopes?: string[] | undefined; providerName?: string | undefined; providerDescription?: string | undefined; providerIconUrl?: string | undefined; pkceRequired?: boolean | undefined; additionalParams?: { [key: string]: string; } | undefined; parameterCase?: string | undefined; tokenRequestContentType?: string | undefined; authorizationCodeParamName?: string | undefined; authorizationOpenMode?: string | undefined; tokenRequest?: OAuthTokenRequestMapping | undefined; tokenResponse?: OAuthTokenResponseMapping | undefined; i18nMap?: { [key: string]: OAuthProviderLocalizedText; } | undefined; authorizationDisplay?: OAuthStepDisplay | undefined; } export interface OAuthProvider_AdditionalParamsEntry { key: string; value: string; } export interface OAuthProvider_I18nMapEntry { key: string; value?: OAuthProviderLocalizedText | undefined; } export interface OAuthGetAuthConfigInput { } export interface OAuthConfig { authType?: string | undefined; authScope?: string | undefined; oauthProvider?: OAuthProvider | undefined; } export interface OAuthCredentialValidationInput { accessToken?: string | undefined; } export interface OAuthCredentialValidationResult { valid?: boolean | undefined; expiresAt?: string | undefined; error?: string | undefined; } export interface Calendar { id?: string | undefined; name?: string | undefined; description?: string | undefined; timezone?: string | undefined; isPrimary?: boolean | undefined; } export interface CalendarEventType { id?: string | undefined; name?: string | undefined; duration?: number | undefined; description?: string | undefined; color?: string | undefined; } export interface CalendarTimeSlot { startTime?: string | undefined; endTime?: string | undefined; } export interface CalendarAttendee { name?: string | undefined; email?: string | undefined; phone?: string | undefined; } export interface CalendarBooking { id?: string | undefined; eventTypeId?: string | undefined; startTime?: string | undefined; endTime?: string | undefined; attendee?: CalendarAttendee | undefined; status?: string | undefined; notes?: string | undefined; meetingUrl?: string | undefined; calendarEventId?: string | undefined; } export interface CalendarListCalendarsInput { pageToken?: string | undefined; } export interface CalendarListCalendarsOutput { calendars?: Calendar[] | undefined; nextPageToken?: string | undefined; } export interface CalendarListEventTypesInput { calendarId?: string | undefined; } export interface CalendarListEventTypesOutput { eventTypes?: CalendarEventType[] | undefined; } export interface CalendarGetAvailabilityInput { eventTypeId?: string | undefined; startDate?: string | undefined; endDate?: string | undefined; timezone?: string | undefined; } export interface CalendarGetAvailabilityOutput { slots?: CalendarTimeSlot[] | undefined; } export interface CalendarCreateBookingInput { eventTypeId?: string | undefined; startTime?: string | undefined; attendee?: CalendarAttendee | undefined; notes?: string | undefined; timezone?: string | undefined; } export interface CalendarCancelBookingInput { bookingId?: string | undefined; reason?: string | undefined; } export interface CalendarCancelBookingOutput { success?: boolean | undefined; booking?: CalendarBooking | undefined; } export interface CalendarGetBookingInput { bookingId?: string | undefined; } export interface CommandNameI18n { name?: string | undefined; } export interface CommandNameDescI18n { name?: string | undefined; description?: string | undefined; } export interface CommandParamDefI18n { name?: string | undefined; description?: string | undefined; } export interface CommandChoice { name?: string | undefined; value?: any | undefined; nameDescI18nMap?: { [key: string]: CommandNameDescI18n; } | undefined; } export interface CommandChoice_NameDescI18nMapEntry { key: string; value?: CommandNameDescI18n | undefined; } export interface CommandParamDefinition { name?: string | undefined; type?: string | undefined; required?: boolean | undefined; description?: string | undefined; choices?: CommandChoice[] | undefined; nameDescI18nMap?: { [key: string]: CommandParamDefI18n; } | undefined; autoComplete?: boolean | undefined; alfDescription?: string | undefined; } export interface CommandParamDefinition_NameDescI18nMapEntry { key: string; value?: CommandParamDefI18n | undefined; } export interface CommandConfig { name?: string | undefined; scope?: string | undefined; buttonName?: string | undefined; buttonNameI18nMap?: { [key: string]: CommandNameI18n; } | undefined; description?: string | undefined; nameDescI18nMap?: { [key: string]: CommandNameDescI18n; } | undefined; actionFunctionName?: string | undefined; autoCompleteFunctionName?: string | undefined; systemVersion?: string | undefined; alfMode?: string | undefined; alfDescription?: string | undefined; paramDefinitions?: CommandParamDefinition[] | undefined; enabledByDefault?: boolean | undefined; } export interface CommandConfig_ButtonNameI18nMapEntry { key: string; value?: CommandNameI18n | undefined; } export interface CommandConfig_NameDescI18nMapEntry { key: string; value?: CommandNameDescI18n | undefined; } export interface CommandGetCommandsInput { } export interface CommandGetCommandsOutput { commands?: CommandConfig[] | undefined; } export interface CommandTrigger { type?: string | undefined; attributes?: { [key: string]: string; } | undefined; } export interface CommandTrigger_AttributesEntry { key: string; value: string; } export interface CommandAutoCompleteArgument { focused?: boolean | undefined; name?: string | undefined; value?: any | undefined; } export interface CommandGetSuggestionsInput { chat?: ExtensionChat | undefined; input?: CommandAutoCompleteArgument[] | undefined; language?: string | undefined; } export interface CommandGetSuggestionsOutput { choices?: CommandChoice[] | undefined; } export interface CommandExecuteInput { chat?: ExtensionChat | undefined; trigger?: CommandTrigger | undefined; input?: { [key: string]: any; } | undefined; language?: string | undefined; } export interface CommandResult { type?: string | undefined; attributes?: { [key: string]: any; } | undefined; } export interface WidgetNameDescI18n { name?: string | undefined; description?: string | undefined; } export interface WidgetConfig { name?: string | undefined; actionFunctionName?: string | undefined; systemVersion?: string | undefined; defaultName?: string | undefined; defaultDescription?: string | undefined; defaultNameDescI18nMap?: { [key: string]: WidgetNameDescI18n; } | undefined; scope?: string | undefined; widgetType?: string | undefined; } export interface WidgetConfig_DefaultNameDescI18nMapEntry { key: string; value?: WidgetNameDescI18n | undefined; } export interface WidgetGetWidgetsInput { } export interface WidgetGetWidgetsOutput { widgets?: WidgetConfig[] | undefined; } export interface WidgetActionInput { chat?: ExtensionChat | undefined; language?: string | undefined; } export interface WidgetActionResult { type?: string | undefined; attributes?: { [key: string]: any; } | undefined; } export interface CustomTabNameI18n { name?: string | undefined; } export interface CustomTabConfig { name?: string | undefined; actionFunctionName?: string | undefined; systemVersion?: string | undefined; nameI18nMap?: { [key: string]: CustomTabNameI18n; } | undefined; } export interface CustomTabConfig_NameI18nMapEntry { key: string; value?: CustomTabNameI18n | undefined; } export interface CustomTabGetCustomTabsInput { } export interface CustomTabGetCustomTabsOutput { customTabs?: CustomTabConfig[] | undefined; } export interface CustomTabActionInput { language?: string | undefined; wamArgs?: any | undefined; } export interface CustomTabActionResult { type?: string | undefined; attributes?: { [key: string]: any; } | undefined; } export interface HookWebhookConfig { endpointToken?: string | undefined; executionScope?: string | undefined; } export interface HookConfig { type?: string | undefined; actionFunctionName?: string | undefined; systemVersion?: string | undefined; targetId?: string | undefined; webhook?: HookWebhookConfig | undefined; /** * Only oauth.beforeAuthorization and oauth.afterAuthorization may declare * redirect origins. Values are exact HTTPS origins without paths or wildcards. */ redirectOrigins?: string[] | undefined; /** OAuth hooks only: channel or manager. Omit for the shared fallback. */ authScope?: string | undefined; /** Authorization flow hooks only. */ display?: OAuthStepDisplay | undefined; } /** * Optional OAuth flow hooks are ordinary app functions registered by getHooks. * The same hook is called again after authenticated resume to verify external state. */ export interface OAuthFlowHookInput { flowId?: string | undefined; resumeUrl?: string | undefined; expiresAt?: string | undefined; } /** * Continue or redirect action, with an optional plain-text result summary. * Runtime validation rejects additional fields and URL on a continue result. */ export interface OAuthFlowHookResult { type?: string | undefined; url?: string | undefined; detail?: string | undefined; } export interface HookGetHooksInput { } export interface HookGetHooksOutput { hooks?: HookConfig[] | undefined; } export interface PollingPoller { functionName?: string | undefined; intervalSeconds?: number | undefined; timeoutSeconds?: number | undefined; maxConcurrency?: number | undefined; rps?: number | undefined; executionScope?: string | undefined; } export interface PollingGetPollersInput { } export interface PollingGetPollersOutput { pollers?: PollingPoller[] | undefined; } export interface PollingGetTargetChannelsInput { functionName?: string | undefined; cursor?: string | undefined; limit?: number | undefined; } export interface PollingGetTargetChannelsOutput { channelIds?: string[] | undefined; nextCursor?: string | undefined; hasNextPage?: boolean | undefined; } /** * Contextual App Suggestion metadata. The keywords Struct is encoded as a * locale-to-string-array JSON object (for example, {"ko":["쇼피파이"]}). */ export interface SuggestionTriggers { urls?: string[] | undefined; keywords?: { [key: string]: any; } | undefined; } export interface SuggestionGetTriggersInput { } export interface SuggestionGetTriggersOutput { triggers?: SuggestionTriggers | undefined; } export interface MailRelayHeader { name?: string | undefined; value?: string | undefined; } export interface MailRelayCommonHeaders { from?: string[] | undefined; to?: string[] | undefined; cc?: string[] | undefined; bcc?: string[] | undefined; subject?: string | undefined; messageId?: string | undefined; date?: string | undefined; } export interface MailRelayMail { source?: string | undefined; destination?: string[] | undefined; messageId?: string | undefined; commonHeaders?: MailRelayCommonHeaders | undefined; headers?: MailRelayHeader[] | undefined; } export interface MailRelayReceipt { timestamp?: string | undefined; spamVerdict?: string | undefined; virusVerdict?: string | undefined; spfVerdict?: string | undefined; dkimVerdict?: string | undefined; dmarcVerdict?: string | undefined; } export interface MailRelayInboundInput { slug?: string | undefined; recipient?: string | undefined; recipients?: string[] | undefined; sesMessageId?: string | undefined; bucketName?: string | undefined; objectKey?: string | undefined; mail?: MailRelayMail | undefined; receipt?: MailRelayReceipt | undefined; } export interface MailRelayInboundOutput { status?: string | undefined; idempotencyKey?: string | undefined; reason?: string | undefined; } export interface StoreProfileImage { key?: string | undefined; alt?: string | undefined; } export interface StoreProfileIntro { helpsWith?: string | undefined; recommendedFor?: string | undefined; } export interface StoreFaq { question?: string | undefined; answer?: string | undefined; } export interface StoreProfileLocalizedContent { images?: StoreProfileImage[] | undefined; intro?: StoreProfileIntro | undefined; faqs?: StoreFaq[] | undefined; } export interface StoreGetProfileInput { } export interface StoreGetProfileOutput { relatedAppIds?: string[] | undefined; i18nMap?: { [key: string]: StoreProfileLocalizedContent; } | undefined; } export interface StoreGetProfileOutput_I18nMapEntry { key: string; value?: StoreProfileLocalizedContent | undefined; } export interface NotebookCell { cellKey?: string | undefined; type?: string | undefined; name?: string | undefined; definition?: { [key: string]: any; } | undefined; presentation?: { [key: string]: any; } | undefined; } export interface NotebookLayoutColumn { cellKey?: string | undefined; colStart?: number | undefined; colEnd?: number | undefined; } export interface NotebookLayoutRow { rowKey?: string | undefined; position?: number | undefined; columns?: NotebookLayoutColumn[] | undefined; } export interface NotebookTab { tabKey?: string | undefined; label?: string | undefined; position?: number | undefined; layout?: NotebookLayoutRow[] | undefined; } export interface NotebookPayload { cells?: NotebookCell[] | undefined; tabs?: NotebookTab[] | undefined; } export interface AppNotebook { notebookKey?: string | undefined; version?: number | undefined; title?: string | undefined; description?: string | undefined; icon?: string | undefined; initialVisibility?: string | undefined; notebook?: NotebookPayload | undefined; } export interface NotebookGetNotebooksInput { } export interface NotebookGetNotebooksOutput { notebooks?: AppNotebook[] | undefined; } export interface DataSourceCatalog { alias?: string | undefined; displayName?: string | undefined; dialect?: string | undefined; active?: boolean | undefined; } export interface DataSourceTable { name?: string | undefined; localCatalogAlias?: string | undefined; description?: string | undefined; estimatedRowCount?: number | undefined; updatedAt?: number | undefined; tableType?: string | undefined; managerAccess?: string | undefined; permissions?: DataSourceManagerPermission[] | undefined; } export interface DataSourceColumn { name?: string | undefined; type?: string | undefined; nullable?: boolean | undefined; description?: string | undefined; partitionKey?: boolean | undefined; precision?: number | undefined; scale?: number | undefined; } export interface DataSourceTableDefinition { table?: DataSourceTable | undefined; columns?: DataSourceColumn[] | undefined; primaryKey?: string[] | undefined; } export interface DataSourceTableListing { table?: DataSourceTable | undefined; searchText?: string | undefined; tags?: string[] | undefined; } export interface DataSourceListCatalogsInput { } export interface DataSourceListCatalogsOutput { catalogs?: DataSourceCatalog[] | undefined; } export interface DataSourceListTablesInput { localCatalogAlias?: string | undefined; updatedAfter?: string | undefined; limit?: number | undefined; pageToken?: string | undefined; } export interface DataSourceListTablesOutput { tables?: DataSourceTableListing[] | undefined; nextPageToken?: string | undefined; metadataVersion?: string | undefined; } export interface DataSourceDescribeTableInput { localCatalogAlias?: string | undefined; tableName?: string | undefined; includeSample?: boolean | undefined; } export interface DataSourceDescribeTableOutput { definition?: DataSourceTableDefinition | undefined; sample?: { [key: string]: any; }[] | undefined; metadataVersion?: string | undefined; } /** * OrderAddress represents a recipient/shipping address. * The recipient's display name is `first_name` + `last_name` joined per locale. * Providers that do not support name splitting should put the full name in `last_name`. */ export interface OrderAddress { firstName?: string | undefined; lastName?: string | undefined; phoneNumber?: string | undefined; email?: string | undefined; cellPhoneNumber?: string | undefined; zipcode?: string | undefined; address1?: string | undefined; address2?: string | undefined; shippingMessage?: string | undefined; country?: string | undefined; city?: string | undefined; province?: string | undefined; /** ISO 3166-1 alpha-2 국가 코드. country 는 표시용 국가명이라 코드 비교에는 쓸 수 없다. */ countryCode?: string | undefined; } export interface OrderBankAccount { bankName?: string | undefined; accountNo?: string | undefined; accountHolder?: string | undefined; } export interface OrderDefectInfo { description?: string | undefined; imageUrls?: string[] | undefined; } export interface OrderClaimReason { type?: string | undefined; description?: string | undefined; } export interface OrderClaimability { /** * 네 값 모두 optional 이다. proto3 plain bool 은 false 와 미설정이 구별되지 않아 * protojson 이 false 를 생략하고, 전부 불가한 아이템이 claimability: {} 로 나간다. * 명시적 presence 를 주면 false 도 그대로 실려 "판정했고 불가" 와 "판정 못 함" 이 갈린다. */ cancelable?: boolean | undefined; returnable?: boolean | undefined; exchangeable?: boolean | undefined; shippingAddressChangeable?: boolean | undefined; /** * 불가 사유. 위 플래그가 false 일 때 "왜 불가한지"를 사용자에게 안내할 수 있게 채운다. * 판정하지 않았거나 사유를 제공하지 않는 커머스는 비워 둔다. */ nonCancelableReason?: string | undefined; nonReturnableReason?: string | undefined; nonExchangeableReason?: string | undefined; nonShippingAddressChangeableReason?: string | undefined; } export interface OrderClaim { id?: string | undefined; extClaimId?: string | undefined; type?: string | undefined; state?: string | undefined; itemIds?: string[] | undefined; createdAt?: number | undefined; } export interface OrderItem { id?: string | undefined; name?: string | undefined; imageUrl?: string | undefined; amount?: number | undefined; quantity?: number | undefined; option?: string | undefined; productId?: string | undefined; variantId?: string | undefined; state?: string | undefined; shippedAt?: number | undefined; deliveredAt?: number | undefined; estimatedShipDate?: number | undefined; claimability?: OrderClaimability | undefined; } export interface OrderPayment { state?: string | undefined; currency?: string | undefined; /** * 금액 필드는 0 이 정상 값이라(전액 할인, 무료배송, 할인 없음) presence 가 필요하다. * presence 가 없으면 protojson 이 0 을 지워 "무료배송"과 "배송비 미제공"을 구별할 수 없다. */ totalAmount?: number | undefined; itemsAmount?: number | undefined; shippingAmount?: number | undefined; discountAmount?: number | undefined; methods?: string[] | undefined; /** false 가 정상 값이라 optional 이다(위 금액 필드와 같은 이유). */ requireRefundBankAccount?: boolean | undefined; taxAmount?: number | undefined; /** * discount_amount 는 아래 세 값의 합이다. 무엇으로 깎였는지 안내하려면 개별 값이 필요하다. * 금액 필드라 0 이 정상 값이고, 따라서 presence 가 필요하다. */ pointAmount?: number | undefined; creditAmount?: number | undefined; couponDiscountAmount?: number | undefined; /** * 아직 결제되지 않은 잔액(무통장 입금 대기, 부분 결제 등). state 만으로는 얼마가 남았는지 * 알 수 없다. 0(완납)이 정상 값이라 presence 가 필요하다. */ dueAmount?: number | undefined; } export interface OrderFulfillment { id?: string | undefined; state?: string | undefined; itemIds?: string[] | undefined; trackingNumber?: string | undefined; trackingCompany?: string | undefined; trackingUrl?: string | undefined; estimatedDeliveryDate?: number | undefined; /** * tracking_company 에는 몰의 택배사 코드가 들어가는 몰이 있어 사람이 읽을 수 없다. * 표시용 이름을 따로 싣는다. */ trackingCompanyName?: string | undefined; /** * 한 배송 안에서도 항목별로 상태가 갈리는 몰이 있다(부분 출하·부분 반품). * state 는 배송 단위 상태이고, 항목별 상태는 이쪽이다. item_ids 와 중복되지만 * 상태를 붙일 자리가 없어 별도 목록으로 둔다. */ items?: OrderFulfillmentItem[] | undefined; } /** 배송에 포함된 항목 하나와 그 항목의 상태. */ export interface OrderFulfillmentItem { itemId?: string | undefined; state?: string | undefined; } /** 세금 한 줄. 주문·배송수단·아이템 어디에도 붙을 수 있다. */ export interface OrderTaxLine { rate?: number | undefined; ratePercentage?: number | undefined; title?: string | undefined; amount?: number | undefined; } /** 몰이 주문·아이템에 붙인 자유 키-값(선물 메시지, 각인 문구 등). */ export interface OrderAttribute { key?: string | undefined; value?: string | undefined; } /** 주문에 적용된 배송수단 한 건. */ export interface OrderShippingLine { id?: string | undefined; title?: string | undefined; code?: string | undefined; carrierIdentifier?: string | undefined; taxLines?: OrderTaxLine[] | undefined; } /** * 결제·환불 트랜잭션 한 건. payment.methods 는 게이트웨이 이름만 담아 착불·후불을 * 구분하지 못하므로, kind/status/gateway/manual_payment_gateway 를 그대로 보존한다. */ export interface OrderTransaction { id?: string | undefined; /** 환불·취소가 어느 결제에 붙은 건지 추적할 때 쓴다. */ parentId?: string | undefined; kind?: string | undefined; status?: string | undefined; gateway?: string | undefined; /** 착불·후불(무통장·대금교환) 판정의 핵심 신호라, false 와 미설정을 구별해야 한다. */ manualPaymentGateway?: boolean | undefined; amount?: number | undefined; currency?: string | undefined; createdAt?: number | undefined; } /** 몰이 붙인 확장 속성. value 는 type 에 따라 문자열·JSON 문자열 등 형태가 달라 해석하지 않는다. */ export interface OrderMetafield { namespace?: string | undefined; key?: string | undefined; value?: string | undefined; type?: string | undefined; } export interface Order { id?: string | undefined; title?: string | undefined; createdAt?: number | undefined; items?: OrderItem[] | undefined; payment?: OrderPayment | undefined; fulfillments?: OrderFulfillment[] | undefined; shippingAddress?: OrderAddress | undefined; claims?: OrderClaim[] | undefined; } export interface OrderAllowedValue { value?: string | undefined; label?: string | undefined; } export interface OrderFieldConfig { type?: string | undefined; allowedValues?: OrderAllowedValue[] | undefined; description?: string | undefined; } export interface OrderOperationOptions { required?: string[] | undefined; optional?: string[] | undefined; fieldConfigs?: { [key: string]: OrderFieldConfig; } | undefined; } export interface OrderOperationOptions_FieldConfigsEntry { key: string; value?: OrderFieldConfig | undefined; } export interface OrderAppCapabilities { getOrdersOptions?: OrderOperationOptions | undefined; cancelOrderOptions?: OrderOperationOptions | undefined; returnOrderOptions?: OrderOperationOptions | undefined; exchangeOrderOptions?: OrderOperationOptions | undefined; changeAddressOptions?: OrderOperationOptions | undefined; } export interface OrderGetOrdersInput { identifierType?: string | undefined; identifierValue?: string | undefined; } export interface OrderGetOrdersOutput { orders?: Order[] | undefined; } export interface OrderGetAppConfigsInput { } export interface OrderGetAppConfigsOutput { appCapabilities?: OrderAppCapabilities | undefined; } export interface OrderClaimItem { id?: string | undefined; quantity?: number | undefined; fulfillmentId?: string | undefined; } export interface OrderCancelOrderInput { orderId?: string | undefined; cancelItems?: OrderClaimItem[] | undefined; reason?: OrderClaimReason | undefined; refundBankAccount?: OrderBankAccount | undefined; } export interface OrderReturnOrderInput { orderId?: string | undefined; returnItems?: OrderClaimItem[] | undefined; reason?: OrderClaimReason | undefined; requestPickup?: boolean | undefined; pickupAddress?: OrderAddress | undefined; refundBankAccount?: OrderBankAccount | undefined; trackingNumber?: string | undefined; trackingCompany?: string | undefined; defectInfo?: OrderDefectInfo | undefined; shippingFeePaymentType?: string | undefined; } export interface OrderExchangeItem { productId?: string | undefined; variantId?: string | undefined; quantity?: number | undefined; } export interface OrderExchangeOrderInput { orderId?: string | undefined; beforeExchangeItems?: OrderClaimItem[] | undefined; afterExchangeItems?: OrderExchangeItem[] | undefined; reason?: OrderClaimReason | undefined; requestPickup?: boolean | undefined; pickupAddress?: OrderAddress | undefined; refundBankAccount?: OrderBankAccount | undefined; defectInfo?: OrderDefectInfo | undefined; shippingFeePaymentType?: string | undefined; } export interface OrderGetExchangeableItemsInput { orderId?: string | undefined; items?: OrderClaimItem[] | undefined; } export interface OrderGetExchangeableItemsOutput { items?: OrderItem[] | undefined; } export interface OrderChangeShippingAddressInput { orderId?: string | undefined; newAddress?: OrderAddress | undefined; } export interface OrderSuccessOutput { success?: boolean | undefined; } export interface CommerceIdentifier { type?: string | undefined; value?: string | undefined; } export interface CommerceOrderItem { id?: string | undefined; name?: string | undefined; imageUrl?: string | undefined; /** 0 원 상품(사은품)이 정상이라 presence 가 필요하다. */ amount?: number | undefined; quantity?: number | undefined; option?: string | undefined; productId?: string | undefined; variantId?: string | undefined; state?: string | undefined; shippedAt?: number | undefined; deliveredAt?: number | undefined; estimatedShipDate?: number | undefined; claimability?: OrderClaimability | undefined; sku?: string | undefined; /** 아직 출하되지 않은 수량. 0(전량 출하됨)과 미제공을 구별해야 해서 optional 이다. */ unfulfilledQuantity?: number | undefined; requiresShipping?: boolean | undefined; /** 정기구독 주문일 때만 채워진다. */ sellingPlanName?: string | undefined; sellingPlanId?: string | undefined; customAttributes?: OrderAttribute[] | undefined; taxLines?: OrderTaxLine[] | undefined; /** * state 는 몰마다 다른 상태를 공통 값으로 정규화한 것이라, 몰 고유 상태로 분기해야 하는 * 태스크는 원문이 필요하다. status_code 는 진행 상태(접수·배송준비·배송중 등) 코드, * status_text 는 그 표시 문구다. */ statusCode?: string | undefined; statusText?: string | undefined; /** 클레임 성격(정상·취소·반품·교환) 코드. 진행 상태와 축이 달라 따로 싣는다. */ claimStatusCode?: string | undefined; /** 상품 공급사. 위탁·입점 구조인 몰에서 CS 안내에 쓰인다. */ supplierId?: string | undefined; supplierName?: string | undefined; /** * 옵션 추가금. amount 에 이미 합산돼 있으나 분리해 보여줘야 하는 몰이 있다. * 0(추가금 없음)이 정상 값이라 presence 가 필요하다. */ optionAmount?: number | undefined; /** 세트(번들) 상품 정보. 번들이 아니면 비어 있다. false 와 미제공이 다른 뜻이라 optional 이다. */ bundle?: boolean | undefined; bundleId?: string | undefined; bundleName?: string | undefined; /** 번들 구성 방식(고정 구성·선택 구성 등) 원문 코드. */ bundleType?: string | undefined; bundleItems?: CommerceOrderBundleItem[] | undefined; /** 몰이 주문 안에서 이 상품 줄에 부여한 번호. id 와 달리 사람이 읽는 순번이라 안내 문구에 쓰인다. */ itemNo?: string | undefined; /** 옵션 구성 방식(조합형·독립형·연동형 등) 원문 코드. 방식에 따라 교환·옵션변경 가능 여부가 갈린다. */ optionType?: string | undefined; /** * 배송 정보를 항목 단위로도 싣는다. fulfillments 는 배송 건 단위라 "이 상품의 송장번호" 를 * 알려면 item_ids 로 되짚어야 하는데, 몰에 따라 항목이 배송 건보다 잘게 갈린다. */ trackingNumber?: string | undefined; /** 택배사 코드와 표시명. 코드만으로는 사람이 읽을 수 없다(fulfillment 쪽과 같은 이유). */ trackingCompany?: string | undefined; trackingCompanyName?: string | undefined; /** 이 항목이 속한 배송 건 코드. fulfillments[].id 와 대응한다. */ shippingCode?: string | undefined; /** * 몰이 상품에 부여한 코드. product_id(내부 식별자)·sku(품목 단위 재고 코드)와 다른 축이다. * 카페24는 숫자 product_no 와 사람이 읽는 product_code("P000000Y")를 따로 두고, CS 안내와 * 어드민 검색에는 후자를 쓴다. sku 에 넣으면 품목 단위 값이라는 뜻이 어긋난다. * 판매자가 직접 매긴 상품 단위 자체 코드는 이 자리에도 sku 에도 넣지 않는다 — 상품 단위 자리는 * CommerceProduct.seller_product_code 이고, 주문 항목 쪽 자리는 지금 계약에 없다. */ productCode?: string | undefined; } /** 세트(번들) 상품의 구성품 한 줄. CommerceOrderItem 의 부분집합이라 이름·수량·금액 규약이 같다. */ export interface CommerceOrderBundleItem { productId?: string | undefined; variantId?: string | undefined; name?: string | undefined; sku?: string | undefined; option?: string | undefined; quantity?: number | undefined; /** 0 원 구성품(사은품)이 정상이라 presence 가 필요하다. */ amount?: number | undefined; optionAmount?: number | undefined; supplierId?: string | undefined; /** * 상위 항목의 product_code 와 같은 뜻(품목 단위 sku 와 다른 축). 판매자가 직접 매긴 상품 단위 자체 코드는 * 이 자리에도 sku 에도 넣지 않는다 — 상품 단위 자리는 CommerceProduct.seller_product_code 이고, * 구성품 쪽 자리는 지금 계약에 없다. */ productCode?: string | undefined; } export interface CommerceOrder { id?: string | undefined; title?: string | undefined; orderedAt?: number | undefined; buyer?: Buyer | undefined; items?: CommerceOrderItem[] | undefined; payment?: OrderPayment | undefined; fulfillments?: OrderFulfillment[] | undefined; shippingAddress?: OrderAddress | undefined; claims?: OrderClaim[] | undefined; /** 매니저가 몰 어드민의 해당 주문으로 바로 이동할 수 있는 링크. */ adminUrl?: string | undefined; note?: string | undefined; /** payment.state 하나로는 부분환불·부분출하가 구분되지 않아 몰의 원문 상태를 함께 싣는다. */ displayFinancialStatus?: string | undefined; displayFulfillmentStatus?: string | undefined; /** 아래 bool 들은 false 와 미제공이 다른 의미라 optional 이다. */ test?: boolean | undefined; firstOrder?: boolean | undefined; closed?: boolean | undefined; confirmed?: boolean | undefined; taxesIncluded?: boolean | undefined; totalWeight?: number | undefined; /** 주문이 생성된 경로(예: Online Store). */ appName?: string | undefined; billingAddress?: OrderAddress | undefined; customAttributes?: OrderAttribute[] | undefined; shippingLines?: OrderShippingLine[] | undefined; transactions?: OrderTransaction[] | undefined; metafields?: OrderMetafield[] | undefined; /** * 주문이 들어온 경로를 몰이 식별하는 값. **비어 있지 않다고 해서 외부 마켓 주문이라는 * 뜻은 아니다** — 자사몰 주문에도 자기 식별자를 넣는 몰이 있다(카페24는 self·cafe24· * mobile·mobile_d). 값의 의미는 몰마다 다르므로 특정 값을 가정하지 말고, 외부 마켓 * 여부가 필요하면 market_order_no 유무를 함께 본다. */ marketId?: string | undefined; /** * 외부 마켓(네이버·쿠팡 등)이 발번한 주문번호. 몰 주문번호(id)와 달라 CS 조회 키로 쓰인다. * 자사몰 주문이면 비어 있다. */ marketOrderNo?: string | undefined; /** * 몰이 주문에 붙인 태그. ALF 워크플로가 주문 단위 분기 조건으로 쓴다. 상품 태그는 * CommerceProduct.tags 로 따로 나간다. */ tags?: string[] | undefined; } export interface CommerceGetOrdersInput { identifier?: CommerceIdentifier | undefined; searchFilter?: any | undefined; since?: string | undefined; limit?: number | undefined; } export interface CommerceGetOrdersOutput { orders?: CommerceOrder[] | undefined; next?: string | undefined; } export interface CommerceAppCapabilities { getOrdersOptions?: OrderOperationOptions | undefined; requestCancelOrderOptions?: OrderOperationOptions | undefined; requestReturnOrderOptions?: OrderOperationOptions | undefined; acceptReturnOrderOptions?: OrderOperationOptions | undefined; requestExchangeOrderOptions?: OrderOperationOptions | undefined; changeShippingAddressOptions?: OrderOperationOptions | undefined; /** * 다른 *_options 와 같은 어휘다: required / optional 에는 getProducts 의 입력 필드명 * (searchFilter·since·limit)을 적고, 앱이 받는 searchFilter 키는 field_configs["searchFilter.key"] * 한 항목에 type=enum·allowed_values 로 나열한다(getOrders 와 같은 방식). searchFilter 는 * { key, type, operator, values, and, or } 꼴이라 "searchFilter.key" 는 자리표시자가 아니라 * identifier.type 과 같은 실제 필드 경로다. allowed_values 의 value 는 필터 키 이름 * (productId·state·createdAt), label 은 그 키를 사람이 고를 때 보이는 표시 이름이다. * searchFilter 는 자유 형식이라 호출자가 지원 키를 기계적으로 알 길은 이것뿐이다. 필터 없이 * 불러도 첫 페이지를 돌려주므로 required 는 비운다. */ getProductsOptions?: OrderOperationOptions | undefined; } export interface CommerceGetAppConfigsInput { } export interface CommerceGetAppConfigsOutput { appCapabilities?: CommerceAppCapabilities | undefined; } export interface CommerceResultBody { /** * 성공 여부. 실패(false)도 정상 응답이라 반드시 값이 실려야 해서 optional 이다 — * presence 가 없으면 protojson 이 false 를 지워 실패 응답에서 키가 사라진다. */ success?: boolean | undefined; errorMessage?: string | undefined; } export interface CommerceActionResult { result?: CommerceResultBody | undefined; } export interface CommerceCancelOrderInput { identifier?: CommerceIdentifier | undefined; orderId?: string | undefined; cancelItems?: OrderClaimItem[] | undefined; reason?: OrderClaimReason | undefined; refundBankAccount?: OrderBankAccount | undefined; } export interface CommerceReturnOrderInput { identifier?: CommerceIdentifier | undefined; orderId?: string | undefined; returnItems?: OrderClaimItem[] | undefined; reason?: OrderClaimReason | undefined; requestPickup?: boolean | undefined; pickupAddress?: OrderAddress | undefined; refundBankAccount?: OrderBankAccount | undefined; trackingNumber?: string | undefined; trackingCompany?: string | undefined; defectInfo?: OrderDefectInfo | undefined; } export interface CommerceAcceptReturnOrderInput { identifier?: CommerceIdentifier | undefined; orderId?: string | undefined; returnItems?: OrderClaimItem[] | undefined; reason?: OrderClaimReason | undefined; refundBankAccount?: OrderBankAccount | undefined; pickupCompleted?: boolean | undefined; requestPickup?: boolean | undefined; } export interface CommerceExchangeOrderInput { identifier?: CommerceIdentifier | undefined; orderId?: string | undefined; beforeExchangeItems?: OrderClaimItem[] | undefined; afterExchangeItems?: OrderExchangeItem[] | undefined; reason?: OrderClaimReason | undefined; requestPickup?: boolean | undefined; pickupAddress?: OrderAddress | undefined; refundBankAccount?: OrderBankAccount | undefined; defectInfo?: OrderDefectInfo | undefined; } export interface CommerceGetExchangeableItemsInput { identifier?: CommerceIdentifier | undefined; orderId?: string | undefined; items?: OrderClaimItem[] | undefined; } export interface CommerceGetExchangeableItemsOutput { /** * 아이템별 교환 후보. 어떤 주문 아이템을 어떤 variant 로 바꿀 수 있고 추가금이 얼마인지 준다 — * requestExchangeOrder 의 after_exchange_items(variant_id) 를 채우려면 이 목록이 필요하다. */ exchangeableItems?: CommerceExchangeableItem[] | undefined; } export interface CommerceExchangeableItem { /** * 교환 후보의 대상이 되는 주문 아이템 id — getOrders 의 items[].id, 이 함수 입력의 * items[].id 와 같은 값이다. 응답에 여러 아이템이 섞여 오므로 호출자는 이 키로 입력과 * 짝을 맞추고, requestExchangeOrder 의 before_exchange_items[].id 로 그대로 넘긴다. */ id?: string | undefined; /** 주문 아이템의 상품 id (CommerceOrderItem.product_id 와 같다). */ productId?: string | undefined; variants?: CommerceExchangeableVariant[] | undefined; } export interface CommerceExchangeableVariant { /** 교환 대상 variant id. requestExchangeOrder 의 after_exchange_items.variant_id 로 그대로 쓴다. */ id?: string | undefined; /** * 원래 아이템 대비 추가 결제 금액. 추가금 없는 variant 가 대부분이라 0 이 정상 값이고, * presence 가 없으면 그 경우 키가 사라진다. */ additionalAmount?: number | undefined; options?: CommerceVariantOption[] | undefined; /** * 재고 수량. 재고 관리를 쓰지 않는 variant 는 수량 개념이 없어 비워 둔다 — 0(품절)과 * 미제공(무제한)을 구별해야 해서 optional 이다. */ stockQuantity?: number | undefined; /** 재고 관리 사용 여부. false 면 stock_quantity 는 의미가 없다. */ useInventory?: boolean | undefined; selling?: boolean | undefined; display?: boolean | undefined; } export interface CommerceVariantOption { /** 옵션명(예: 색상). */ name?: string | undefined; /** 옵션값(예: 블랙). */ value?: string | undefined; } export interface CommerceChangeShippingAddressInput { identifier?: CommerceIdentifier | undefined; orderId?: string | undefined; newAddress?: OrderAddress | undefined; } export interface CommerceGetProductsInput { /** * getOrders 와 같은 필터 표현. 안쪽 키는 protojson 이 변환하지 않는 데이터라 camelCase 그대로다 — * 공통 키는 productId(복수 id 조회 포함 — 커머스 필터 방언에서 any-of 는 $eq 에 복수 values 다)· * state·createdAt 이고, 광고하지 않은 키는 앱이 BadRequest 로 거부한다. * name 키는 없다 — 이름 검색은 이 함수의 몫이 아니다. */ searchFilter?: any | undefined; /** 이전 응답의 next 를 그대로 돌려주는 커서. */ since?: string | undefined; /** 한 페이지 크기. 앱이 기본값(10)과 상한(50)을 둔다. */ limit?: number | undefined; } export interface CommerceGetProductsOutput { products?: CommerceProduct[] | undefined; next?: string | undefined; } export interface CommerceProduct { /** 상품 id. getOrders 의 items[].product_id 와 같은 값이라 주문 아이템에서 상품으로 이어 갈 수 있다. */ id?: string | undefined; name?: string | undefined; /** * 상품 단위 판매가. 0 원 상품(사은품)이 정상이라 presence 가 필요하다. 가격을 variant 에만 두는 * 몰이 있어 필수가 아니다 — 대표값을 지어내는 대신 비우고, 소비자는 variants[].price 로 내려가 읽는다. */ price?: number | undefined; /** 정가. 판매가와 같으면 비워도 된다. */ originalPrice?: number | undefined; /** * 상품이 아니라 이 연동(몰)의 통화다. price·original_price 를 실으면 함께 싣는다 — 통화가 없으면 * 소비자는 채널 기본 통화로 가정할 수밖에 없다. */ currency?: string | undefined; /** active / inactive. 판단할 수 없으면 비운다 — 기본값으로 active 를 넣지 않는다. */ state?: string | undefined; /** 대표 이미지. */ imageUrl?: string | undefined; /** 상품 이미지 전체. 대표 이미지도 포함한다. */ images?: string[] | undefined; /** 몰 상품 페이지 주소. */ productUrl?: string | undefined; description?: string | undefined; summary?: string | undefined; vendor?: string | undefined; productType?: string | undefined; /** 카테고리 이름 목록. */ categories?: string[] | undefined; tags?: string[] | undefined; /** 몰에서 상품이 만들어진 시각(epoch ms). searchFilter 의 createdAt 도 이 축이다. */ createdAt?: number | undefined; /** epoch ms. 몰의 수정 시각이 아니라 앱이 상품을 저장한 시각일 수 있다. */ updatedAt?: number | undefined; variants?: CommerceProductVariant[] | undefined; /** * 몰이 상품에 부여한 사람이 읽는 코드. id(내부 식별자)와 다른 축이고 getOrders 의 * items[].product_code 와 같은 값이라, 주문에서 본 코드로 카탈로그 상품을 가리킬 수 있다. * 코드 개념이 없는 몰은 비운다. */ productCode?: string | undefined; /** * 판매자가 상품 단위로 직접 매긴 코드(카페24 "자체 상품코드", 아임웹 "자체 상품코드", 네이버 * "판매자 상품코드"). 플랫폼이 자동 부여하는 product_code 와 다른 축이고, 품목 단위 코드인 * variants[].sku 와 상속 관계가 아니라 별개다 — 상품 코드가 비어도 품목 코드는 채워질 수 있다. * 상품 단위 자리가 없고 코드를 variant 에만 두는 몰은 비운다. 공통 searchFilter 키로는 정의하지 않았다. * 지금 계약에는 getOrders 의 items[]·bundleItems[] 에 대응 필드가 없고, 몰이 sku 와 별도로 입력받는 * 품목 단위 판매자 코드(카페24 "자체 품목코드")의 자리도 없다 — 그 값을 sku 에 넣지 않는다. */ sellerProductCode?: string | undefined; } export interface CommerceProductVariant { /** * variant id. getOrders 의 items[].variant_id, requestExchangeOrder 의 * after_exchange_items.variant_id 와 같은 값이다. */ id?: string | undefined; /** * variant 의 절대 판매가. CommerceExchangeableVariant.additional_amount(원래 아이템 대비 추가금)와 * 의도적으로 다르다 — 카탈로그 소비자가 원하는 값도, 앱이 들고 있는 값도 절대가다. * 0 원이 정상 값이라 presence 가 필요하다. */ price?: number | undefined; /** 재고 수량. 재고를 관리하지 않으면 비운다 — 0(품절)과 미제공을 구별해야 해서 optional 이다. */ stockQuantity?: number | undefined; options?: CommerceVariantOption[] | undefined; /** * 품목 단위 재고 코드. getOrders 의 items[].sku 와 같은 값이다. 몰의 sku 자체가 판매자 입력값이면 * (Shopify) 그대로 싣는다. 몰이 sku 와 별도로 판매자 품목 코드 입력란을 두는 경우(카페24 "자체 * 품목코드")에는 그 값을 여기에 넣지 않는다 — 지금 계약에 그 자리는 없다. */ sku?: string | undefined; } export interface WmsShippingInfo { name?: string | undefined; firstName?: string | undefined; lastName?: string | undefined; mobileNumber?: string | undefined; landlineNumber?: string | undefined; zipcode?: string | undefined; address1?: string | undefined; address2?: string | undefined; country?: string | undefined; province?: string | undefined; message?: string | undefined; } export interface WmsDelivery { extId?: string | undefined; itemIds?: string[] | undefined; } export interface WmsOrderItem { extId?: string | undefined; extCommerceOrderItemId?: string | undefined; productName?: string | undefined; quantity?: number | undefined; state?: string | undefined; packageId?: string | undefined; estimatedShipDate?: string | undefined; invoiceNumber?: string | undefined; deliveryCompany?: string | undefined; shippingInfo?: WmsShippingInfo | undefined; } export interface WmsOrder { extId?: string | undefined; extCommerceOrderId?: string | undefined; items?: WmsOrderItem[] | undefined; deliveries?: WmsDelivery[] | undefined; } export interface WmsGetOrdersRequest { commerceOrderIds?: string | undefined; orderIds?: string | undefined; packageIds?: string | undefined; shopId?: string | undefined; } export interface WmsGetOrdersResult { orders?: WmsOrder[] | undefined; } export interface WmsGetOrderRequest { commerceOrderId?: string | undefined; orderId?: string | undefined; packageId?: string | undefined; shopId?: string | undefined; } export interface WmsGetOrderResult { order?: WmsOrder | undefined; } export interface WmsGetShopIDRequest { commerceType?: string | undefined; commerceKey?: string | undefined; } export interface WmsGetShopIDResult { message?: string | undefined; shopId?: any | undefined; } export interface WmsGetSupportedCommercesRequest { } export interface WmsGetSupportedCommercesResult { commerceTypes?: string[] | undefined; } export interface WmsOrderStateRequest { orderId?: string | undefined; orderIds?: string | undefined; reason?: string | undefined; memo?: string | undefined; } export interface WmsChangeShippingAddressRequest { orderId?: string | undefined; recipient?: string | undefined; phone?: string | undefined; address1?: string | undefined; postalCode?: string | undefined; address2?: string | undefined; message?: string | undefined; } export interface WmsRestoreOrderRequest { orderId?: string | undefined; memo?: string | undefined; prdSeq?: string | undefined; restorePack?: boolean | undefined; restockNormal?: boolean | undefined; restockBad?: boolean | undefined; } export interface WmsSuccessResult { success?: boolean | undefined; message?: string | undefined; } export interface Buyer { memberId?: string | undefined; email?: string | undefined; phone?: string | undefined; name?: string | undefined; } export interface WmsDeliveryV2 { id?: string | undefined; itemIds?: string[] | undefined; } export interface WmsOrderItemV2 { id?: string | undefined; commerceOrderItemId?: string | undefined; productName?: string | undefined; quantity?: number | undefined; state?: string | undefined; packageId?: string | undefined; estimatedShipDate?: string | undefined; invoiceNumber?: string | undefined; deliveryCompany?: string | undefined; } export interface WmsOrderV2 { id?: string | undefined; commerceOrderId?: string | undefined; buyer?: Buyer | undefined; items?: WmsOrderItemV2[] | undefined; deliveries?: WmsDeliveryV2[] | undefined; } export interface WmsIdentifier { type?: string | undefined; value?: string | undefined; } export interface WmsOrderGetOrdersRequest { identifier?: WmsIdentifier | undefined; searchFilter?: any | undefined; shopId?: string | undefined; since?: string | undefined; limit?: number | undefined; } export interface WmsOrderGetOrdersResult { orders?: WmsOrderV2[] | undefined; next?: string | undefined; } export interface WmsOrderActionRequest { identifier?: WmsIdentifier | undefined; orderIds?: string[] | undefined; reason?: string | undefined; memo?: string | undefined; } export interface WmsOrderChangeShippingAddressInput { identifier?: WmsIdentifier | undefined; orderId?: string | undefined; newAddress?: OrderAddress | undefined; reason?: string | undefined; memo?: string | undefined; } export interface WmsOrderResultBody { success?: boolean | undefined; errorMessage?: string | undefined; } export interface WmsOrderActionResult { result?: WmsOrderResultBody | undefined; } export interface WmsFieldConfig { type?: string | undefined; allowedValues?: OrderAllowedValue[] | undefined; description?: string | undefined; } export interface WmsOperationOptions { required?: string[] | undefined; optional?: string[] | undefined; fieldConfigs?: { [key: string]: WmsFieldConfig; } | undefined; } export interface WmsOperationOptions_FieldConfigsEntry { key: string; value?: WmsFieldConfig | undefined; } export interface WmsAppCapabilities { getOrdersOptions?: WmsOperationOptions | undefined; requestCancelOrderOptions?: WmsOperationOptions | undefined; restoreCanceledOrderOptions?: WmsOperationOptions | undefined; requestReturnOrderOptions?: WmsOperationOptions | undefined; restoreReturnedOrderOptions?: WmsOperationOptions | undefined; requestExchangeOrderOptions?: WmsOperationOptions | undefined; restoreExchangedOrderOptions?: WmsOperationOptions | undefined; changeShippingAddressOptions?: WmsOperationOptions | undefined; } export interface WmsGetAppConfigsInput { } export interface WmsGetAppConfigsOutput { appCapabilities?: WmsAppCapabilities | undefined; } export interface MessagingOnMediumMessageCreatedInput { userChat?: ChannelUserChat | undefined; message?: ChannelMessage | undefined; } export interface MessagingSendResult { sendState?: string | undefined; message?: string | undefined; /** * Stable app-owned error code for a failed send. The runtime persists this * value on the Channel message for getMediumMessageErrorReason lookups. */ errorCode?: number | undefined; } export interface MessagingOnMediumMessageCreatedOutput { sendResult?: MessagingSendResult | undefined; } export interface MessagingInboxOnMediumUserChatClosedInput { userChat?: ChannelUserChat | undefined; } export interface MessagingInboxOnMediumUserChatClosedOutput { } export interface MessagingInboxGetWritingTypesInput { userChat?: ChannelUserChat | undefined; } export interface MessagingInboxGetWritingTypesOutput { writingTypeMap?: WritingTypeMap | undefined; } export interface MessagingInboxGetCustomEditorWamInput { user?: ChannelUser | undefined; userChat?: ChannelUserChat | undefined; entityType?: string | undefined; mediumTopicKey?: string | undefined; mediumTopicLabels?: string[] | undefined; message?: ChannelMessage | undefined; } export interface MessagingInboxGetMediumTopicSelectorWamInput { user?: ChannelUser | undefined; } export interface MessagingInboxGetMediumMessageErrorReasonInput { userChat?: ChannelUserChat | undefined; message?: ChannelMessage | undefined; } export interface MessagingInboxGetMediumMessageErrorReasonOutput { errorMessage?: string | undefined; } export interface MessagingPrebuiltGetWritingTypesInput { } export interface MessagingPrebuiltGetWritingTypesOutput { writingTypeMap?: WritingTypeMap | undefined; } export interface MessagingPrebuiltValidateEntityInput { message?: PrebuiltMessage | undefined; entityType?: string | undefined; entityId?: string | undefined; mediumTopicBuildKey?: string | undefined; mediumTopicBuildLabels?: string[] | undefined; } export interface MessagingPrebuiltValidateEntityOutput { entityType?: string | undefined; entityId?: string | undefined; reasons?: UnavailableReason[] | undefined; } export interface MessagingPrebuiltGetCustomEditorWamInput { entityType?: string | undefined; entityId?: string | undefined; mediumTopicBuildKey?: string | undefined; mediumTopicBuildLabels?: string[] | undefined; message?: PrebuiltMessage | undefined; triggerEventName?: string | undefined; triggerEventNameI18nMap?: { [key: string]: any; } | undefined; } export interface MessagingPrebuiltGetMediumTopicBuilderSelectorWamInput { entityType?: string | undefined; } export interface MessagingPrebuiltBuildMediumTopicsInput { user?: ChannelUser | undefined; entityType?: string | undefined; mediumTopicBuilderKey?: string | undefined; } export interface MessagingPrebuiltBuildMediumTopicsOutput { mediumTopicKey?: string | undefined; mediumTopicLabels?: string[] | undefined; mediumProfile?: MediumProfile | undefined; } export interface MessagingPrebuiltGetDefaultOptionsInput { } export interface MessagingDefaultOptions { "campaign.userQuery"?: { [key: string]: any; } | undefined; "oneTimeMsg.userQuery"?: { [key: string]: any; } | undefined; "campaign.selectableAdvertising"?: boolean | undefined; "oneTimeMsg.selectableAdvertising"?: boolean | undefined; } export interface MessagingPrebuiltGetDefaultOptionsOutput { defaultOptions?: MessagingDefaultOptions | undefined; } export interface AlfTaskMemoryDefinition { name?: string | undefined; type?: string | undefined; description?: string | undefined; } export interface AlfTaskWorkflowNode { id?: string | undefined; type?: string | undefined; config?: { [key: string]: any; } | undefined; next?: string | undefined; } export interface AlfTaskPredefinedTask { version?: string | undefined; name?: string | undefined; trigger?: string | undefined; memorySchema?: AlfTaskMemoryDefinition[] | undefined; nodes?: AlfTaskWorkflowNode[] | undefined; startNodeId?: string | undefined; } export interface AlfTaskGetTasksInput { version?: string | undefined; } export interface AlfTaskGetTasksOutput { predefinedTasks?: AlfTaskPredefinedTask[] | undefined; } export interface OAuthTokenRequestMapping { authorizationCodeParamName?: string | undefined; } export interface OAuthTokenResponseMapping { accessTokenPath?: string | undefined; refreshTokenPath?: string | undefined; expiresInPath?: string | undefined; tokenTypePath?: string | undefined; refreshTokenExpiresInPath?: string | undefined; } /** Manager-scoped polling target contracts. */ export interface PollingManagerTarget { channelId?: string | undefined; managerId?: string | undefined; } export interface PollingGetTargetManagersInput { functionName?: string | undefined; cursor?: string | undefined; limit?: number | undefined; } export interface PollingGetTargetManagersOutput { targets?: PollingManagerTarget[] | undefined; nextCursor?: string | undefined; hasNextPage?: boolean | undefined; } export interface DataSourceQueryTableAccess { name?: string | undefined; columns?: string[] | undefined; } export interface DataSourceQueryFilter { table?: string | undefined; column?: string | undefined; values?: string[] | undefined; } export interface DataSourceAuthorizeQueryInput { localCatalogAlias?: string | undefined; tables?: DataSourceQueryTableAccess[] | undefined; } export interface DataSourceAuthorizeQueryOutput { authorized?: boolean | undefined; filters?: DataSourceQueryFilter[] | undefined; } export interface ConfigOAuthClientCredentials { clientIdFieldKey?: string | undefined; clientSecretFieldKey?: string | undefined; } export interface HookUserChatOpenedInput { eventId?: string | undefined; channelId?: string | undefined; userChatId?: string | undefined; state?: string | undefined; previousState?: string | undefined; openKind?: string | undefined; actorKind?: string | undefined; triggerMessageId?: string | undefined; occurredAt?: string | undefined; version?: string | undefined; } export interface HookUserChatOpenedResult { hookHandlingResult?: string | undefined; terminal?: boolean | undefined; } export interface HookTeamChatMessageCreatedInput { eventId?: string | undefined; channelId?: string | undefined; groupId?: string | undefined; messageId?: string | undefined; occurredAt?: string | undefined; sourceAppId?: string | undefined; snapshot?: { [key: string]: any; } | undefined; } export interface HookTeamChatMessageCreatedResult { hookHandlingResult?: string | undefined; terminal?: boolean | undefined; } export interface DataSourceManagerPermission { action?: string | undefined; scope?: string | undefined; } /** * Browser navigation requested by an explicitly clicked Config action. * The URL must match that action's registered redirect_origins. */ export interface ConfigActionRedirect { url?: string | undefined; /** "currentTab" or "external". Omission defaults to "external". */ mode?: string | undefined; } /** Redirects run after successful after_success steps and do not imply connection completion. */ export interface ConfigActionResult { valuesPatch?: { [key: string]: any; } | undefined; message?: string | undefined; redirect?: ConfigActionRedirect | undefined; } //# sourceMappingURL=extension.d.ts.map