export declare const MOQ_ALPN_DRAFT16_VERSION = "moqt-16";
export declare const MOQ_CURRENT_VERSION = "moqt-16";
export declare const MOQ_IMPLEMENTATION_NAME = "moq-encoder-player";
export declare const MOQ_USE_LITTLE_ENDIAN = false;
export declare const MOQ_SETUP_PARAMETER_PATH = 1;
export declare const MOQ_SETUP_PARAMETER_MAX_REQUEST_ID = 2;
export declare const MOQ_SETUP_MAX_AUTH_TOKEN_CACHE_SIZE = 4;
export declare const MOQ_SETUP_PARAMETER_MOQT_IMPLEMENTATION = 7;
export declare const MOQ_PARAMETER_DELIVERY_TIMEOUT = 2;
export declare const MOQ_PARAMETER_AUTHORIZATION_TOKEN = 3;
export declare const MOQ_PARAMETER_EXPIRES = 8;
export declare const MOQ_PARAMETER_LARGEST_OBJECT = 9;
export declare const MOQ_PARAMETER_FORWARD = 16;
export declare const MOQ_PARAMETER_SUBSCRIBER_PRIORITY = 32;
export declare const MOQ_PARAMETER_SUBSCRIPTION_FILTER = 33;
export declare const MOQ_PARAMETER_GROUP_ORDER = 34;
export declare const MOQ_PARAMETER_NEW_GROUP_REQUEST = 50;
export declare const MOQ_PARAMETER_MAX_CACHE_DURATION = 4;
export declare const MOQ_MAX_PARAMS = 256;
export declare const MOQ_MAX_ARRAY_LENGTH = 1024;
export declare const MOQ_MAX_TUPLE_PARAMS = 32;
export declare const MOQ_MAX_REQUEST_ID_NUM = 128;
export declare const MOQ_REQUEST_ERROR_INTERNAL = 0;
export declare const MOQ_REQUEST_ERROR_UNAUTHORIZED = 1;
export declare const MOQ_REQUEST_ERROR_NOT_SUPPORTED = 3;
export declare const MOQ_REQUEST_ERROR_DOES_NOT_EXIST = 16;
export declare const MOQ_REQUEST_ERROR_INVALID_RANGE = 17;
export declare const MOQ_SUBSCRIPTION_ERROR_INTERNAL = 0;
export declare const MOQ_FILTER_TYPE_NEXT_GROUP_START = 1;
export declare const MOQ_FILTER_TYPE_LARGEST_OBJECT = 2;
export declare const MOQ_FILTER_TYPE_ABSOLUTE_START = 3;
export declare const MOQ_FILTER_TYPE_ABSOLUTE_RANGE = 4;
export declare const MOQ_MESSAGE_CLIENT_SETUP = 32;
export declare const MOQ_MESSAGE_SERVER_SETUP = 33;
export declare const MOQ_MESSAGE_GOAWAY = 16;
export declare const MOQ_MESSAGE_MAX_REQUEST_ID = 21;
export declare const MOQ_MESSAGE_REQUESTS_BLOCKED = 26;
export declare const MOQ_MESSAGE_REQUEST_OK = 7;
export declare const MOQ_MESSAGE_REQUEST_ERROR = 5;
export declare const MOQ_MESSAGE_REQUEST_UPDATE = 2;
export declare const MOQ_MESSAGE_SUBSCRIBE = 3;
export declare const MOQ_MESSAGE_SUBSCRIBE_OK = 4;
export declare const MOQ_MESSAGE_UNSUBSCRIBE = 10;
export declare const MOQ_MESSAGE_PUBLISH = 29;
export declare const MOQ_MESSAGE_PUBLISH_OK = 30;
export declare const MOQ_MESSAGE_PUBLISH_DONE = 11;
export declare const MOQ_MESSAGE_FETCH = 22;
export declare const MOQ_MESSAGE_FETCH_OK = 24;
export declare const MOQ_MESSAGE_FETCH_CANCEL = 23;
export declare const MOQ_MESSAGE_TRACK_STATUS = 13;
export declare const MOQ_MESSAGE_PUBLISH_NAMESPACE = 6;
export declare const MOQ_MESSAGE_NAMESPACE = 8;
export declare const MOQ_MESSAGE_PUBLISH_NAMESPACE_DONE = 9;
export declare const MOQ_MESSAGE_NAMESPACE_DONE = 14;
export declare const MOQ_MESSAGE_PUBLISH_NAMESPACE_CANCEL = 12;
export declare const MOQ_MESSAGE_SUBSCRIBE_NAMESPACE = 17;
export declare const MOQ_PUBLISHER_PRIORITY_BASE_DEFAULT = 10;
export declare const MOQ_MAPPING_OBJECT_PER_DATAGRAM = "ObjPerDatagram";
export declare const MOQ_MAPPING_SUBGROUP_PER_GROUP = "SubGroupPerObj";
export declare const MOQ_USECASE_SUBSCRIBER_PRIORITY_DEFAULT = 1;
export declare const MOQ_GROUP_ORDER_FOLLOW_PUBLISHER = 0;
export declare const MOQ_GROUP_ORDER_ASCENDING = 1;
export declare const MOQ_GROUP_ORDER_DESCENDING = 2;
export declare const MOQ_FORWARD_FALSE = 0;
export declare const MOQ_FORWARD_TRUE = 1;
export declare const MOQ_OBJ_STATUS_NORMAL = 0;
export declare const MOQ_OBJ_STATUS_END_OF_GROUP = 3;
export declare const MOQ_OBJ_STATUS_END_OF_TRACK_AND_GROUP = 4;
export declare const MOQ_EXT_HEADER_TYPE_MOQMI_MEDIA_TYPE = 10;
export declare const MOQ_EXT_HEADER_TYPE_MOQMI_VIDEO_H264_IN_AVCC_METADATA = 21;
export declare const MOQ_EXT_HEADER_TYPE_MOQMI_VIDEO_H264_IN_AVCC_EXTRADATA = 13;
export declare const MOQ_EXT_HEADER_TYPE_MOQMI_AUDIO_OPUS_METADATA = 15;
export declare const MOQ_EXT_HEADER_TYPE_MOQMI_TEXT_UTF8_METADATA = 17;
export declare const MOQ_EXT_HEADER_TYPE_MOQMI_AUDIO_AACLC_MPEG4_METADATA = 19;
export declare const MOQ_EXT_HEADERS_SUPPORTED: number[];
export declare const MOQ_TOKEN_DELETE = 0;
export declare const MOQ_TOKEN_REGISTER = 1;
export declare const MOQ_TOKEN_USE_ALIAS = 2;
export declare const MOQ_TOKEN_USE_VALUE = 3;
export declare const MOQ_TOKEN_TYPE_NEGOTIATED_OUT_OF_BAND = 0;
export declare const MOQ_STATUS_INTERNAL_ERROR = 0;
export declare const MOQ_STATUS_UNAUTHORIZED = 1;
export declare const MOQ_STATUS_TRACK_ENDED = 2;
export declare const MOQ_STATUS_SUBSCRIPTION_ENDED = 3;
export declare const MOQ_STATUS_GOING_AWAY = 4;
export declare const MOQ_STATUS_EXPIRED = 5;
export declare const MOQ_STATUS_TOO_FAR_BEHIND = 6;
export interface Token {
    aliasType: number;
    tokenType: number;
    value: Uint8Array;
}
export interface Location {
    group: number;
    obj: number;
}
export type KvPairValue = number | string | Uint8Array | ArrayBuffer | Token | Location;
export interface KvPair<T extends KvPairValue = KvPairValue> {
    name: number;
    val: T;
}
export interface RangeEnd {
    group: number;
}
export interface Filter {
    type: number;
    start?: Location;
    end?: RangeEnd;
}
export interface DatagramTypeOptions {
    isStatus: boolean;
    extensionsPresent: boolean;
    isEndOfGroup: boolean;
    isObjIdPresent: boolean;
    isDefaultPriority: boolean;
}
export interface StreamHeaderOptions {
    extensionsPresent: boolean;
    isEndOfGroup: boolean;
    subGroupIdPresent: boolean;
    isSubgroupIdFirstObjectId: boolean;
    isDefaultPriority: boolean;
}
export interface ParsedServerSetup {
    parameters: KvPair[];
}
export interface ParsedSubscribe {
    requestId: number;
    namespace: string[];
    trackName: string;
    parameters: KvPair[];
}
export interface ParsedSubscribeOk {
    requestId: number;
    trackAlias: number;
    last?: Location;
    parameters: KvPair[];
    extensions: KvPair[];
}
export interface ParsedPublish {
    requestId: number;
    namespace: string[];
    trackName: string;
    trackAlias: number;
    parameters: KvPair[];
    extensions: KvPair[];
}
export interface ParsedPublishOk {
    reqId: number;
    parameters: KvPair[];
}
export interface ParsedPublishDone {
    requestId: number;
    statusCode: number;
    streamCount: number;
    errorReason: string;
}
export interface ParsedRequestOk {
    requestId: number;
    parameters: KvPair[];
}
export interface ParsedRequestError {
    requestId: number;
    errorCode: number;
    retryInterval: number;
    errorReason: string;
}
export interface ParsedRequestUpdate {
    requestId: number;
    existingRequestId: number;
    parameters: KvPair[];
}
export interface ParsedUnsubscribe {
    requestId: number;
}
export interface ParsedMaxRequestId {
    maxRequestId: number;
}
export interface ParsedUnknown {
    raw: Uint8Array;
}
export type MoqMessageData = ParsedServerSetup | ParsedSubscribe | ParsedSubscribeOk | ParsedPublish | ParsedPublishOk | ParsedPublishDone | ParsedRequestOk | ParsedRequestError | ParsedRequestUpdate | ParsedUnsubscribe | ParsedMaxRequestId | ParsedUnknown;
export interface MoqMessage {
    type: number;
    data: any;
}
export interface ObjectHeader {
    type: number;
    options: DatagramTypeOptions | StreamHeaderOptions;
    trackAlias: number;
    groupSeq: number;
    publisherPriority: number;
    objSeq?: number;
    extensionHeaders?: KvPair[];
    subGroupSeq?: number;
}
export interface SubgroupObject {
    objSeq: number;
    payloadLength: number;
    extensionHeaders: KvPair[];
    status?: number;
}
export interface MoqtState {
    wt: any;
    controlStream: WebTransportBidirectionalStream | null;
    controlWriter: WritableStream<Uint8Array> | null;
    controlReader: ReadableStream<Uint8Array> | null;
    multiObjectWritter: Record<string, WritableStreamDefaultWriter<Uint8Array>>;
    datagramsReader: ReadableStreamDefaultReader<Uint8Array> | null;
}
export declare function moqCreate(): MoqtState;
export declare function moqCloseWrttingStreams(moqt: MoqtState): Promise<void>;
export declare function moqClose(moqt: MoqtState): Promise<void>;
export declare function moqCreateControlStream(moqt: MoqtState): Promise<void>;
export declare function moqSendClientSetup(writerStream: WritableStream<Uint8Array>): Promise<void>;
export declare function moqSendPublish(writerStream: WritableStream<Uint8Array>, reqId: number, namespace: string[], name: string, trackAlias: number, authInfo: string | number | undefined, forward?: number): Promise<void>;
export declare function moqSendPublishNamespace(writerStream: WritableStream<Uint8Array>, reqId: number, namespace: string[], authInfo: string | number | undefined): Promise<void>;
export declare function moqSendPublishDone(writerStream: WritableStream<Uint8Array>, requestId: number, statusCode: number, streamCount: number, reason: string): Promise<void>;
export declare function moqSendSubscribe(writerStream: WritableStream<Uint8Array>, requestId: number, trackNamespace: string[], trackName: string, authInfo: string | number | undefined): Promise<void>;
export declare function moqSendSubscribeOk(writerStream: WritableStream<Uint8Array>, requestId: number, trackAlias: number, lastGroupSent?: number, lastObjSent?: number): Promise<void>;
export declare function moqSendRequestOk(writerStream: WritableStream<Uint8Array>, requestId: number): Promise<void>;
export declare function moqSendRequestError(writerStream: WritableStream<Uint8Array>, requestId: number, errorCode: number, reason: string): Promise<void>;
export declare function moqSendUnSubscribe(writerStream: WritableStream<Uint8Array>, requestId: number): Promise<void>;
export declare function moqParseMsg(readerStream: ReadableStream<Uint8Array>): Promise<MoqMessage>;
export declare function moqSendSubgroupHeader(writer: WritableStreamDefaultWriter<Uint8Array>, trackAlias: number, groupSeq: number, publisherPriority: number): Promise<void>;
export declare function moqSendObjectSubgroupToWriter(writer: WritableStreamDefaultWriter<Uint8Array>, objSeqDelta: number, data: BufferSource | undefined, extensionHeaders: KvPair[]): Promise<void>;
export declare function moqSendObjectEndOfGroupToWriter(writer: WritableStreamDefaultWriter<Uint8Array>, objSeqDelta: number, extensionHeaders: KvPair[], closeStream?: boolean): Promise<void>;
export declare function moqSendObjectPerDatagramToWriter(writer: WritableStreamDefaultWriter<Uint8Array>, trackAlias: number, groupSeq: number, objSeq: number, publisherPriority: number, data: BufferSource | undefined, extensionHeaders: KvPair[], isEndOfGroup: boolean): Promise<void>;
export declare function moqParseObjectHeader(readerStream: ReadableStream<Uint8Array>): Promise<ObjectHeader>;
export declare function moqParseObjectFromSubgroupHeader(readerStream: ReadableStream<Uint8Array>, type: number): Promise<SubgroupObject>;
export declare function getTrackFullName(namespace: string, trackName: string): string;
export declare function moqCreateKvPair(name: number, val: KvPairValue): KvPair;
export declare function getFullTrackName(ns: string[], name: string): string;
export declare function getAuthInfofromParameters(parameters: KvPair[]): string | undefined;
export declare function isMoqObjectDatagramType(type: number): boolean;
export declare function moqDecodeDatagramType(type: number): DatagramTypeOptions;
export declare function isMoqObjectStreamHeaderType(type: number): boolean;
export declare function moqDecodeStreamHeaderType(type: number): StreamHeaderOptions;
//# sourceMappingURL=moqt.d.ts.map