import * as _wix_sdk_types from '@wix/sdk-types'; import { SearchSpec, Search } from '@wix/sdk-types'; interface MaterializedPage { /** * Page ID. * @format GUID * @readonly */ _id?: string | null; /** * Revision number. Incremented on every update. * @readonly */ revision?: string | null; /** * Date and time the Page was created. * @readonly */ _createdDate?: Date | null; /** * Date and time the Page was last updated. * @readonly */ _updatedDate?: Date | null; /** * Date and time the Page was published or scheduled to be published depending on the status. * @readonly */ publishedDate?: Date | null; /** * Date and time the Page was unpublished or scheduled to be unpublished depending on the status. * @readonly */ unpublishedDate?: Date | null; /** * Page display name. * @minLength 5 * @maxLength 100 */ name?: string | null; /** * The status of the Page. * @readonly */ status?: StatusWithLiterals; /** An image specifically designated for display when the page URL is shared on social media platforms. */ socialPreviewImage?: string; /** The small icon displayed in the browser tab, bookmarks, and potentially other areas. */ favicon?: string; /** * The title of the page, visible in the browser tab and used as the primary clickable link in search engine results. * @maxLength 100 */ title?: string | null; /** * A brief summary of the page's content, often displayed below the title in search engine results. * @maxLength 300 */ description?: string | null; /** A flag to indicate whether search engines should be allowed to index this page and include it in their search results. */ searchEngineIndexingEnabled?: boolean; /** Data Extensions */ extendedFields?: ExtendedFields; /** Tags */ tags?: Tags; /** Publication details */ publicationDetails?: PublicationDetails; /** Content version details */ contentDetails?: ContentDetails; /** The route information for the page. */ pageRoute?: PageRoute; } declare enum Status { /** Unknown status. */ UNKNOWN_STATUS = "UNKNOWN_STATUS", /** The Page is draft. */ DRAFT = "DRAFT", /** The Page is published. */ PUBLISHED = "PUBLISHED", /** The Page is scheduled to be published. */ SCHEDULED = "SCHEDULED", /** The Page is archived. */ ARCHIVED = "ARCHIVED" } /** @enumType */ type StatusWithLiterals = Status | 'UNKNOWN_STATUS' | 'DRAFT' | 'PUBLISHED' | 'SCHEDULED' | 'ARCHIVED'; 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>; } /** * Common object for tags. * Should be use as in this example: * message Foo { * string id = 1; * ... * Tags tags = 5 * } * * example of taggable entity * { * id: "123" * tags: { * tags: { * tag_ids:["11","22"] * }, * private_tags: { * tag_ids: ["33", "44"] * } * } * } */ interface Tags { /** Tags that require an additional permission in order to access them, normally not given to site members or visitors. */ privateTags?: TagList; /** Tags that are exposed to anyone who has access to the labeled entity itself, including site members and visitors. */ tags?: TagList; } interface TagList { /** * List of tag IDs * @maxSize 100 * @maxLength 5 */ tagIds?: string[]; } interface PublicationDetails { /** * Published page ID * @format GUID */ publishedPageId?: string; /** * Published content ID * @format GUID */ contentId?: string; /** * Published page slug * @minLength 3 * @maxLength 100 */ slug?: string; } interface ContentDetails { /** * Latest content ID * @format GUID */ latestContentId?: string; } interface PageRoute { /** * Page slug used in the URL. * @minLength 3 * @maxLength 100 */ slug?: string; /** The URL type for the page, determining how it's accessed (subdomain or path). */ urlType?: TypeWithLiterals; } declare enum Type { /** The page is accessed via a path. */ PATH = "PATH" } /** @enumType */ type TypeWithLiterals = Type | 'PATH'; interface GetMaterializedPageRequest { /** * ID of the MaterializedPage to retrieve. * @format GUID */ materializedPageId: string; } interface GetMaterializedPageResponse { /** The requested MaterializedPage. */ materializedPage?: MaterializedPage; } interface SearchMaterializedPagesRequest { /** WQL expression. */ search: CursorSearch; } interface CursorSearch extends CursorSearchPagingMethodOneOf { /** * Cursor pointing to page of results. * When requesting 'cursor_paging.cursor', no `filter`, `sort` or `search` can be provided. */ cursorPaging?: CursorPaging; /** A filter object. See documentation [here](https://bo.wix.com/wix-docs/rnd/platformization-guidelines/api-query-language#platformization-guidelines_api-query-language_defining-in-protobuf) */ filter?: Record | null; /** * Sort object in the form [{"fieldName":"sortField1"},{"fieldName":"sortField2","direction":"DESC"}] * @maxSize 10 */ sort?: Sorting[]; /** * Aggregations | Faceted search: refers to a way to explore large amounts of data by displaying summaries about various partitions of the data and later allowing to narrow the navigation to a specific partition. * @maxSize 10 */ aggregations?: Aggregation[]; /** Free text to match in searchable fields */ search?: SearchDetails; /** * UTC offset or IANA time zone. Valid values are * ISO 8601 UTC offsets, such as +02:00 or -06:00, * and IANA time zone IDs, such as Europe/Rome * * Affects all filters and aggregations returned values. * You may override this behavior in a specific filter by providing * timestamps including time zone. e.g. `"2023-12-20T10:52:34.795Z"` * @maxLength 50 */ timeZone?: string | null; } /** @oneof */ interface CursorSearchPagingMethodOneOf { /** * Cursor pointing to page of results. * When requesting 'cursor_paging.cursor', no `filter`, `sort` or `search` can be provided. */ cursorPaging?: CursorPaging; } interface Sorting { /** * Name of the field to sort by. * @maxLength 512 */ fieldName?: string; /** Sort order. */ order?: SortOrderWithLiterals; } declare enum SortOrder { ASC = "ASC", DESC = "DESC" } /** @enumType */ type SortOrderWithLiterals = SortOrder | 'ASC' | 'DESC'; interface Aggregation extends AggregationKindOneOf { /** Value aggregation */ value?: ValueAggregation; /** Range aggregation */ range?: RangeAggregation; /** Scalar aggregation */ scalar?: ScalarAggregation; /** Date histogram aggregation */ dateHistogram?: DateHistogramAggregation; /** Nested aggregation */ nested?: NestedAggregation; /** * User-defined name of aggregation, should be unique, will appear in aggregation results * @maxLength 100 */ name?: string | null; /** Type of aggregation, client must provide matching aggregation field below */ type?: AggregationTypeWithLiterals; /** * Field to aggregate by, use dot notation to specify json path * @maxLength 200 */ fieldPath?: string; } /** @oneof */ interface AggregationKindOneOf { /** Value aggregation */ value?: ValueAggregation; /** Range aggregation */ range?: RangeAggregation; /** Scalar aggregation */ scalar?: ScalarAggregation; /** Date histogram aggregation */ dateHistogram?: DateHistogramAggregation; /** Nested aggregation */ nested?: NestedAggregation; } interface RangeBucket { /** Inclusive lower bound of the range. Required if to is not given */ from?: number | null; /** Exclusive upper bound of the range. Required if from is not given */ to?: number | null; } declare enum SortType { /** Should sort by number of matches */ COUNT = "COUNT", /** Should sort by value of the field alphabetically */ VALUE = "VALUE" } /** @enumType */ type SortTypeWithLiterals = SortType | 'COUNT' | 'VALUE'; declare enum SortDirection { /** Should sort in descending order */ DESC = "DESC", /** Should sort in ascending order */ ASC = "ASC" } /** @enumType */ type SortDirectionWithLiterals = SortDirection | 'DESC' | 'ASC'; declare enum MissingValues { /** Should missing values be excluded from the aggregation results */ EXCLUDE = "EXCLUDE", /** Should missing values be included in the aggregation results */ INCLUDE = "INCLUDE" } /** @enumType */ type MissingValuesWithLiterals = MissingValues | 'EXCLUDE' | 'INCLUDE'; interface IncludeMissingValuesOptions { /** * Can specify custom bucket name. Defaults are [string -> "N/A"], [int -> "0"], [bool -> "false"] ... * @maxLength 20 */ addToBucket?: string; } declare enum ScalarType { /** Count of distinct values */ COUNT_DISTINCT = "COUNT_DISTINCT", /** Minimum value */ MIN = "MIN", /** Maximum value */ MAX = "MAX" } /** @enumType */ type ScalarTypeWithLiterals = ScalarType | 'COUNT_DISTINCT' | 'MIN' | 'MAX'; interface ValueAggregation extends ValueAggregationOptionsOneOf { /** Options for including missing values */ includeOptions?: IncludeMissingValuesOptions; /** Should sort by number of matches or value of the field */ sortType?: SortTypeWithLiterals; /** Should sort in ascending or descending order */ sortDirection?: SortDirectionWithLiterals; /** How many aggregations would you like to return? Can be between 1 and 250. 10 is the default. */ limit?: number | null; /** Should missing values be included or excluded from the aggregation results. Default is EXCLUDE */ missingValues?: MissingValuesWithLiterals; } /** @oneof */ interface ValueAggregationOptionsOneOf { /** Options for including missing values */ includeOptions?: IncludeMissingValuesOptions; } declare enum NestedAggregationType { /** An aggregation where result buckets are dynamically built - one per unique value */ VALUE = "VALUE", /** An aggregation, where user can define set of ranges - each representing a bucket */ RANGE = "RANGE", /** A single-value metric aggregation - e.g. min, max, sum, avg */ SCALAR = "SCALAR", /** An aggregation, where result buckets are dynamically built - one per time interval (hour, day, week, etc.) */ DATE_HISTOGRAM = "DATE_HISTOGRAM" } /** @enumType */ type NestedAggregationTypeWithLiterals = NestedAggregationType | 'VALUE' | 'RANGE' | 'SCALAR' | 'DATE_HISTOGRAM'; interface RangeAggregation { /** * List of range buckets, where during aggregation each entity will be placed in the first bucket where its value falls into based on provided range bounds * @maxSize 50 */ buckets?: RangeBucket[]; } interface ScalarAggregation { /** Define the operator for the scalar aggregation */ type?: ScalarTypeWithLiterals; } interface DateHistogramAggregation { /** Interval for date histogram aggregation */ interval?: IntervalWithLiterals; } declare enum Interval { /** Yearly interval */ YEAR = "YEAR", /** Monthly interval */ MONTH = "MONTH", /** Weekly interval */ WEEK = "WEEK", /** Daily interval */ DAY = "DAY", /** Hourly interval */ HOUR = "HOUR", /** Minute interval */ MINUTE = "MINUTE", /** Second interval */ SECOND = "SECOND" } /** @enumType */ type IntervalWithLiterals = Interval | 'YEAR' | 'MONTH' | 'WEEK' | 'DAY' | 'HOUR' | 'MINUTE' | 'SECOND'; interface NestedAggregationItem extends NestedAggregationItemKindOneOf { /** Value aggregation */ value?: ValueAggregation; /** Range aggregation */ range?: RangeAggregation; /** Scalar aggregation */ scalar?: ScalarAggregation; /** Date histogram aggregation */ dateHistogram?: DateHistogramAggregation; /** * User-defined name of aggregation, should be unique, will appear in aggregation results * @maxLength 100 */ name?: string | null; /** Type of aggregation, client must provide matching aggregation field below */ type?: NestedAggregationTypeWithLiterals; /** * Field to aggregate by, use dont notation to specify json path * @maxLength 200 */ fieldPath?: string; } /** @oneof */ interface NestedAggregationItemKindOneOf { /** Value aggregation */ value?: ValueAggregation; /** Range aggregation */ range?: RangeAggregation; /** Scalar aggregation */ scalar?: ScalarAggregation; /** Date histogram aggregation */ dateHistogram?: DateHistogramAggregation; } declare enum AggregationType { /** An aggregation where result buckets are dynamically built - one per unique value */ VALUE = "VALUE", /** An aggregation, where user can define set of ranges - each representing a bucket */ RANGE = "RANGE", /** A single-value metric aggregation - e.g. min, max, sum, avg */ SCALAR = "SCALAR", /** An aggregation, where result buckets are dynamically built - one per time interval (hour, day, week, etc.) */ DATE_HISTOGRAM = "DATE_HISTOGRAM", /** Multi-level aggregation, where each next aggregation is nested within previous one */ NESTED = "NESTED" } /** @enumType */ type AggregationTypeWithLiterals = AggregationType | 'VALUE' | 'RANGE' | 'SCALAR' | 'DATE_HISTOGRAM' | 'NESTED'; /** Nested aggregation expressed through a list of aggregation where each next aggregation is nested within previous one */ interface NestedAggregation { /** * Flattened list of aggregations, where each next aggregation is nested within previous one * @minSize 2 * @maxSize 3 */ nestedAggregations?: NestedAggregationItem[]; } interface SearchDetails { /** Defines how separate search terms in `expression` are combined */ mode?: ModeWithLiterals; /** * Search term or expression * @maxLength 100 */ expression?: string | null; /** * Fields to search in. If empty - will search in all searchable fields. Use dot notation to specify json path * @maxLength 200 * @maxSize 20 */ fields?: string[]; /** Flag if should use auto fuzzy search (allowing typos by a managed proximity algorithm) */ fuzzy?: boolean; } declare enum Mode { /** Any of the search terms must be present */ OR = "OR", /** All search terms must be present */ AND = "AND" } /** @enumType */ type ModeWithLiterals = Mode | 'OR' | 'AND'; interface CursorPaging { /** * Maximum number of items to return in the results. * @max 100 */ 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 SearchMaterializedPagesResponse { /** List of MaterializedPages. */ materializedPages?: MaterializedPage[]; /** Paging metadata. */ pagingMetadata?: PagingMetadataV2; /** Response aggregation data. */ aggregationData?: AggregationData; } interface PagingMetadataV2 { /** Number of items returned in the response. */ count?: number | null; /** Offset that was requested. */ offset?: number | null; /** Total number of items that match the query. Returned if offset paging is used and the `tooManyToCount` flag is not set. */ total?: number | null; /** Flag that indicates the server failed to calculate the `total` field. */ tooManyToCount?: boolean | null; /** Cursors to navigate through the result pages using `next` and `prev`. Returned if cursor paging is used. */ cursors?: Cursors; } 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; } interface AggregationData { /** * key = aggregation name (as derived from search request) * @maxSize 10000 */ results?: AggregationResults[]; } interface ValueAggregationResult { /** * Value of the field * @maxLength 100 */ value?: string; /** Count of entities with this value */ count?: number; } interface RangeAggregationResult { /** Inclusive lower bound of the range */ from?: number | null; /** Exclusive upper bound of the range */ to?: number | null; /** Count of entities in this range */ count?: number; } interface NestedAggregationResults extends NestedAggregationResultsResultOneOf { /** Value aggregation results */ values?: ValueResults; /** Range aggregation results */ ranges?: RangeResults; /** Scalar aggregation results */ scalar?: AggregationResultsScalarResult; /** * User-defined name of aggregation, matches the one provided in request * @maxLength 100 */ name?: string; /** Type of aggregation that matches result */ type?: AggregationTypeWithLiterals; /** * Field to aggregate by, matches the one provided in request * @maxLength 200 */ fieldPath?: string; } /** @oneof */ interface NestedAggregationResultsResultOneOf { /** Value aggregation results */ values?: ValueResults; /** Range aggregation results */ ranges?: RangeResults; /** Scalar aggregation results */ scalar?: AggregationResultsScalarResult; } interface ValueResults { /** * List of value aggregations * @maxSize 250 */ results?: ValueAggregationResult[]; } interface RangeResults { /** * List of ranges returned in same order as requested * @maxSize 50 */ results?: RangeAggregationResult[]; } interface AggregationResultsScalarResult { /** Type of scalar aggregation */ type?: ScalarTypeWithLiterals; /** Value of the scalar aggregation */ value?: number; } interface NestedValueAggregationResult { /** * Value of the field * @maxLength 1000 */ value?: string; /** Nested aggregations */ nestedResults?: NestedAggregationResults; } interface ValueResult { /** * Value of the field * @maxLength 1000 */ value?: string; /** Count of entities with this value */ count?: number | null; } interface RangeResult { /** Inclusive lower bound of the range */ from?: number | null; /** Exclusive upper bound of the range */ to?: number | null; /** Count of entities in this range */ count?: number | null; } interface ScalarResult { /** Value of the scalar aggregation */ value?: number; } interface NestedResultValue extends NestedResultValueResultOneOf { /** Value aggregation result */ value?: ValueResult; /** Range aggregation result */ range?: RangeResult; /** Scalar aggregation result */ scalar?: ScalarResult; /** Date histogram aggregation result */ dateHistogram?: ValueResult; } /** @oneof */ interface NestedResultValueResultOneOf { /** Value aggregation result */ value?: ValueResult; /** Range aggregation result */ range?: RangeResult; /** Scalar aggregation result */ scalar?: ScalarResult; /** Date histogram aggregation result */ dateHistogram?: ValueResult; } interface Results { /** List of nested aggregations */ results?: Record; } interface DateHistogramResult { /** * Date in ISO 8601 format * @maxLength 100 */ value?: string; /** Count of documents in the bucket */ count?: number; } interface GroupByValueResults { /** * List of value aggregations * @maxSize 1000 */ results?: NestedValueAggregationResult[]; } interface DateHistogramResults { /** * List of date histogram aggregations * @maxSize 200 */ results?: DateHistogramResult[]; } /** * Results of `NESTED` aggregation type in a flattened form * aggregations in resulting array are keyed by requested aggregation `name`. */ interface NestedResults { /** * List of nested aggregations * @maxSize 1000 */ results?: Results[]; } interface AggregationResults extends AggregationResultsResultOneOf { /** Value aggregation results */ values?: ValueResults; /** Range aggregation results */ ranges?: RangeResults; /** Scalar aggregation results */ scalar?: AggregationResultsScalarResult; /** Group by value aggregation results */ groupedByValue?: GroupByValueResults; /** Date histogram aggregation results */ dateHistogram?: DateHistogramResults; /** Nested aggregation results */ nested?: NestedResults; /** * User-defined name of aggregation as derived from search request * @maxLength 100 */ name?: string; /** Type of aggregation that must match provided kind as derived from search request */ type?: AggregationTypeWithLiterals; /** * Field to aggregate by as derived from search request * @maxLength 200 */ fieldPath?: string; } /** @oneof */ interface AggregationResultsResultOneOf { /** Value aggregation results */ values?: ValueResults; /** Range aggregation results */ ranges?: RangeResults; /** Scalar aggregation results */ scalar?: AggregationResultsScalarResult; /** Group by value aggregation results */ groupedByValue?: GroupByValueResults; /** Date histogram aggregation results */ dateHistogram?: DateHistogramResults; /** Nested aggregation results */ nested?: NestedResults; } 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 { entity?: string; } 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. */ currentEntity?: string; } interface EntityDeletedEvent { /** Entity that was deleted. */ deletedEntity?: string | null; } interface ActionEvent { body?: string; } 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; } interface MaterializedPageSearchSpec extends SearchSpec { searchable: ['name', 'title']; aggregatable: [ '_createdDate', '_id', '_updatedDate', 'name', 'publishedDate', 'status', 'title', 'unpublishedDate' ]; paging: 'cursor'; wql: [ { operators: '*'; fields: [ '_createdDate', '_id', '_updatedDate', 'name', 'publishedDate', 'status', 'title', 'unpublishedDate' ]; sort: 'BOTH'; } ]; } type CommonSearchWithEntityContext = Search; type MaterializedPageSearch = { /** Cursor pointing to page of results. When requesting 'cursor_paging.cursor', no `filter`, `sort` or `search` can be provided. */ cursorPaging?: { /** Maximum number of items to return in the results. @max: 100 */ limit?: NonNullable['limit'] | 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?: NonNullable['cursor'] | null; }; /** A filter object. See documentation [here](https://bo.wix.com/wix-docs/rnd/platformization-guidelines/api-query-language#platformization-guidelines_api-query-language_defining-in-protobuf) */ filter?: CommonSearchWithEntityContext['filter'] | null; /** Sort object in the form [{"fieldName":"sortField1"},{"fieldName":"sortField2","direction":"DESC"}] @maxSize: 10 */ sort?: { /** Name of the field to sort by. @maxLength: 512 */ fieldName?: NonNullable[number]['fieldName']; /** Sort order. */ order?: NonNullable[number]['order']; }[]; /** Aggregations | Faceted search: refers to a way to explore large amounts of data by displaying summaries about various partitions of the data and later allowing to narrow the navigation to a specific partition. @maxSize: 10 */ aggregations?: { /** Value aggregation */ value?: NonNullable[number]['value']; /** Range aggregation */ range?: NonNullable[number]['range']; /** Scalar aggregation */ scalar?: NonNullable[number]['scalar']; /** Date histogram aggregation */ dateHistogram?: NonNullable[number]['dateHistogram']; /** Nested aggregation */ nested?: NonNullable[number]['nested']; /** User-defined name of aggregation, should be unique, will appear in aggregation results @maxLength: 100 */ name?: NonNullable[number]['name'] | null; /** Type of aggregation, client must provide matching aggregation field below */ type?: NonNullable[number]['type']; /** Field to aggregate by, use dot notation to specify json path @maxLength: 200 */ fieldPath?: NonNullable[number]['fieldPath']; }[]; /** Free text to match in searchable fields */ search?: { /** Defines how separate search terms in `expression` are combined */ mode?: NonNullable['mode']; /** Search term or expression @maxLength: 100 */ expression?: NonNullable['expression'] | null; /** Fields to search in. If empty - will search in all searchable fields. Use dot notation to specify json path @maxLength: 200, @maxSize: 20 */ fields?: NonNullable['fields']; /** Flag if should use auto fuzzy search (allowing typos by a managed proximity algorithm) */ fuzzy?: NonNullable['fuzzy']; }; /** UTC offset or IANA time zone. Valid values are ISO 8601 UTC offsets, such as +02:00 or -06:00, and IANA time zone IDs, such as Europe/Rome Affects all filters and aggregations returned values. You may override this behavior in a specific filter by providing timestamps including time zone. e.g. `"2023-12-20T10:52:34.795Z"` @maxLength: 50 */ timeZone?: CommonSearchWithEntityContext['timeZone'] | null; }; declare const utils: { search: { SearchBuilder: () => _wix_sdk_types.SearchBuilder; Filter: _wix_sdk_types.FilterFactory; Sort: _wix_sdk_types.SortFactory; SearchParams: _wix_sdk_types.SearchParamsFactory; Aggregation: _wix_sdk_types.AggregationFactory; }; }; export { type AccountInfo, type ActionEvent, type Aggregation, type AggregationData, type AggregationKindOneOf, type AggregationResults, type AggregationResultsResultOneOf, type AggregationResultsScalarResult, AggregationType, type AggregationTypeWithLiterals, type CommonSearchWithEntityContext, type ContentDetails, type CursorPaging, type CursorSearch, type CursorSearchPagingMethodOneOf, type Cursors, type DateHistogramAggregation, type DateHistogramResult, type DateHistogramResults, type DomainEvent, type DomainEventBodyOneOf, type EntityCreatedEvent, type EntityDeletedEvent, type EntityUpdatedEvent, type ExtendedFields, type GetMaterializedPageRequest, type GetMaterializedPageResponse, type GroupByValueResults, type IdentificationData, type IdentificationDataIdOneOf, type IncludeMissingValuesOptions, Interval, type IntervalWithLiterals, type MaterializedPage, type MaterializedPageSearch, type MaterializedPageSearchSpec, type MessageEnvelope, MissingValues, type MissingValuesWithLiterals, Mode, type ModeWithLiterals, type NestedAggregation, type NestedAggregationItem, type NestedAggregationItemKindOneOf, type NestedAggregationResults, type NestedAggregationResultsResultOneOf, NestedAggregationType, type NestedAggregationTypeWithLiterals, type NestedResultValue, type NestedResultValueResultOneOf, type NestedResults, type NestedValueAggregationResult, type PageRoute, type PagingMetadataV2, type PublicationDetails, type RangeAggregation, type RangeAggregationResult, type RangeBucket, type RangeResult, type RangeResults, type RestoreInfo, type Results, type ScalarAggregation, type ScalarResult, ScalarType, type ScalarTypeWithLiterals, type SearchDetails, type SearchMaterializedPagesRequest, type SearchMaterializedPagesResponse, SortDirection, type SortDirectionWithLiterals, SortOrder, type SortOrderWithLiterals, SortType, type SortTypeWithLiterals, type Sorting, Status, type StatusWithLiterals, type TagList, type Tags, Type, type TypeWithLiterals, type ValueAggregation, type ValueAggregationOptionsOneOf, type ValueAggregationResult, type ValueResult, type ValueResults, WebhookIdentityType, type WebhookIdentityTypeWithLiterals, utils };