/* * Copyright 2022 Adobe. All rights reserved. * This file is licensed to you under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. You may obtain a copy * of the License at http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software distributed under * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS * OF ANY KIND, either express or implied. See the License for the specific language * governing permissions and limitations under the License. */ export declare interface ProjectUpdates { key: string; owner: string; repo: string; updates: Object[]; } export declare class UpdatesPartitioner { /** * Creates a new updates partitioner * * @param {string} key project key * @param {string} owner owner * @param {string} repo repo * @param {number|undefined} maxIndices maximum number of indices to allow in one chunk * @param {number|undefined} maxUpdates maximum number of updates to allow in one chunk */ constructor( key: string, owner: string, repo: string, maxIndices?: number, maxUpdates?: number ); /** * Feed another set of updates for a new index. * * @param {Object[]} updates updates */ feed(updates: Object[]): void; /** * Partition a collection of project updates into chunks so every chunk can be processed * by the indexer completely before the service times out. * * @param {ProjectUpdates} project project updates * @returns {ProjectUpdates[]} updates to send */ static partition(project: ProjectUpdates): ProjectUpdates[]; }