import File from '../files/file.js';
import Patch from './patch.js';
/**
 * WARN(cemmer): because UPS patches use nul-byte termination for records rather than some kind of
 * length identifier, which forces patchers to read both the UPS file and ROM file byte-by-byte,
 * large patches can perform tremendously poorly if they contain many small records.
 * @see https://www.romhacking.net/documents/392/
 * @see https://github.com/btimofeev/UniPatcher/wiki/UPS
 * @see https://www.gamebrew.org/wiki/Upset
 */
export default class UPSPatch extends Patch {
    static readonly SUPPORTED_EXTENSIONS: string[];
    static readonly FILE_SIGNATURE: Buffer<ArrayBuffer>;
    static patchFrom(file: File): Promise<UPSPatch>;
    createPatchedFile(inputRomFile: File, outputRomPath: string): Promise<void>;
    private static writeOutputFile;
    private static applyPatch;
    private static readPatchBlock;
}
