import { CreateStepRequest as CreateStepRequest$1, CreateStepResponse as CreateStepResponse$1, BulkCreateStepsRequest as BulkCreateStepsRequest$1, BulkCreateStepsResponse as BulkCreateStepsResponse$1, GetStepRequest as GetStepRequest$1, GetStepResponse as GetStepResponse$1, UpdateStepRequest as UpdateStepRequest$1, UpdateStepResponse as UpdateStepResponse$1, BulkUpdateStepsRequest as BulkUpdateStepsRequest$1, BulkUpdateStepsResponse as BulkUpdateStepsResponse$1, DeleteStepRequest as DeleteStepRequest$1, DeleteStepResponse as DeleteStepResponse$1, QueryStepsRequest as QueryStepsRequest$1, QueryStepsResponse as QueryStepsResponse$1, MoveStepRequest as MoveStepRequest$1, MoveStepResponse as MoveStepResponse$1, CloneStepRequest as CloneStepRequest$1, CloneStepResponse as CloneStepResponse$1 } from './index.typings.js'; import '@wix/sdk-types'; /** * A step represents a piece of program content within a section. * A step can contain article, video, or quiz content. */ interface Step extends StepStepTypeOptionsOneOf { /** Video-specific settings. */ videoOptions?: VideoOptions; /** Quiz-specific settings. */ quizOptions?: QuizOptions; /** * Step ID. * @format GUID * @readonly */ id?: string | null; /** * Revision number, which increments by 1 each time the step is updated. To prevent conflicting changes, the current `revision` must be passed when updating the step. * @readonly */ revision?: string | null; /** * Date and time the step was created. * @readonly */ createdDate?: Date | null; /** * Date and time the step was updated. * @readonly */ updatedDate?: Date | null; /** * Parent section ID. To move a step within a section or to another section, call `MoveStep`. * @format GUID * @readonly */ sectionId?: string; /** Step title, rich text content, and optional media. */ description?: Description; /** Step position within the section. */ ordering?: number; /** Type of content in the step. */ stepType?: StepTypeWithLiterals; /** Custom field data for the step object. */ extendedFields?: ExtendedFields; /** * Program ID. * @format GUID * @readonly */ programId?: string; /** * Whether this step is before the enabled program's paywall divider. Returned only * when PREVIEW_AVAILABLE is requested. This classification does not grant content access. * NOT-PRECEDENT: Unlike AIP-7001's event recommendation, this cross-service read-time * classification is omitted from events; it is not persisted Step state. * @internal * @readonly */ previewAvailable?: boolean | null; } /** @oneof */ interface StepStepTypeOptionsOneOf { /** Video-specific settings. */ videoOptions?: VideoOptions; /** Quiz-specific settings. */ quizOptions?: QuizOptions; } /** Video details for videos hosted in Wix Video. */ interface WixVideo { /** * Wix Video ID. * @format GUID */ id?: string; /** Whether the Wix Video is paid content. */ paid?: boolean; } interface VideoV2 { /** WixMedia ID. */ id?: string; /** * Original video URL. * @internal */ url?: string; /** * Available resolutions for the video, starting with the optimal resolution. * @readonly * @maxSize 100 */ resolutions?: VideoResolution[]; /** * Video filename. * @readonly */ filename?: string | null; /** * Video posters. * @internal * @readonly */ posters?: Image[]; /** * Original video size in bytes. * @internal * @readonly * @format DECIMAL_VALUE */ sizeInBytes?: string | null; /** * Video URL expiration date (when relevant). * @internal * @readonly */ urlExpirationDate?: Date | null; /** * Original video duration in milliseconds. * @internal * @readonly */ durationInMilliseconds?: number | null; /** * A short title for the video. will be used for SEO purposes. * @internal * @maxLength 300 */ title?: string | null; /** * A long description for the video. will be used for SEO purposes. * @internal * @maxLength 2000 */ description?: string | null; /** * Original video height. * @internal * @readonly */ height?: number | null; /** * Original video width. * @internal * @readonly */ width?: number | null; } interface VideoResolution { /** Video URL. */ url?: string; /** Video height. */ height?: number; /** Video width. */ width?: number; /** * Deprecated. Use the `posters` property in the parent entity instead. * @internal * @deprecated */ poster?: Image; /** Video format for example, mp4, hls. */ format?: string; /** * Deprecated. Use the `urlExpirationDate` property in the parent entity instead. * @internal * @deprecated */ urlExpirationDate?: Date | null; /** * Deprecated. Use the `sizeInBytes` property in the parent entity instead. Size cannot be provided per resolution. * @internal * @format DECIMAL_VALUE * @deprecated */ sizeInBytes?: string | null; /** * Video quality. For example: 480p, 720p. * @internal */ quality?: string | null; /** * Video filename. * @internal */ filename?: string | null; /** * Video duration in seconds. * @internal * @readonly * @deprecated Video duration in seconds. * @replacedBy duration_in_milliseconds * @targetRemovalDate 2024-08-01 */ durationInSeconds?: number | null; /** * Video duration in milliseconds. * @internal * @readonly */ durationInMilliseconds?: number | null; /** * When true, this is a protected asset, and calling the URL will return a 403 error. * In order to access private assets, make a request to: * `GenerateFileDownloadUrl` with the WixMedia id and specify the asset_key in the request * @internal * @readonly */ private?: boolean | null; /** * Key to identify the video resolution's relationship to the original media in WixMedia. * Can be used to request a download for the specific video resolution. * For example: 480p.mp4, 720p.mp4, 1080p.mp4, trailer-720p.mp4, clip-720p.mp4 * @internal * @readonly */ assetKey?: string | null; } interface Image { /** WixMedia image ID. */ id?: string; /** Image URL. */ url?: string; /** * Original image height. * @readonly */ height?: number; /** * Original image width. * @readonly */ width?: number; /** Image alt text. */ altText?: string | null; /** * Image URL expiration date (when relevant). * @internal * @readonly */ urlExpirationDate?: Date | null; /** * Image filename. * @readonly */ filename?: string | null; /** * Image size in bytes. * @internal * @readonly * @format DECIMAL_VALUE */ sizeInBytes?: string | null; /** * Focal point of the image. * @internal */ focalPoint?: FocalPoint; } interface FocalPoint { /** X-coordinate of the focal point. */ x?: number; /** Y-coordinate of the focal point. */ y?: number; /** crop by height */ height?: number | null; /** crop by width */ width?: number | null; } interface Description extends DescriptionMediaOneOf { /** * @internal * @deprecated * @replacedBy description.details * @targetRemovalDate 2026-12-01 */ image?: Image; /** * @internal * @deprecated * @replacedBy description.details * @targetRemovalDate 2026-12-01 */ video?: VideoV2; /** @maxLength 250 */ title?: string; /** @maxLength 1000000 */ details?: string | null; } /** @oneof */ interface DescriptionMediaOneOf { /** * @internal * @deprecated * @replacedBy description.details * @targetRemovalDate 2026-12-01 */ image?: Image; /** * @internal * @deprecated * @replacedBy description.details * @targetRemovalDate 2026-12-01 */ video?: VideoV2; } declare enum StepType { /** Text-based step. */ ARTICLE = "ARTICLE", /** Step with video content. */ VIDEO = "VIDEO", /** Step linked to a quiz. */ QUIZ = "QUIZ" } /** @enumType */ type StepTypeWithLiterals = StepType | 'ARTICLE' | 'VIDEO' | 'QUIZ'; /** Additional settings for video steps. */ interface VideoOptions extends VideoOptionsVideoSourceOneOf { /** Video from Wix Video. */ wixVideo?: WixVideo; /** Video uploaded with Media Manager. */ video?: VideoV2; /** Percentage of the video that must be watched to complete the step. */ requiredCompletionPercentage?: number; /** Cover image for the video. */ coverImage?: Image; /** Video duration in milliseconds. */ durationInMilliseconds?: number | null; /** Whether the uploaded video was deleted from Media Manager. */ deleted?: boolean; } /** @oneof */ interface VideoOptionsVideoSourceOneOf { /** Video from Wix Video. */ wixVideo?: WixVideo; /** Video uploaded with Media Manager. */ video?: VideoV2; } /** Additional settings for quiz steps. */ interface QuizOptions { /** * Quiz ID. Provide it when creating a quiz step. After creation, the quiz reference can't be changed. * @format GUID * @readonly * @immutable */ id?: string; /** * Total number of questions in the quiz. * @readonly */ totalQuestions?: number; /** Minimum percentage required to pass the quiz. */ passingGrade?: number | null; } interface ExtendedFields { /** * Extended field data. Each key corresponds to the namespace of the app that created the extended fields. * The value of each key is structured according to the schema defined when the extended fields were configured. * * You can only access fields for which you have the appropriate permissions. * * Learn more about [extended fields](https://dev.wix.com/docs/rest/articles/getting-started/extended-fields). */ namespaces?: Record>; } interface UpdateDocumentsEvent extends UpdateDocumentsEventOperationOneOf { /** insert/update documents */ update?: DocumentUpdateOperation; /** delete by document ids */ deleteByIds?: DeleteByIdsOperation; /** delete documents matching filter */ deleteByFilter?: DeleteByFilterOperation; /** update documents matching filter */ updateByFilter?: UpdateByFilterOperation; /** update only existing documents */ updateExisting?: UpdateExistingOperation; /** * application which owns documents * @minLength 2 */ appDefId?: string | null; /** * type of the documents * @minLength 2 */ documentType?: string | null; /** * language of the documents * @minLength 2 */ language?: string | null; /** * site documents belong to * @minLength 2 */ msId?: string | null; } /** @oneof */ interface UpdateDocumentsEventOperationOneOf { /** insert/update documents */ update?: DocumentUpdateOperation; /** delete by document ids */ deleteByIds?: DeleteByIdsOperation; /** delete documents matching filter */ deleteByFilter?: DeleteByFilterOperation; /** update documents matching filter */ updateByFilter?: UpdateByFilterOperation; /** update only existing documents */ updateExisting?: UpdateExistingOperation; } interface DocumentUpdateOperation { /** documents to index or update */ documents?: IndexDocument[]; } interface IndexDocument { /** data bag with non-searchable fields (url, image) */ payload?: DocumentPayload; /** what type of users should documents be visible to */ exposure?: EnumWithLiterals; /** document with mandatory fields (id, title, description) and with fields specific to the type of the document */ document?: Record | null; /** what member groups is the document exposed to. Used only with GROUP_PROTECTED exposure */ permittedMemberGroups?: string[]; /** if true SEO is disabled for this document */ seoHidden?: boolean | null; /** if true the page is a lightbox popup */ isPopup?: boolean | null; } interface DocumentPayload { /** url of the page representing the document */ url?: string | null; /** image which represents the document */ documentImage?: DocumentImage; } interface DocumentImage { /** the name of the image */ name?: string; /** the width of the image */ width?: number; /** the height of the image */ height?: number; } declare enum Enum { /** Default value. Means that permission not set */ UNKNOWN = "UNKNOWN", /** Protected exposure. Exposed to members and owners */ PROTECTED = "PROTECTED", /** Private exposure. Exposed to owners */ PRIVATE = "PRIVATE", /** Public exposure. Visible to everyone */ PUBLIC = "PUBLIC", /** Used for partial updates, to state that exposure is not changing */ UNCHANGED = "UNCHANGED", /** Protected to members of permitted groups and owners */ GROUP_PROTECTED = "GROUP_PROTECTED" } /** @enumType */ type EnumWithLiterals = Enum | 'UNKNOWN' | 'PROTECTED' | 'PRIVATE' | 'PUBLIC' | 'UNCHANGED' | 'GROUP_PROTECTED'; interface DeleteByIdsOperation { /** ids of the documents to delete */ documentIds?: string[]; } interface DeleteByFilterOperation { /** documents matching this filter wil be deleted. only filterable documents defined in document_type can be used for filtering */ filter?: Record | null; } interface UpdateByFilterOperation { /** documents matching this filter will be updated */ filter?: Record | null; /** partial document to apply */ document?: IndexDocument; } interface UpdateExistingOperation { /** documents to update */ documents?: IndexDocument[]; } /** Payload for the step moved webhook. */ interface StepMoved { /** * Target section ID. * @format GUID */ sectionId?: string; /** * Moved step ID. * @format GUID */ stepId?: string; /** New step position. */ newPosition?: number; /** * Program ID. * @format GUID */ programId?: string; /** * Previous section ID. * @format GUID */ prevSectionId?: string; } interface CreateStepRequest { /** Step to create. */ step: Step; /** * @internal * @format GUID * @readonly */ programId?: string; /** * Additional fields to return. Omit to preserve the standard response. * @internal * @maxSize 100 */ fields?: RequestedFieldsWithLiterals[]; } /** Optional read-time fields. Unknown-only selections perform no classification. */ declare enum RequestedFields { /** * Classify the step relative to its program's current paywall divider. * @documentationMaturity preview * @internal */ PREVIEW_AVAILABLE = "PREVIEW_AVAILABLE" } /** @enumType */ type RequestedFieldsWithLiterals = RequestedFields; interface CreateStepResponse { /** Created step. */ step?: Step; } interface BulkCreateStepsRequest { /** * Steps to create. * @minSize 1 * @maxSize 100 */ steps: Step[]; /** Whether to return created steps in the response. */ returnEntity?: boolean; /** * @internal * @format GUID * @readonly */ programId?: string; /** * Additional fields to return. Omit to preserve the standard response. * @internal * @maxSize 100 */ fields?: RequestedFieldsWithLiterals[]; } interface BulkCreateStepsResponse { /** Results for each processed step. */ results?: BulkStepResult[]; /** Metadata about the bulk action. */ bulkActionMetadata?: BulkActionMetadata; } interface BulkStepResult { /** Metadata for the processed step. */ itemMetadata?: ItemMetadata; /** Processed step. Empty when `returnEntity` is `false`. */ item?: Step; /** Bulk action performed for the step. */ action?: BulkActionTypeWithLiterals; } interface ItemMetadata { /** Item ID. Should always be available, unless it's impossible (for example, when failing to create an item). */ id?: string | null; /** Index of the item within the request array. Allows for correlation between request and response items. */ originalIndex?: number; /** Whether the requested action was successful for this item. When `false`, the `error` field is populated. */ success?: boolean; /** Details about the error in case of failure. */ error?: ApplicationError; } interface ApplicationError { /** Error code. */ code?: string; /** Description of the error. */ description?: string; /** Data related to the error. */ data?: Record | null; } declare enum BulkActionType { UNKNOWN_ACTION_TYPE = "UNKNOWN_ACTION_TYPE", INSERT = "INSERT", UPDATE = "UPDATE", DELETE = "DELETE" } /** @enumType */ type BulkActionTypeWithLiterals = BulkActionType | 'UNKNOWN_ACTION_TYPE' | 'INSERT' | 'UPDATE' | 'DELETE'; interface BulkActionMetadata { /** Number of items that were successfully processed. */ totalSuccesses?: number; /** Number of items that couldn't be processed. */ totalFailures?: number; /** Number of failures without details because detailed failure threshold was exceeded. */ undetailedFailures?: number; } /** * NOT-PRECEDENT: AIP-7001 requests fields on all entity-returning methods. * This private/deprecated method intentionally does not offer preview classification. */ interface BulkCreateStepRequest { /** * Steps to create. * @minSize 1 * @maxSize 100 */ steps?: Step[]; /** Whether to return created steps in the response. */ returnEntity?: boolean; /** * @internal * @format GUID * @readonly */ programId?: string; } interface BulkCreateStepResponse { /** Results for each processed step. */ results?: BulkStepResult[]; /** Metadata about the bulk action. */ bulkActionMetadata?: BulkActionMetadata; } /** * NOT-PRECEDENT: AIP-7001 requests fields on all entity-returning methods. * This private/deprecated method intentionally does not offer preview classification. */ interface BulkCreateStepMigrationRequest { /** * List of steps you want to create * @minSize 1 * @maxSize 100 */ steps?: Step[]; /** * Program in which steps are to be created. * @format GUID */ programId?: string; } interface BulkCreateStepMigrationResponse { /** Results of bulk action. */ results?: BulkStepResult[]; /** Metadata about whole bulk action. */ bulkActionMetadata?: BulkActionMetadata; } interface GetStepRequest { /** * Step ID. * @format GUID */ stepId: string; /** Predefined set of description fields to return. */ descriptionFieldSet?: DescriptionFieldSetWithLiterals; /** * Additional fields to return. Omit to preserve the standard response. * @internal * @maxSize 100 */ fields?: RequestedFieldsWithLiterals[]; } declare enum DescriptionFieldSet { /** Returns the standard step description fields. */ STANDARD = "STANDARD", /** Returns additional step description fields when they're available to the caller. */ EXTENDED = "EXTENDED" } /** @enumType */ type DescriptionFieldSetWithLiterals = DescriptionFieldSet | 'STANDARD' | 'EXTENDED'; interface GetStepResponse { /** Retrieved step. */ step?: Step; } interface UpdateStepRequest { /** Step to update. May be partial. */ step: Step; /** * Set of fields to update. Fields that aren't included in `fieldMask.paths` are ignored. * @internal */ fieldMask?: string[]; /** * Additional fields to return. Omit to preserve the standard response. * @internal * @maxSize 100 */ fields?: RequestedFieldsWithLiterals[]; } interface UpdateStepResponse { /** Updated step. */ step?: Step; } interface BulkUpdateStepsRequest { /** * Steps to update. A missing `step.id` is returned as a failed item result. * @minSize 1 * @maxSize 100 */ steps: MaskedStep[]; /** Whether to return updated steps in the response. */ returnEntity?: boolean; /** * Additional fields to return. Omit to preserve the standard response. * @internal * @maxSize 100 */ fields?: RequestedFieldsWithLiterals[]; } interface MaskedStep { /** Step to update. May be partial. */ step?: Step; /** Explicit list of fields to update. */ fieldMask?: string[]; } interface BulkUpdateStepsResponse { /** * @minSize 1 * @maxSize 100 */ results?: BulkUpdateStepResult[]; /** Metadata about the bulk action. */ bulkActionMetadata?: CommonBulkActionMetadata; } interface CommonItemMetadata { /** * Item ID. Should always be available, unless it's impossible (for example, when failing to create an item). * @format GUID */ id?: string | null; /** Index of the item within the request array. Allows for correlation between request and response items. */ originalIndex?: number; /** Whether the requested action was successful for this item. When `false`, the `error` field is populated. */ success?: boolean; /** Details about the error in case of failure. */ error?: ApplicationError; } interface BulkUpdateStepResult { /** Metadata for the processed step. */ itemMetadata?: CommonItemMetadata; /** Updated step. Returned only when `returnEntity` is `true`. */ item?: Step; } interface CommonBulkActionMetadata { /** Number of items that were successfully processed. */ totalSuccesses?: number; /** Number of items that couldn't be processed. */ totalFailures?: number; /** Number of failures without details because detailed failure threshold was exceeded. */ undetailedFailures?: number; } interface DeleteStepRequest { /** * Step ID. * @format GUID */ stepId: string; } interface DeleteStepResponse { } interface QueryStepsRequest { /** Query object. */ query?: CursorQuery; /** Predefined set of description fields to return. */ descriptionFieldSet?: DescriptionFieldSetWithLiterals; /** * Program ID. * @maxLength 36 */ programId?: string; /** * Additional fields to return. Omit to preserve the standard response. * @internal * @maxSize 100 */ fields?: RequestedFieldsWithLiterals[]; } interface CursorQuery extends CursorQueryPagingMethodOneOf { /** Cursor token pointing to a page of results. Not used in the first request. Following requests use the cursor token and not `filter` or `sort`. */ cursorPaging?: CursorPaging; /** * Filter object in the following format: * `"filter" : { * "fieldName1": "value1", * "fieldName2":{"$operator":"value2"} * }` * Example of operators: `$eq`, `$ne`, `$lt`, `$lte`, `$gt`, `$gte`, `$in`, `$hasSome`, `$hasAll`, `$startsWith`, `$contains` */ filter?: Record | null; /** * Sort object in the following format: * `[{"fieldName":"sortField1","order":"ASC"},{"fieldName":"sortField2","order":"DESC"}]` */ sort?: Sorting[]; } /** @oneof */ interface CursorQueryPagingMethodOneOf { /** Cursor token pointing to a page of results. Not used in the first request. Following requests use the cursor token and not `filter` or `sort`. */ cursorPaging?: CursorPaging; } interface Sorting { /** * Name of the field to sort by. * @maxLength 512 */ fieldName?: string; /** Sort order. */ order?: SortOrderWithLiterals; /** * When `field_name` is a property of repeated field that is marked as `MATCH_ITEMS` and sort should be done by * a specific element from a collection, filter can/should be provided to ensure correct sort value is picked. * * If multiple filters are provided, they are combined with AND operator. * * Example: * Given we have document like {"id": "1", "nestedField": [{"price": 10, "region": "EU"}, {"price": 20, "region": "US"}]} * and `nestedField` is marked as `MATCH_ITEMS`, to ensure that sorting is done by correct region, filter should be * { fieldName: "nestedField.price", "select_items_by": [{"nestedField.region": "US"}] } * @internal * @maxSize 10 */ selectItemsBy?: Record[] | null; /** * Origin point for geo-distance sorting on a GEO field * results are ordered by distance from this point (ASC = nearest first, DESC = farthest first). */ origin?: AddressLocation; } declare enum SortOrder { ASC = "ASC", DESC = "DESC" } /** @enumType */ type SortOrderWithLiterals = SortOrder | 'ASC' | 'DESC'; interface AddressLocation { /** Address latitude. */ latitude?: number | null; /** Address longitude. */ longitude?: number | null; } interface CursorPaging { /** * Maximum number of items to return in the results. * @max 500 */ limit?: number | null; /** * Pointer to the next or previous page in the list of results. * * Pass the relevant cursor token from the `pagingMetadata` object in the previous call's response. * Not relevant for the first request. * @maxLength 16000 */ cursor?: string | null; } interface QueryStepsResponse { /** Retrieved steps. */ steps?: Step[]; /** Paging metadata. */ pagingMetadata?: CursorPagingMetadata; } interface CursorPagingMetadata { /** Number of items returned in current page. */ count?: number | null; /** Cursor strings that point to the next page, previous page, or both. */ cursors?: Cursors; /** * Whether there are more pages to retrieve following the current page. * * + `true`: Another page of results can be retrieved. * + `false`: This is the last page. */ hasNext?: boolean | null; /** * Total number of items matching the filter. * Available only on the first page of *Search* results, not included in *Query* or *List* results. * If the Search results span multiple pages, the value of `total` will exceed the number of items returned on the first page. * @internal */ total?: number | null; } interface Cursors { /** * Cursor string pointing to the next page in the list of results. * @maxLength 16000 */ next?: string | null; /** * Cursor pointing to the previous page in the list of results. * @maxLength 16000 */ prev?: string | null; } /** * NOT-PRECEDENT: AIP-7001 requests fields on all entity-returning methods. * This private/deprecated method intentionally does not offer preview classification. */ interface QueryStepsWithoutPagingRequest { /** WQL expression. Cursor paging is not supported in this endpoint. */ query?: CursorQuery; /** Whenever to return description only with title or with details as well */ descriptionFieldSet?: DescriptionFieldSetWithLiterals; /** * Program id to query steps * @maxLength 36 */ programId?: string; } interface QueryStepsWithoutPagingResponse { /** List of Steps. */ steps?: Step[]; } interface ListStepOrderingMetadataRequest { /** * Program whose Steps are listed. Authorization is checked on every page. * @format GUID */ programId?: string; /** * Optional Section filter. No matches returns an empty page, including for a foreign Section. * @format GUID */ sectionId?: string | null; /** * Cursor paging. The default limit is 100; the maximum is 500. * Keep the Program and Section filters unchanged when following a cursor. */ paging?: CursorPaging; } interface ListStepOrderingMetadataResponse { /** * Raw Step positions, without content or enrichment. * @maxSize 500 */ steps?: StepOrderingMetadata[]; /** Cursors for traversing all matching Steps. */ pagingMetadata?: CursorPagingMetadata; } interface StepOrderingMetadata { /** * Step ID. * @format GUID */ stepId?: string; /** * Owning Program ID. * @format GUID */ programId?: string; /** * Containing Section ID. * @format GUID */ sectionId?: string; /** Raw ordering value within the Section. Equal values are ordered by Step ID. */ ordering?: number; /** Observed revision. It does not lock the Step or reserve the gap. */ revision?: string | null; } interface GetStepOrderingNeighborsRequest { /** * Program containing the requested gap. * @format GUID */ programId?: string; /** * Section containing the requested gap. Existence must be checked through Sections separately. * @format GUID */ sectionId?: string; /** Requested insertion gap. */ placement?: PlacementWithLiterals; /** * Required for AFTER_STEP and forbidden for FIRST/LAST. * @format GUID */ afterStepId?: string | null; } declare enum Placement { /** Before the first Step. */ FIRST = "FIRST", /** After the last Step. */ LAST = "LAST", /** After the anchor, including an equal-ranked successor when present. */ AFTER_STEP = "AFTER_STEP" } /** @enumType */ type PlacementWithLiterals = Placement | 'FIRST' | 'LAST' | 'AFTER_STEP'; interface GetStepOrderingNeighborsResponse { /** Anchor for AFTER_STEP, last Step for LAST, absent for FIRST or an empty container. */ leftNeighbor?: StepOrderingMetadata; /** * First Step for FIRST, immediate successor for AFTER_STEP, absent for LAST or at the end. * Both neighbors are absent for an empty container; this does not prove that the Section exists. */ rightNeighbor?: StepOrderingMetadata; } /** * NOT-PRECEDENT: AIP-7001 requests fields on all entity-returning methods. * This private/deprecated method intentionally does not offer preview classification. */ interface ListAllProgramStepsRequest { /** * program id of requested steps * @format GUID */ programId?: string; /** Whenever to return description only with title or with details as well */ descriptionFieldSet?: DescriptionFieldSetWithLiterals; } interface ListAllProgramStepsResponse { /** List of Steps. */ steps?: Step[]; } interface DeleteAllProgramStepsRequest { /** * Program id to delete steps from * @format GUID */ programId?: string; } interface DeleteAllProgramStepsResponse { /** Total count of steps in the program */ stepsTotal?: number; /** Count of successfully deleted steps */ successfulCount?: number; /** Count of steps that failed to be deleted */ failedCount?: number; } interface BulkCloneStepRequest { /** * id of program which was cloned * @format GUID */ prototypeProgramId?: string; /** * id of program which was cloned * @format GUID */ clonedProgramId?: string; /** mapping of original to cloned section ids */ prototypeIdToClonedId?: Record; } interface BulkCloneStepResponse { /** * ids of newly created steps * @format GUID * @maxSize 100 */ createdStepIds?: string[]; } interface MoveStepRequest { /** * Step ID. * @format GUID */ stepId: string; /** * Target section ID. * @format GUID */ sectionId: string; /** * Step ID after which to place the moved step. Leave empty to move the step to the beginning of the target section. * @format GUID */ afterStepId?: string | null; /** Current revision of the step. Pass it when available to protect against conflicting updates. */ revision?: string; /** * Selects the side only when a paywall divider splits the gap after after_step_id, * or the beginning gap when that anchor is omitted. True inserts after the divider; * false inserts before it. Otherwise either value uses the same content gap. * Omit to retain existing placement behavior. Explicit use requires enabled Freemium * and a current divider. Does not assert the resulting global free/paid side. * @internal */ afterPaywallDivider?: boolean | null; /** * Additional fields to return. Omit to preserve the standard response. * @internal * @maxSize 100 */ fields?: RequestedFieldsWithLiterals[]; } interface MoveStepResponse { /** Moved step. */ step?: Step; } interface CloneStepRequest { /** * Step ID. * @format GUID */ stepId: string; /** * Additional fields to return. Omit to preserve the standard response. * @internal * @maxSize 100 */ fields?: RequestedFieldsWithLiterals[]; } interface CloneStepResponse { /** Created step. */ step?: Step; } /** * NOT-PRECEDENT: AIP-7001 requests fields on all entity-returning methods. * This private/deprecated method intentionally does not offer preview classification. */ interface RestoreStepFromTrashRequest { /** * step id to restore * @format GUID */ stepId?: string; } interface RestoreStepFromTrashResponse { /** restored step */ step?: Step; } interface DomainEvent extends DomainEventBodyOneOf { createdEvent?: EntityCreatedEvent; updatedEvent?: EntityUpdatedEvent; deletedEvent?: EntityDeletedEvent; actionEvent?: ActionEvent; /** Event ID. With this ID you can easily spot duplicated events and ignore them. */ id?: string; /** * Fully Qualified Domain Name of an entity. This is a unique identifier assigned to the API main business entities. * For example, `wix.stores.catalog.product`, `wix.bookings.session`, `wix.payments.transaction`. */ entityFqdn?: string; /** * Event action name, placed at the top level to make it easier for users to dispatch messages. * For example: `created`/`updated`/`deleted`/`started`/`completed`/`email_opened`. */ slug?: string; /** ID of the entity associated with the event. */ entityId?: string; /** Event timestamp in [ISO-8601](https://en.wikipedia.org/wiki/ISO_8601) format and UTC time. For example, `2020-04-26T13:57:50.699Z`. */ eventTime?: Date | null; /** * Whether the event was triggered as a result of a privacy regulation application * (for example, GDPR). */ triggeredByAnonymizeRequest?: boolean | null; /** If present, indicates the action that triggered the event. */ originatedFrom?: string | null; /** * A sequence number that indicates the order of updates to an entity. For example, if an entity was updated at `16:00` and then again at `16:01`, the second update will always have a higher sequence number. * You can use this number to make sure you're handling updates in the right order. Just save the latest sequence number on your end and compare it to the one in each new message. If the new message has an older (lower) number, you can safely ignore it. */ entityEventSequence?: string | null; } /** @oneof */ interface DomainEventBodyOneOf { createdEvent?: EntityCreatedEvent; updatedEvent?: EntityUpdatedEvent; deletedEvent?: EntityDeletedEvent; actionEvent?: ActionEvent; } interface EntityCreatedEvent { entityAsJson?: string; /** * Indicates the event was triggered by a restore-from-trashbin operation for a previously deleted entity * @internal */ triggeredByUndelete?: boolean | null; /** Indicates the event was triggered by a restore-from-trashbin operation for a previously deleted entity */ restoreInfo?: RestoreInfo; /** * Optional domain-specific metadata defined by the API owner, encoded as JSON. * @internal */ additionalMetadataAsJson?: string | null; } interface RestoreInfo { deletedDate?: Date | null; } interface EntityUpdatedEvent { /** * Since platformized APIs only expose PATCH and not PUT we can't assume that the fields sent from the client are the actual diff. * This means that to generate a list of changed fields (as opposed to sent fields) one needs to traverse both objects. * We don't want to impose this on all developers and so we leave this traversal to the notification recipients which need it. */ currentEntityAsJson?: string; /** * This field is currently part of the of the EntityUpdatedEvent msg, but scala/node libraries which implements the domain events standard * wont populate it / have any reference to it in the API. * The main reason for it is that fetching the old entity from the DB will have a performance hit on an update operation so unless truly needed, * the developer should send only the new (current) entity. * An additional reason is not wanting to send this additional entity over the wire (kafka) since in some cases it can be really big * Developers that must reflect the old entity will have to implement their own domain event sender mechanism which will follow the DomainEvent proto message. * @internal * @deprecated */ previousEntityAsJson?: string | null; /** * Map of fully qualified field paths to their previous values for fields that changed. * For more details please see [AIP](https://dev.wix.com/docs/rnd-general/articles/p13n-guidelines-aips/guidance-aips/design-patterns/7016-events#modified-fields-format) * @internal */ modifiedFields?: Record; /** * Optional domain-specific metadata defined by the API owner, encoded as JSON. * @internal */ additionalMetadataAsJson?: string | null; } interface EntityDeletedEvent { /** * Indicates if the entity is sent to trash-bin. only available when trash-bin is enabled * @internal */ movedToTrash?: boolean | null; /** Entity that was deleted. */ deletedEntityAsJson?: string | null; /** * Optional domain-specific metadata defined by the API owner, encoded as JSON. * @internal */ additionalMetadataAsJson?: string | null; } interface ActionEvent { bodyAsJson?: string; } interface Empty { } interface SearchIndexingNotification { /** new state of indexing for the site specified in ms_id */ indexState?: StateWithLiterals; /** type of the document the notification is targeted for. Applies to all types if not provided */ documentType?: string | null; /** languaInternalDocumentUpdateByFilterOperationge the notification is targeted for. Applies to all languages if not provided */ language?: string | null; /** * site for which notification is targeted * @minLength 2 */ msId?: string | null; } declare enum State { /** default state */ Unknown = "Unknown", /** metasite does not require site search indexing */ Off = "Off", /** metasite requires site search indexing */ On = "On" } /** @enumType */ type StateWithLiterals = State | 'Unknown' | 'Off' | 'On'; interface MessageEnvelope { /** * App instance ID. * @format GUID */ instanceId?: string | null; /** * Event type. * @maxLength 150 */ eventType?: string; /** The identification type and identity data. */ identity?: IdentificationData; /** Stringify payload. */ data?: string; /** Details related to the account */ accountInfo?: AccountInfo; } interface IdentificationData extends IdentificationDataIdOneOf { /** * ID of a site visitor that has not logged in to the site. * @format GUID */ anonymousVisitorId?: string; /** * ID of a site visitor that has logged in to the site. * @format GUID */ memberId?: string; /** * ID of a Wix user (site owner, contributor, etc.). * @format GUID */ wixUserId?: string; /** * ID of an app. * @format GUID */ appId?: string; /** @readonly */ identityType?: WebhookIdentityTypeWithLiterals; } /** @oneof */ interface IdentificationDataIdOneOf { /** * ID of a site visitor that has not logged in to the site. * @format GUID */ anonymousVisitorId?: string; /** * ID of a site visitor that has logged in to the site. * @format GUID */ memberId?: string; /** * ID of a Wix user (site owner, contributor, etc.). * @format GUID */ wixUserId?: string; /** * ID of an app. * @format GUID */ appId?: string; } declare enum WebhookIdentityType { UNKNOWN = "UNKNOWN", ANONYMOUS_VISITOR = "ANONYMOUS_VISITOR", MEMBER = "MEMBER", WIX_USER = "WIX_USER", APP = "APP" } /** @enumType */ type WebhookIdentityTypeWithLiterals = WebhookIdentityType | 'UNKNOWN' | 'ANONYMOUS_VISITOR' | 'MEMBER' | 'WIX_USER' | 'APP'; interface AccountInfo { /** * ID of the Wix account associated with the event. * @format GUID */ accountId?: string | null; /** * ID of the parent Wix account. Only included when accountId belongs to a child account. * @format GUID */ parentAccountId?: string | null; /** * ID of the Wix site associated with the event. Only included when the event is tied to a specific site. * @format GUID */ siteId?: string | null; } type __PublicMethodMetaInfo = { getUrl: (context: any) => string; httpMethod: K; path: string; pathParams: M; __requestType: T; __originalRequestType: S; __responseType: Q; __originalResponseType: R; }; declare function createStep(): __PublicMethodMetaInfo<'POST', {}, CreateStepRequest$1, CreateStepRequest, CreateStepResponse$1, CreateStepResponse>; declare function bulkCreateSteps(): __PublicMethodMetaInfo<'POST', {}, BulkCreateStepsRequest$1, BulkCreateStepsRequest, BulkCreateStepsResponse$1, BulkCreateStepsResponse>; declare function getStep(): __PublicMethodMetaInfo<'GET', { stepId: string; }, GetStepRequest$1, GetStepRequest, GetStepResponse$1, GetStepResponse>; declare function updateStep(): __PublicMethodMetaInfo<'PATCH', { stepId: string; }, UpdateStepRequest$1, UpdateStepRequest, UpdateStepResponse$1, UpdateStepResponse>; declare function bulkUpdateSteps(): __PublicMethodMetaInfo<'POST', {}, BulkUpdateStepsRequest$1, BulkUpdateStepsRequest, BulkUpdateStepsResponse$1, BulkUpdateStepsResponse>; declare function deleteStep(): __PublicMethodMetaInfo<'DELETE', { stepId: string; }, DeleteStepRequest$1, DeleteStepRequest, DeleteStepResponse$1, DeleteStepResponse>; declare function querySteps(): __PublicMethodMetaInfo<'POST', {}, QueryStepsRequest$1, QueryStepsRequest, QueryStepsResponse$1, QueryStepsResponse>; declare function moveStep(): __PublicMethodMetaInfo<'PATCH', { stepId: string; }, MoveStepRequest$1, MoveStepRequest, MoveStepResponse$1, MoveStepResponse>; declare function cloneStep(): __PublicMethodMetaInfo<'POST', { stepId: string; }, CloneStepRequest$1, CloneStepRequest, CloneStepResponse$1, CloneStepResponse>; export { type AccountInfo as AccountInfoOriginal, type ActionEvent as ActionEventOriginal, type AddressLocation as AddressLocationOriginal, type ApplicationError as ApplicationErrorOriginal, type BulkActionMetadata as BulkActionMetadataOriginal, BulkActionType as BulkActionTypeOriginal, type BulkActionTypeWithLiterals as BulkActionTypeWithLiteralsOriginal, type BulkCloneStepRequest as BulkCloneStepRequestOriginal, type BulkCloneStepResponse as BulkCloneStepResponseOriginal, type BulkCreateStepMigrationRequest as BulkCreateStepMigrationRequestOriginal, type BulkCreateStepMigrationResponse as BulkCreateStepMigrationResponseOriginal, type BulkCreateStepRequest as BulkCreateStepRequestOriginal, type BulkCreateStepResponse as BulkCreateStepResponseOriginal, type BulkCreateStepsRequest as BulkCreateStepsRequestOriginal, type BulkCreateStepsResponse as BulkCreateStepsResponseOriginal, type BulkStepResult as BulkStepResultOriginal, type BulkUpdateStepResult as BulkUpdateStepResultOriginal, type BulkUpdateStepsRequest as BulkUpdateStepsRequestOriginal, type BulkUpdateStepsResponse as BulkUpdateStepsResponseOriginal, type CloneStepRequest as CloneStepRequestOriginal, type CloneStepResponse as CloneStepResponseOriginal, type CommonBulkActionMetadata as CommonBulkActionMetadataOriginal, type CommonItemMetadata as CommonItemMetadataOriginal, type CreateStepRequest as CreateStepRequestOriginal, type CreateStepResponse as CreateStepResponseOriginal, type CursorPagingMetadata as CursorPagingMetadataOriginal, type CursorPaging as CursorPagingOriginal, type CursorQuery as CursorQueryOriginal, type CursorQueryPagingMethodOneOf as CursorQueryPagingMethodOneOfOriginal, type Cursors as CursorsOriginal, type DeleteAllProgramStepsRequest as DeleteAllProgramStepsRequestOriginal, type DeleteAllProgramStepsResponse as DeleteAllProgramStepsResponseOriginal, type DeleteByFilterOperation as DeleteByFilterOperationOriginal, type DeleteByIdsOperation as DeleteByIdsOperationOriginal, type DeleteStepRequest as DeleteStepRequestOriginal, type DeleteStepResponse as DeleteStepResponseOriginal, DescriptionFieldSet as DescriptionFieldSetOriginal, type DescriptionFieldSetWithLiterals as DescriptionFieldSetWithLiteralsOriginal, type DescriptionMediaOneOf as DescriptionMediaOneOfOriginal, type Description as DescriptionOriginal, type DocumentImage as DocumentImageOriginal, type DocumentPayload as DocumentPayloadOriginal, type DocumentUpdateOperation as DocumentUpdateOperationOriginal, type DomainEventBodyOneOf as DomainEventBodyOneOfOriginal, type DomainEvent as DomainEventOriginal, type Empty as EmptyOriginal, type EntityCreatedEvent as EntityCreatedEventOriginal, type EntityDeletedEvent as EntityDeletedEventOriginal, type EntityUpdatedEvent as EntityUpdatedEventOriginal, Enum as EnumOriginal, type EnumWithLiterals as EnumWithLiteralsOriginal, type ExtendedFields as ExtendedFieldsOriginal, type FocalPoint as FocalPointOriginal, type GetStepOrderingNeighborsRequest as GetStepOrderingNeighborsRequestOriginal, type GetStepOrderingNeighborsResponse as GetStepOrderingNeighborsResponseOriginal, type GetStepRequest as GetStepRequestOriginal, type GetStepResponse as GetStepResponseOriginal, type IdentificationDataIdOneOf as IdentificationDataIdOneOfOriginal, type IdentificationData as IdentificationDataOriginal, type Image as ImageOriginal, type IndexDocument as IndexDocumentOriginal, type ItemMetadata as ItemMetadataOriginal, type ListAllProgramStepsRequest as ListAllProgramStepsRequestOriginal, type ListAllProgramStepsResponse as ListAllProgramStepsResponseOriginal, type ListStepOrderingMetadataRequest as ListStepOrderingMetadataRequestOriginal, type ListStepOrderingMetadataResponse as ListStepOrderingMetadataResponseOriginal, type MaskedStep as MaskedStepOriginal, type MessageEnvelope as MessageEnvelopeOriginal, type MoveStepRequest as MoveStepRequestOriginal, type MoveStepResponse as MoveStepResponseOriginal, Placement as PlacementOriginal, type PlacementWithLiterals as PlacementWithLiteralsOriginal, type QueryStepsRequest as QueryStepsRequestOriginal, type QueryStepsResponse as QueryStepsResponseOriginal, type QueryStepsWithoutPagingRequest as QueryStepsWithoutPagingRequestOriginal, type QueryStepsWithoutPagingResponse as QueryStepsWithoutPagingResponseOriginal, type QuizOptions as QuizOptionsOriginal, RequestedFields as RequestedFieldsOriginal, type RequestedFieldsWithLiterals as RequestedFieldsWithLiteralsOriginal, type RestoreInfo as RestoreInfoOriginal, type RestoreStepFromTrashRequest as RestoreStepFromTrashRequestOriginal, type RestoreStepFromTrashResponse as RestoreStepFromTrashResponseOriginal, type SearchIndexingNotification as SearchIndexingNotificationOriginal, SortOrder as SortOrderOriginal, type SortOrderWithLiterals as SortOrderWithLiteralsOriginal, type Sorting as SortingOriginal, State as StateOriginal, type StateWithLiterals as StateWithLiteralsOriginal, type StepMoved as StepMovedOriginal, type StepOrderingMetadata as StepOrderingMetadataOriginal, type Step as StepOriginal, type StepStepTypeOptionsOneOf as StepStepTypeOptionsOneOfOriginal, StepType as StepTypeOriginal, type StepTypeWithLiterals as StepTypeWithLiteralsOriginal, type UpdateByFilterOperation as UpdateByFilterOperationOriginal, type UpdateDocumentsEventOperationOneOf as UpdateDocumentsEventOperationOneOfOriginal, type UpdateDocumentsEvent as UpdateDocumentsEventOriginal, type UpdateExistingOperation as UpdateExistingOperationOriginal, type UpdateStepRequest as UpdateStepRequestOriginal, type UpdateStepResponse as UpdateStepResponseOriginal, type VideoOptions as VideoOptionsOriginal, type VideoOptionsVideoSourceOneOf as VideoOptionsVideoSourceOneOfOriginal, type VideoResolution as VideoResolutionOriginal, type VideoV2 as VideoV2Original, WebhookIdentityType as WebhookIdentityTypeOriginal, type WebhookIdentityTypeWithLiterals as WebhookIdentityTypeWithLiteralsOriginal, type WixVideo as WixVideoOriginal, type __PublicMethodMetaInfo, bulkCreateSteps, bulkUpdateSteps, cloneStep, createStep, deleteStep, getStep, moveStep, querySteps, updateStep };