/// <reference types="node" resolution-mode="require"/>
/// <reference types="node" resolution-mode="require"/>
import { z } from 'zod';
import { UnencryptedL2Log } from './unencrypted_l2_log.js';
/**
 * Data container of logs emitted in 1 function invocation (corresponds to 1 kernel iteration).
 */
export declare class UnencryptedFunctionL2Logs {
    /** An array of logs. */
    readonly logs: UnencryptedL2Log[];
    constructor(
    /** An array of logs. */
    logs: UnencryptedL2Log[]);
    /**
     * Serializes all function logs into a buffer.
     * @returns A buffer containing the serialized logs.
     * @remarks Each log is prefixed with 4 bytes for its length, then all the serialized logs are concatenated and
     *          the resulting buffer is prefixed with 4 bytes for its total length.
     */
    toBuffer(): Buffer;
    /**
     * Get the total length of all serialized data
     * @returns Total length of serialized data.
     */
    getSerializedLength(): number;
    /**
     * Get the total length of all chargable data (raw log data + 4 for each log)
     * TODO: Rename this? getChargableLength? getDALength?
     * @returns Total length of data.
     */
    getKernelLength(): number;
    /**
     * Calculates hash of serialized logs.
     * @returns Buffer containing 248 bits of information of sha256 hash.
     */
    hash(): Buffer;
    static get schema(): z.ZodEffects<z.ZodObject<{
        logs: z.ZodArray<z.ZodEffects<z.ZodObject<{
            contractAddress: z.ZodType<import("@aztec/circuits.js").AztecAddress, any, string>;
            data: z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, Buffer, string>, z.ZodEffects<z.ZodObject<{
                type: z.ZodLiteral<"Buffer">;
                data: z.ZodArray<z.ZodNumber, "many">;
            }, "strip", z.ZodTypeAny, {
                type: "Buffer";
                data: number[];
            }, {
                type: "Buffer";
                data: number[];
            }>, Buffer, {
                type: "Buffer";
                data: number[];
            }>]>;
        }, "strip", z.ZodTypeAny, {
            contractAddress: import("@aztec/circuits.js").AztecAddress;
            data: Buffer;
        }, {
            contractAddress: string;
            data: string | {
                type: "Buffer";
                data: number[];
            };
        }>, UnencryptedL2Log, {
            contractAddress: string;
            data: string | {
                type: "Buffer";
                data: number[];
            };
        }>, "many">;
    }, "strip", z.ZodTypeAny, {
        logs: UnencryptedL2Log[];
    }, {
        logs: {
            contractAddress: string;
            data: string | {
                type: "Buffer";
                data: number[];
            };
        }[];
    }>, UnencryptedFunctionL2Logs, {
        logs: {
            contractAddress: string;
            data: string | {
                type: "Buffer";
                data: number[];
            };
        }[];
    }>;
    /**
     * Creates an empty L2Logs object with no logs.
     * @returns A new FunctionL2Logs object with no logs.
     */
    static empty(): UnencryptedFunctionL2Logs;
    /**
     * Deserializes logs from a buffer.
     * @param buf - The buffer containing the serialized logs.
     * @param isLengthPrefixed - Whether the buffer is prefixed with 4 bytes for its total length.
     * @returns Deserialized instance of `FunctionL2Logs`.
     */
    static fromBuffer(buf: Buffer, isLengthPrefixed?: boolean): UnencryptedFunctionL2Logs;
    /**
     * Creates a new L2Logs object with `numLogs` logs.
     * @param numLogs - The number of logs to create.
     * @returns A new UnencryptedFunctionL2Logs object.
     */
    static random(numLogs: number): UnencryptedFunctionL2Logs;
}
//# sourceMappingURL=function_l2_logs.d.ts.map