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

package io.sentry;

import io.sentry.logger.NoOpLoggerApi;
import io.sentry.logger.ILoggerApi;
import io.sentry.transport.RateLimiter;
import io.sentry.protocol.SentryTransaction;
import org.jetbrains.annotations.ApiStatus;
import java.util.List;
import io.sentry.protocol.User;
import io.sentry.protocol.Feedback;
import io.sentry.protocol.SentryId;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.annotations.NotNull;
import io.sentry.util.LazyEvaluator;

public final class NoOpScopes implements IScopes
{
    private static final NoOpScopes instance;
    @NotNull
    private final LazyEvaluator<SentryOptions> emptyOptions;
    
    private NoOpScopes() {
        this.emptyOptions = new LazyEvaluator<SentryOptions>(() -> SentryOptions.empty());
    }
    
    public static NoOpScopes getInstance() {
        return NoOpScopes.instance;
    }
    
    @Override
    public boolean isEnabled() {
        return false;
    }
    
    @NotNull
    @Override
    public SentryId captureEvent(@NotNull final SentryEvent event, @Nullable final Hint hint) {
        return SentryId.EMPTY_ID;
    }
    
    @NotNull
    @Override
    public SentryId captureEvent(@NotNull final SentryEvent event, @Nullable final Hint hint, @NotNull final ScopeCallback callback) {
        return SentryId.EMPTY_ID;
    }
    
    @NotNull
    @Override
    public SentryId captureMessage(@NotNull final String message, @NotNull final SentryLevel level) {
        return SentryId.EMPTY_ID;
    }
    
    @NotNull
    @Override
    public SentryId captureMessage(@NotNull final String message, @NotNull final SentryLevel level, @NotNull final ScopeCallback callback) {
        return SentryId.EMPTY_ID;
    }
    
    @NotNull
    @Override
    public SentryId captureFeedback(@NotNull final Feedback feedback, @Nullable final Hint hint, @Nullable final ScopeCallback callback) {
        return SentryId.EMPTY_ID;
    }
    
    @NotNull
    @Override
    public SentryId captureEnvelope(@NotNull final SentryEnvelope envelope, @Nullable final Hint hint) {
        return SentryId.EMPTY_ID;
    }
    
    @NotNull
    @Override
    public SentryId captureException(@NotNull final Throwable throwable, @Nullable final Hint hint) {
        return SentryId.EMPTY_ID;
    }
    
    @NotNull
    @Override
    public SentryId captureException(@NotNull final Throwable throwable, @Nullable final Hint hint, @NotNull final ScopeCallback callback) {
        return SentryId.EMPTY_ID;
    }
    
    @Override
    public void captureUserFeedback(@NotNull final UserFeedback userFeedback) {
    }
    
    @Override
    public void startSession() {
    }
    
    @Override
    public void endSession() {
    }
    
    @Override
    public void close() {
    }
    
    @Override
    public void close(final boolean isRestarting) {
    }
    
    @Override
    public void addBreadcrumb(@NotNull final Breadcrumb breadcrumb, @Nullable final Hint hint) {
    }
    
    @Override
    public void addBreadcrumb(@NotNull final Breadcrumb breadcrumb) {
    }
    
    @Override
    public void setLevel(@Nullable final SentryLevel level) {
    }
    
    @Override
    public void setTransaction(@Nullable final String transaction) {
    }
    
    @Override
    public void setUser(@Nullable final User user) {
    }
    
    @Override
    public void setFingerprint(@NotNull final List<String> fingerprint) {
    }
    
    @Override
    public void clearBreadcrumbs() {
    }
    
    @Override
    public void setTag(@Nullable final String key, @Nullable final String value) {
    }
    
    @Override
    public void removeTag(@Nullable final String key) {
    }
    
    @Override
    public void setExtra(@Nullable final String key, @Nullable final String value) {
    }
    
    @Override
    public void removeExtra(@Nullable final String key) {
    }
    
    @NotNull
    @Override
    public SentryId getLastEventId() {
        return SentryId.EMPTY_ID;
    }
    
    @NotNull
    @Override
    public ISentryLifecycleToken pushScope() {
        return NoOpScopesLifecycleToken.getInstance();
    }
    
    @NotNull
    @Override
    public ISentryLifecycleToken pushIsolationScope() {
        return NoOpScopesLifecycleToken.getInstance();
    }
    
    @Deprecated
    @Override
    public void popScope() {
    }
    
    @Override
    public void withScope(@NotNull final ScopeCallback callback) {
        callback.run(NoOpScope.getInstance());
    }
    
    @Override
    public void withIsolationScope(@NotNull final ScopeCallback callback) {
        callback.run(NoOpScope.getInstance());
    }
    
    @Override
    public void configureScope(@Nullable final ScopeType scopeType, @NotNull final ScopeCallback callback) {
    }
    
    @Override
    public void bindClient(@NotNull final ISentryClient client) {
    }
    
    @Override
    public boolean isHealthy() {
        return true;
    }
    
    @Override
    public void flush(final long timeoutMillis) {
    }
    
    @Deprecated
    @NotNull
    @Override
    public IHub clone() {
        return NoOpHub.getInstance();
    }
    
    @NotNull
    @Override
    public IScopes forkedScopes(@NotNull final String creator) {
        return getInstance();
    }
    
    @NotNull
    @Override
    public IScopes forkedCurrentScope(@NotNull final String creator) {
        return getInstance();
    }
    
    @NotNull
    @Override
    public IScopes forkedRootScopes(@NotNull final String creator) {
        return getInstance();
    }
    
    @NotNull
    @Override
    public ISentryLifecycleToken makeCurrent() {
        return NoOpScopesLifecycleToken.getInstance();
    }
    
    @ApiStatus.Internal
    @NotNull
    @Override
    public IScope getScope() {
        return NoOpScope.getInstance();
    }
    
    @ApiStatus.Internal
    @NotNull
    @Override
    public IScope getIsolationScope() {
        return NoOpScope.getInstance();
    }
    
    @ApiStatus.Internal
    @NotNull
    @Override
    public IScope getGlobalScope() {
        return NoOpScope.getInstance();
    }
    
    @Nullable
    @Override
    public IScopes getParentScopes() {
        return null;
    }
    
    @Override
    public boolean isAncestorOf(@Nullable final IScopes otherScopes) {
        return false;
    }
    
    @NotNull
    @Override
    public SentryId captureTransaction(@NotNull final SentryTransaction transaction, @Nullable final TraceContext traceContext, @Nullable final Hint hint, @Nullable final ProfilingTraceData profilingTraceData) {
        return SentryId.EMPTY_ID;
    }
    
    @NotNull
    @Override
    public SentryId captureProfileChunk(@NotNull final ProfileChunk profileChunk) {
        return SentryId.EMPTY_ID;
    }
    
    @NotNull
    @Override
    public ITransaction startTransaction(@NotNull final TransactionContext transactionContext, @NotNull final TransactionOptions transactionOptions) {
        return NoOpTransaction.getInstance();
    }
    
    @Override
    public void startProfiler() {
    }
    
    @Override
    public void stopProfiler() {
    }
    
    @Override
    public void setSpanContext(@NotNull final Throwable throwable, @NotNull final ISpan spanContext, @NotNull final String transactionName) {
    }
    
    @Nullable
    @Override
    public ISpan getSpan() {
        return null;
    }
    
    @Override
    public void setActiveSpan(@Nullable final ISpan span) {
    }
    
    @Nullable
    @Override
    public ITransaction getTransaction() {
        return null;
    }
    
    @NotNull
    @Override
    public SentryOptions getOptions() {
        return this.emptyOptions.getValue();
    }
    
    @Nullable
    @Override
    public Boolean isCrashedLastRun() {
        return null;
    }
    
    @Override
    public void reportFullyDisplayed() {
    }
    
    @Nullable
    @Override
    public TransactionContext continueTrace(@Nullable final String sentryTrace, @Nullable final List<String> baggageHeaders) {
        return null;
    }
    
    @Nullable
    @Override
    public SentryTraceHeader getTraceparent() {
        return null;
    }
    
    @Nullable
    @Override
    public BaggageHeader getBaggage() {
        return null;
    }
    
    @ApiStatus.Experimental
    @NotNull
    @Override
    public SentryId captureCheckIn(@NotNull final CheckIn checkIn) {
        return SentryId.EMPTY_ID;
    }
    
    @Nullable
    @Override
    public RateLimiter getRateLimiter() {
        return null;
    }
    
    @Override
    public boolean isNoOp() {
        return true;
    }
    
    @NotNull
    @Override
    public SentryId captureReplay(@NotNull final SentryReplayEvent replay, @Nullable final Hint hint) {
        return SentryId.EMPTY_ID;
    }
    
    @NotNull
    @Override
    public ILoggerApi logger() {
        return NoOpLoggerApi.getInstance();
    }
    
    @Override
    public void addFeatureFlag(@Nullable final String flag, @Nullable final Boolean result) {
    }
    
    static {
        instance = new NoOpScopes();
    }
}
