import { type Throws } from '../../../utils/throws';
import { type EncryptionProvider } from '../e2ee';
import { type DataTrackFrame } from '../frame';
import { DataTrackPacket } from '../packet';
import type { DataTrackInfo } from '../track';
import { DataTrackOutgoingPipelineError, DataTrackOutgoingPipelineErrorReason } from './errors';
type Options = {
    info: DataTrackInfo;
    encryptionProvider: EncryptionProvider | null;
};
/** Processes outgoing frames into final packets for distribution to the SFU. */
export default class DataTrackOutgoingPipeline {
    private encryptionProvider;
    private packetizer;
    /** Maximum transmission unit (MTU) of the transport. */
    private static TRANSPORT_MTU_BYTES;
    constructor(options: Options);
    processFrame(frame: DataTrackFrame): Throws<Generator<DataTrackPacket>, DataTrackOutgoingPipelineError<DataTrackOutgoingPipelineErrorReason.Packetizer> | DataTrackOutgoingPipelineError<DataTrackOutgoingPipelineErrorReason.Encryption>>;
    encryptIfNeeded(frame: DataTrackFrame): Throws<DataTrackFrame, DataTrackOutgoingPipelineError<DataTrackOutgoingPipelineErrorReason.Encryption>>;
}
export {};
//# sourceMappingURL=pipeline.d.ts.map