/// <reference types="node" />
import { WritableStreamDefaultWriter } from "stream/web";
import { ChunkCompressionInfo, ObjectReference, SatisfactorySaveHeader } from "../../..";
import { SaveObject } from "../../satisfactory/objects/SaveObject";
import { ByteArray4, Grids } from '../../satisfactory/save/save-reader';
export declare class SaveStreamWriter {
    private writer;
    private mode;
    private tracker;
    private formatTracker;
    constructor(writer: WritableStreamDefaultWriter<string>);
    private createExecutionFunction;
    beginSave: () => Promise<void>;
    writeHeader: (header: SatisfactorySaveHeader) => Promise<void>;
    writeCompressionInfo: (compressionInfo: ChunkCompressionInfo) => Promise<void>;
    writeGridHash: (gridHash: ByteArray4) => Promise<void>;
    writeGrids: (grids: Grids) => Promise<void>;
    openLevels: () => Promise<void>;
    openLevel: (levelName: string) => Promise<void>;
    writeObjects: (...objects: SaveObject[]) => Promise<void>;
    switchInLevelToCollectables: (...objects: SaveObject[]) => Promise<void>;
    writeCollectables: (...collectables: ObjectReference[]) => Promise<void>;
    endLevel: () => Promise<void>;
    endLevels: () => Promise<void>;
    endSave: () => Promise<void>;
    close(): Promise<void>;
}
