/*
 * SDK Pullenti Unitext, version 4.33, fabruary 2026. Copyright (c) 2013-2026, Pullenti. All rights reserved. 
 * Non-Commercial Freeware and Commercial Software. 
 * This class is generated using the converter Unisharping (www.unisharping.ru) from Pullenti C# project. 
 * The latest version of the code is available on the site www.pullenti.ru
 */

package com.pullenti.unitext.internal.zip;

/**
 * Defines facilities for data storage when updating Zip Archives.
 */
public interface IArchiveStorage extends AutoCloseable {

    FileUpdateMode getUpdateMode();


    /**
     * Get an empty <see cref="Stream"/> that can be used for temporary output.
     * @return Returns a temporary output <see cref="Stream"/>
     */
    com.pullenti.unisharp.Stream getTemporaryOutput();

    /**
     * Convert a temporary output stream to a final stream.
     * @return The resulting final <see cref="Stream"/>
     */
    com.pullenti.unisharp.Stream convertTemporaryToFinal();

    /**
     * Make a temporary copy of the original stream.
     * @param stream The <see cref="Stream"/> to copy.
     * @return Returns a temporary output <see cref="Stream"/> that is a copy of the input.
     */
    com.pullenti.unisharp.Stream makeTemporaryCopy(com.pullenti.unisharp.Stream stream);

    /**
     * Return a stream suitable for performing direct updates on the original source.
     * @param stream The current stream.
     * @return Returns a stream suitable for direct updating.
     */
    com.pullenti.unisharp.Stream openForDirectUpdate(com.pullenti.unisharp.Stream stream);
}
