import type { Uint8ArrayList } from 'uint8arraylist';
type INITIATOR_NAME = 'NEW_STREAM' | 'MESSAGE' | 'CLOSE' | 'RESET';
type RECEIVER_NAME = 'MESSAGE' | 'CLOSE' | 'RESET';
type NAME = 'NEW_STREAM' | 'MESSAGE_INITIATOR' | 'CLOSE_INITIATOR' | 'RESET_INITIATOR' | 'MESSAGE_RECEIVER' | 'CLOSE_RECEIVER' | 'RESET_RECEIVER';
type CODE = 0 | 1 | 2 | 3 | 4 | 5 | 6;
export declare enum MessageTypes {
    NEW_STREAM = 0,
    MESSAGE_RECEIVER = 1,
    MESSAGE_INITIATOR = 2,
    CLOSE_RECEIVER = 3,
    CLOSE_INITIATOR = 4,
    RESET_RECEIVER = 5,
    RESET_INITIATOR = 6
}
export declare const MessageTypeNames: Record<CODE, NAME>;
export declare const InitiatorMessageTypes: Record<INITIATOR_NAME, CODE>;
export declare const ReceiverMessageTypes: Record<RECEIVER_NAME, CODE>;
export interface NewStreamMessage {
    id: number;
    type: MessageTypes.NEW_STREAM;
    data: Uint8ArrayList;
}
export interface MessageReceiverMessage {
    id: number;
    type: MessageTypes.MESSAGE_RECEIVER;
    data: Uint8ArrayList;
}
export interface MessageInitiatorMessage {
    id: number;
    type: MessageTypes.MESSAGE_INITIATOR;
    data: Uint8ArrayList;
}
export interface CloseReceiverMessage {
    id: number;
    type: MessageTypes.CLOSE_RECEIVER;
}
export interface CloseInitiatorMessage {
    id: number;
    type: MessageTypes.CLOSE_INITIATOR;
}
export interface ResetReceiverMessage {
    id: number;
    type: MessageTypes.RESET_RECEIVER;
}
export interface ResetInitiatorMessage {
    id: number;
    type: MessageTypes.RESET_INITIATOR;
}
export type Message = NewStreamMessage | MessageReceiverMessage | MessageInitiatorMessage | CloseReceiverMessage | CloseInitiatorMessage | ResetReceiverMessage | ResetInitiatorMessage;
export {};
//# sourceMappingURL=message-types.d.ts.map