// Copyright 2021 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

package org.chromium.chrome.browser.xsurface;
import androidx.annotation.Nullable;

// TODO(b/269234249): Decide what to do with this class. Some of these things are feed specific.
/**
 * Implemented in Chromium.
 *
 * The set of parameters necessary for logging.
 */
public interface LoggingParameters {
    // Key for ListContentManager.getContextValues().
    String KEY = "LoggingParameters";

    /** Returns the account name to be used when logging. */
    String accountName();
    /** Returns the client instance ID used for reliability logging. */
    String clientInstanceId();
    /** Returns whether this has the same parameters as `other`. */
    @Deprecated
    default boolean loggingParametersEquals(LoggingParameters other) {
        return false;
    }
    /** Whether attention / interaction logging is enabled. */
    boolean loggingEnabled();
    /** Whether view actions may be recorded. */
    boolean viewActionsEnabled();
    /** The EventID, in raw proto bytes, of the first page response, or null if not present. */
    @Nullable
    default byte[] rootEventId() {
        return null;
    }
}
