///
import Event from "rx.mini";
import { RtcpPacket, RtpHeader, RtpPacket } from "../../../rtp/src";
import { EventTarget } from "../helper";
import { Kind } from "../types/domain";
import { RTCRtpCodecParameters } from "./parameters";
export declare class MediaStreamTrack extends EventTarget {
readonly uuid: string;
/**MediaStream ID*/
streamId?: string;
remote: boolean;
label: string;
kind: Kind;
id?: string;
/**mediaSsrc */
ssrc?: number;
rid?: string;
header?: RtpHeader;
codec?: RTCRtpCodecParameters;
/**todo impl */
enabled: boolean;
readonly onReceiveRtp: Event<[RtpPacket]>;
readonly onReceiveRtcp: Event<[RtcpPacket]>;
readonly onSourceChanged: Event<[Pick]>;
stopped: boolean;
muted: boolean;
constructor(props: Partial & Pick);
stop: () => void;
writeRtp: (rtp: RtpPacket | Buffer) => void;
}
export declare class MediaStream {
id: string;
tracks: MediaStreamTrack[];
constructor(props: Partial & Pick);
addTrack(track: MediaStreamTrack): void;
getTracks(): MediaStreamTrack[];
}