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

package io.sentry;

import io.sentry.protocol.Contexts;
import java.util.List;
import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.annotations.NotNull;

public interface ISpan
{
    @NotNull
    ISpan startChild(@NotNull final String p0);
    
    @ApiStatus.Internal
    @NotNull
    ISpan startChild(@NotNull final String p0, @Nullable final String p1, @NotNull final SpanOptions p2);
    
    @ApiStatus.Internal
    @NotNull
    ISpan startChild(@NotNull final SpanContext p0, @NotNull final SpanOptions p1);
    
    @ApiStatus.Internal
    @NotNull
    ISpan startChild(@NotNull final String p0, @Nullable final String p1, @Nullable final SentryDate p2, @NotNull final Instrumenter p3);
    
    @ApiStatus.Internal
    @NotNull
    ISpan startChild(@NotNull final String p0, @Nullable final String p1, @Nullable final SentryDate p2, @NotNull final Instrumenter p3, @NotNull final SpanOptions p4);
    
    @NotNull
    ISpan startChild(@NotNull final String p0, @Nullable final String p1);
    
    @NotNull
    SentryTraceHeader toSentryTrace();
    
    @Nullable
    @ApiStatus.Experimental
    TraceContext traceContext();
    
    @Nullable
    @ApiStatus.Experimental
    BaggageHeader toBaggageHeader(@Nullable final List<String> p0);
    
    void finish();
    
    void finish(@Nullable final SpanStatus p0);
    
    void finish(@Nullable final SpanStatus p0, @Nullable final SentryDate p1);
    
    void setOperation(@NotNull final String p0);
    
    @NotNull
    String getOperation();
    
    void setDescription(@Nullable final String p0);
    
    @Nullable
    String getDescription();
    
    void setStatus(@Nullable final SpanStatus p0);
    
    @Nullable
    SpanStatus getStatus();
    
    void setThrowable(@Nullable final Throwable p0);
    
    @Nullable
    Throwable getThrowable();
    
    @NotNull
    SpanContext getSpanContext();
    
    void setTag(@Nullable final String p0, @Nullable final String p1);
    
    @Nullable
    String getTag(@Nullable final String p0);
    
    boolean isFinished();
    
    void setData(@Nullable final String p0, @Nullable final Object p1);
    
    @Nullable
    Object getData(@Nullable final String p0);
    
    void setMeasurement(@NotNull final String p0, @NotNull final Number p1);
    
    void setMeasurement(@NotNull final String p0, @NotNull final Number p1, @NotNull final MeasurementUnit p2);
    
    @ApiStatus.Internal
    boolean updateEndDate(@NotNull final SentryDate p0);
    
    @ApiStatus.Internal
    @NotNull
    SentryDate getStartDate();
    
    @ApiStatus.Internal
    @Nullable
    SentryDate getFinishDate();
    
    @ApiStatus.Internal
    boolean isNoOp();
    
    void setContext(@Nullable final String p0, @Nullable final Object p1);
    
    @NotNull
    Contexts getContexts();
    
    @Nullable
    Boolean isSampled();
    
    @Nullable
    TracesSamplingDecision getSamplingDecision();
    
    @ApiStatus.Internal
    @NotNull
    ISentryLifecycleToken makeCurrent();
    
    void addFeatureFlag(@Nullable final String p0, @Nullable final Boolean p1);
}
