/**
 * Copyright 2015 CANAL+ Group
 *
 * Licensed 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 CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
import Adaptation from "./adaptation";
import Period from "./period";
import Representation from "./representation";
import { MANIFEST_UPDATE_TYPE } from "./types";
/**
 * Update oldPeriod attributes with the one from newPeriod (e.g. when updating
 * the Manifest).
 * @param {Object} oldPeriod
 * @param {Object} newPeriod
 * @param {number} updateType
 * @returns {Object}
 */
export default function updatePeriodInPlace(oldPeriod: Period, newPeriod: Period, updateType: MANIFEST_UPDATE_TYPE): IUpdatedPeriodResult;
/**
 * Object describing the updates performed by `updatePeriodInPlace` on a single
 * Period.
 */
export interface IUpdatedPeriodResult {
    /** Information on Adaptations that have been updated. */
    updatedAdaptations: Array<{
        /** The concerned Adaptation. */
        adaptation: Adaptation;
        /** Representations that have been updated. */
        updatedRepresentations: Representation[];
        /** Representations that have been removed from the Adaptation. */
        removedRepresentations: Representation[];
        /** Representations that have been added to the Adaptation. */
        addedRepresentations: Representation[];
    }>;
    /** Adaptation that have been removed from the Period. */
    removedAdaptations: Adaptation[];
    /** Adaptation that have been added to the Period. */
    addedAdaptations: Adaptation[];
}
