/** * @typedef {import('@ucanto/interface').Link} Link * @typedef {import('@web3-storage/data-segment').AggregateView} AggregateView * * @typedef {import('./api.js').BufferedPiece} BufferedPiece * @typedef {import('./api.js').BufferRecord} BufferRecord * @typedef {import('./api.js').BufferMessage} BufferMessage * @typedef {import('./api.js').AggregateOfferMessage} AggregateOfferMessage * @typedef {import('../types.js').StoreGetError} StoreGetError * @typedef {{ bufferedPieces: BufferedPiece[], group: string }} GetBufferedPieces * @typedef {import('../types.js').Result} GetBufferedPiecesResult * * @typedef {object} AggregateInfo * @property {BufferedPiece[]} addedBufferedPieces * @property {BufferedPiece[]} remainingBufferedPieces * @property {AggregateView} aggregate */ /** * @param {object} props * @param {AggregateInfo} props.aggregateInfo * @param {import('../types.js').Store} props.bufferStore * @param {import('../types.js').Queue} props.bufferQueue * @param {import('../types.js').Queue} props.aggregateOfferQueue * @param {string} props.group */ export function handleBufferReducingWithAggregate({ aggregateInfo, bufferStore, bufferQueue, aggregateOfferQueue, group, }: { aggregateInfo: AggregateInfo; bufferStore: import('../types.js').Store; bufferQueue: import('../types.js').Queue; aggregateOfferQueue: import('../types.js').Queue; group: string; }): Promise<({ ok?: undefined; } & { error: import("../types.js").QueueAddError; }) | ({ ok?: undefined; } & { error: import("../types.js").StorePutError; }) | { ok: {}; error?: undefined; } | { ok: {}; error: undefined; }>; /** * Store given buffer into store and queue it to further reducing. * * @param {object} props * @param {import('./api.js').Buffer} props.buffer * @param {import('../types.js').Store} props.bufferStore * @param {import('../types.js').Queue} props.bufferQueue */ export function handleBufferReducingWithoutAggregate({ buffer, bufferStore, bufferQueue, }: { buffer: import('./api.js').Buffer; bufferStore: import('../types.js').Store; bufferQueue: import('../types.js').Queue; }): Promise<({ ok?: undefined; } & { error: import("../types.js").QueueAddError; }) | ({ ok?: undefined; } & { error: import("../types.js").StorePutError; }) | { ok: {}; error: undefined; }>; /** * Attempt to build an aggregate with buffered pieces within ranges. * * @param {BufferedPiece[]} bufferedPieces * @param {import('./api.js').AggregateConfig} config */ export function aggregatePieces(bufferedPieces: BufferedPiece[], config: import('./api.js').AggregateConfig): void | { addedBufferedPieces: import("./api.js").BufferedPiece[]; remainingBufferedPieces: import("./api.js").BufferedPiece[]; aggregate: import("@web3-storage/data-segment").AggregateView; }; /** * Get buffered pieces from queue buffer records. * * @param {Link[]} bufferPieces * @param {import('../types.js').Store} bufferStore * @returns {Promise} */ export function getBufferedPieces(bufferPieces: Link[], bufferStore: import('../types.js').Store): Promise; /** * Sort given buffered pieces by policy and then by size. * * @param {BufferedPiece} a * @param {BufferedPiece} b */ export function sortPieces(a: BufferedPiece, b: BufferedPiece): number; export type Link = import('@ucanto/interface').Link; export type AggregateView = import('@web3-storage/data-segment').AggregateView; export type BufferedPiece = import('./api.js').BufferedPiece; export type BufferRecord = import('./api.js').BufferRecord; export type BufferMessage = import('./api.js').BufferMessage; export type AggregateOfferMessage = import('./api.js').AggregateOfferMessage; export type StoreGetError = import('../types.js').StoreGetError; export type GetBufferedPieces = { bufferedPieces: BufferedPiece[]; group: string; }; export type GetBufferedPiecesResult = import('../types.js').Result; export type AggregateInfo = { addedBufferedPieces: BufferedPiece[]; remainingBufferedPieces: BufferedPiece[]; aggregate: AggregateView; }; import { UnexpectedState } from '../errors.js'; //# sourceMappingURL=buffer-reducing.d.ts.map