import { LivekitReasonedError } from '../../errors';
import { DataTrackPacketizerError, DataTrackPacketizerReason } from '../packetizer';
export declare enum DataTrackPublishErrorReason {
    /**
     * Local participant does not have permission to publish data tracks.
     *
     * Ensure the participant's token contains the `canPublishData` grant.
     */
    NotAllowed = 0,
    /** A track with the same name is already published by the local participant. */
    DuplicateName = 1,
    /** Request to publish the track took long to complete. */
    Timeout = 2,
    /** No additional data tracks can be published by the local participant. */
    LimitReached = 3,
    /** Cannot publish data track when the room is disconnected. */
    Disconnected = 4,
    Cancelled = 5
}
export declare class DataTrackPublishError<Reason extends DataTrackPublishErrorReason> extends LivekitReasonedError<Reason> {
    readonly name = "DataTrackPublishError";
    reason: Reason;
    reasonName: string;
    constructor(message: string, reason: Reason, options?: {
        cause?: unknown;
    });
    static notAllowed(): DataTrackPublishError<DataTrackPublishErrorReason.NotAllowed>;
    static duplicateName(): DataTrackPublishError<DataTrackPublishErrorReason.DuplicateName>;
    static timeout(): DataTrackPublishError<DataTrackPublishErrorReason.Timeout>;
    static limitReached(): DataTrackPublishError<DataTrackPublishErrorReason.LimitReached>;
    static disconnected(): DataTrackPublishError<DataTrackPublishErrorReason.Disconnected>;
    static cancelled(): DataTrackPublishError<DataTrackPublishErrorReason.Cancelled>;
}
export declare enum DataTrackPushFrameErrorReason {
    /** Track is no longer published. */
    TrackUnpublished = 0,
    /** Frame was dropped. */
    Dropped = 1
}
export declare class DataTrackPushFrameError<Reason extends DataTrackPushFrameErrorReason> extends LivekitReasonedError<Reason> {
    readonly name = "DataTrackPushFrameError";
    reason: Reason;
    reasonName: string;
    constructor(message: string, reason: Reason, options?: {
        cause?: unknown;
    });
    static trackUnpublished(): DataTrackPushFrameError<DataTrackPushFrameErrorReason.TrackUnpublished>;
    static dropped(cause: unknown): DataTrackPushFrameError<DataTrackPushFrameErrorReason.Dropped>;
}
export declare enum DataTrackOutgoingPipelineErrorReason {
    Packetizer = 0,
    Encryption = 1
}
export declare class DataTrackOutgoingPipelineError<Reason extends DataTrackOutgoingPipelineErrorReason> extends LivekitReasonedError<Reason> {
    readonly name = "DataTrackOutgoingPipelineError";
    reason: Reason;
    reasonName: string;
    constructor(message: string, reason: Reason, options?: {
        cause?: unknown;
    });
    static packetizer(cause: DataTrackPacketizerError<DataTrackPacketizerReason.MtuTooShort>): DataTrackOutgoingPipelineError<DataTrackOutgoingPipelineErrorReason.Packetizer>;
    static encryption(cause: unknown): DataTrackOutgoingPipelineError<DataTrackOutgoingPipelineErrorReason.Encryption>;
}
//# sourceMappingURL=errors.d.ts.map