/**
 * Programmatic builders for legacy V1 "rr" map binary frames, used by LegacyMapParser tests.
 * No live device or captured sample is required — every buffer is constructed byte-by-byte.
 */
export declare const LEGACY_BLOCK_TYPE: {
    readonly CHARGER_LOCATION: 1;
    readonly IMAGE: 2;
    readonly ROBOT_POSITION: 8;
    readonly CURRENTLY_CLEANED_BLOCKS: 11;
};
export interface LegacyMapFixtureOptions {
    robotPosition?: {
        x: number;
        y: number;
        angle?: number;
    };
    chargerPosition?: {
        x: number;
        y: number;
        angle?: number;
    };
    imagePixels?: {
        floor?: {
            x: number;
            y: number;
            segId: number;
        }[];
        obstacle?: {
            x: number;
            y: number;
        }[];
    };
    imageSize?: {
        width: number;
        height: number;
        left: number;
        top: number;
    };
    cleanedBlocks?: number[];
    /** Raw pre-built blocks (e.g. from {@link buildGenericBlock}) inserted after the known blocks. */
    unknownBlocks?: Buffer[];
}
/** Writes the 20-byte "rr" header. SHA1 digest is intentionally omitted — LegacyMapParser does not verify it. */
export declare function buildMapHeader(dataLength: number, headerLength?: number): Buffer;
export declare function buildPositionBlock(type: number, x: number, y: number, angle?: number): Buffer;
export declare function buildImageBlock(pixels: {
    floor?: {
        x: number;
        y: number;
        segId: number;
    }[];
    obstacle?: {
        x: number;
        y: number;
    }[];
}, size: {
    width: number;
    height: number;
    left: number;
    top: number;
}): Buffer;
export declare function buildCleanedBlocksBlock(segmentIds: number[]): Buffer;
/** Builds a raw block of an arbitrary (non-parsed) type, to verify unknown blocks are skipped without error. */
export declare function buildGenericBlock(type: number, payloadLength?: number): Buffer;
/** Builds a minimal valid V1 "rr" map binary with the requested blocks. */
export declare function buildLegacyMapBuffer(options: LegacyMapFixtureOptions): Buffer;
/**
 * Builds the inner-encrypted V1 map push payload as sent on Protocol 301: gzip-compress the
 * "rr" binary, AES-128-CBC encrypt (key=sessionNonce, IV=zeros), then prepend a 24-byte envelope.
 * Mirrors the device's wire format so decryptAndUnzipV1Map can round-trip it in tests.
 */
export declare function buildEncryptedV1MapPayload(rrBinary: Buffer, sessionNonce: Buffer): Buffer;
//# sourceMappingURL=legacyMapFixture.d.ts.map