// 
// Decompiled by Procyon v0.6.0
// 

package io.sentry;

import io.sentry.featureflags.IFeatureFlagBuffer;
import io.sentry.protocol.FeatureFlags;
import io.sentry.internal.eventprocessor.EventProcessorAndOrder;
import java.util.Collection;
import io.sentry.protocol.Contexts;
import java.util.Map;
import java.util.Queue;
import java.util.List;
import io.sentry.protocol.Request;
import io.sentry.protocol.SentryId;
import io.sentry.protocol.User;
import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;

public interface IScope
{
    @Nullable
    SentryLevel getLevel();
    
    void setLevel(@Nullable final SentryLevel p0);
    
    @Nullable
    String getTransactionName();
    
    void setTransaction(@NotNull final String p0);
    
    @Nullable
    ISpan getSpan();
    
    @ApiStatus.Internal
    void setActiveSpan(@Nullable final ISpan p0);
    
    void setTransaction(@Nullable final ITransaction p0);
    
    @Nullable
    User getUser();
    
    void setUser(@Nullable final User p0);
    
    @ApiStatus.Internal
    @Nullable
    String getScreen();
    
    @ApiStatus.Internal
    void setScreen(@Nullable final String p0);
    
    @ApiStatus.Internal
    @NotNull
    SentryId getReplayId();
    
    @ApiStatus.Internal
    void setReplayId(@NotNull final SentryId p0);
    
    @Nullable
    Request getRequest();
    
    void setRequest(@Nullable final Request p0);
    
    @ApiStatus.Internal
    @NotNull
    List<String> getFingerprint();
    
    void setFingerprint(@NotNull final List<String> p0);
    
    @ApiStatus.Internal
    @NotNull
    Queue<Breadcrumb> getBreadcrumbs();
    
    void addBreadcrumb(@NotNull final Breadcrumb p0, @Nullable final Hint p1);
    
    void addBreadcrumb(@NotNull final Breadcrumb p0);
    
    void clearBreadcrumbs();
    
    void clearTransaction();
    
    @Nullable
    ITransaction getTransaction();
    
    void clear();
    
    @ApiStatus.Internal
    @NotNull
    Map<String, String> getTags();
    
    void setTag(@Nullable final String p0, @Nullable final String p1);
    
    void removeTag(@Nullable final String p0);
    
    @ApiStatus.Internal
    @NotNull
    Map<String, Object> getExtras();
    
    void setExtra(@Nullable final String p0, @Nullable final String p1);
    
    void removeExtra(@Nullable final String p0);
    
    @NotNull
    Contexts getContexts();
    
    void setContexts(@Nullable final String p0, @Nullable final Object p1);
    
    void setContexts(@Nullable final String p0, @Nullable final Boolean p1);
    
    void setContexts(@Nullable final String p0, @Nullable final String p1);
    
    void setContexts(@Nullable final String p0, @Nullable final Number p1);
    
    void setContexts(@Nullable final String p0, @Nullable final Collection<?> p1);
    
    void setContexts(@Nullable final String p0, @Nullable final Object[] p1);
    
    void setContexts(@Nullable final String p0, @Nullable final Character p1);
    
    void removeContexts(@Nullable final String p0);
    
    @NotNull
    List<Attachment> getAttachments();
    
    void addAttachment(@NotNull final Attachment p0);
    
    void clearAttachments();
    
    @ApiStatus.Internal
    @NotNull
    List<EventProcessor> getEventProcessors();
    
    @ApiStatus.Internal
    @NotNull
    List<EventProcessorAndOrder> getEventProcessorsWithOrder();
    
    void addEventProcessor(@NotNull final EventProcessor p0);
    
    @Nullable
    Session withSession(@NotNull final Scope.IWithSession p0);
    
    @Nullable
    Scope.SessionPair startSession();
    
    @Nullable
    Session endSession();
    
    @ApiStatus.Internal
    void withTransaction(@NotNull final Scope.IWithTransaction p0);
    
    @NotNull
    SentryOptions getOptions();
    
    @ApiStatus.Internal
    @Nullable
    Session getSession();
    
    @ApiStatus.Internal
    void clearSession();
    
    @ApiStatus.Internal
    void setPropagationContext(@NotNull final PropagationContext p0);
    
    @ApiStatus.Internal
    @NotNull
    PropagationContext getPropagationContext();
    
    @ApiStatus.Internal
    @NotNull
    PropagationContext withPropagationContext(@NotNull final Scope.IWithPropagationContext p0);
    
    @NotNull
    IScope clone();
    
    void setLastEventId(@NotNull final SentryId p0);
    
    @NotNull
    SentryId getLastEventId();
    
    void bindClient(@NotNull final ISentryClient p0);
    
    @NotNull
    ISentryClient getClient();
    
    @ApiStatus.Internal
    void assignTraceContext(@NotNull final SentryEvent p0);
    
    @ApiStatus.Internal
    void setSpanContext(@NotNull final Throwable p0, @NotNull final ISpan p1, @NotNull final String p2);
    
    @ApiStatus.Internal
    void replaceOptions(@NotNull final SentryOptions p0);
    
    void addFeatureFlag(@Nullable final String p0, @Nullable final Boolean p1);
    
    @ApiStatus.Internal
    @Nullable
    FeatureFlags getFeatureFlags();
    
    @ApiStatus.Internal
    @NotNull
    IFeatureFlagBuffer getFeatureFlagBuffer();
}
