import { LivekitReasonedError } from '../../errors';
import type { DataTrackHandleError } from '../handle';
export declare enum DataTrackDeserializeErrorReason {
    TooShort = 0,
    HeaderOverrun = 1,
    MissingExtWords = 2,
    UnsupportedVersion = 3,
    InvalidHandle = 4,
    MalformedExt = 5
}
export declare class DataTrackDeserializeError<Reason extends DataTrackDeserializeErrorReason> extends LivekitReasonedError<DataTrackDeserializeErrorReason> {
    readonly name = "DataTrackDeserializeError";
    reason: Reason;
    reasonName: string;
    cause?: Reason extends DataTrackDeserializeErrorReason.InvalidHandle ? DataTrackHandleError : never;
    constructor(message: string, reason: Reason, options?: {
        cause?: unknown;
    });
    static tooShort(): DataTrackDeserializeError<DataTrackDeserializeErrorReason.TooShort>;
    static headerOverrun(): DataTrackDeserializeError<DataTrackDeserializeErrorReason.HeaderOverrun>;
    static missingExtWords(): DataTrackDeserializeError<DataTrackDeserializeErrorReason.MissingExtWords>;
    static unsupportedVersion(version: number): DataTrackDeserializeError<DataTrackDeserializeErrorReason.UnsupportedVersion>;
    static invalidHandle(cause: DataTrackHandleError): DataTrackDeserializeError<DataTrackDeserializeErrorReason.InvalidHandle>;
    static malformedExt(tag: number): DataTrackDeserializeError<DataTrackDeserializeErrorReason.MalformedExt>;
}
export type DataTrackDeserializeErrorAll = DataTrackDeserializeError<DataTrackDeserializeErrorReason.TooShort> | DataTrackDeserializeError<DataTrackDeserializeErrorReason.HeaderOverrun> | DataTrackDeserializeError<DataTrackDeserializeErrorReason.MissingExtWords> | DataTrackDeserializeError<DataTrackDeserializeErrorReason.UnsupportedVersion> | DataTrackDeserializeError<DataTrackDeserializeErrorReason.InvalidHandle> | DataTrackDeserializeError<DataTrackDeserializeErrorReason.MalformedExt>;
export declare enum DataTrackSerializeErrorReason {
    TooSmallForHeader = 0,
    TooSmallForPayload = 1
}
export declare class DataTrackSerializeError<Reason extends DataTrackSerializeErrorReason> extends LivekitReasonedError<DataTrackSerializeErrorReason> {
    readonly name = "DataTrackSerializeError";
    reason: Reason;
    reasonName: string;
    constructor(message: string, reason: Reason, options?: {
        cause?: unknown;
    });
    static tooSmallForHeader(): DataTrackSerializeError<DataTrackSerializeErrorReason.TooSmallForHeader>;
    static tooSmallForPayload(): DataTrackSerializeError<DataTrackSerializeErrorReason.TooSmallForPayload>;
}
export type DataTrackSerializeErrorAll = DataTrackSerializeError<DataTrackSerializeErrorReason.TooSmallForHeader> | DataTrackSerializeError<DataTrackSerializeErrorReason.TooSmallForPayload>;
//# sourceMappingURL=errors.d.ts.map
