import type { InvertRecord, UTF8StringPair } from "./types.ts"; export declare const PropertySetType: { readonly reserved: 0; readonly connect: 1; readonly connack: 2; readonly publish: 3; readonly puback: 4; readonly pubrec: 5; readonly pubrel: 6; readonly pubcomp: 7; readonly subscribe: 8; readonly suback: 9; readonly unsubscribe: 10; readonly unsuback: 11; readonly pingreq: 12; readonly pingres: 13; readonly disconnect: 14; readonly auth: 15; readonly will: 100; }; export type PropertySetType = typeof PropertySetType[keyof typeof PropertySetType]; export declare const propertyKind: { readonly boolean: 0; readonly byte: 1; readonly int16: 2; readonly int32: 3; readonly varInt: 4; readonly byteArray: 5; readonly utf8string: 6; readonly utf8StringPairs: 7; readonly varIntArray: 8; }; export declare const propertyToId: { readonly payloadFormatIndicator: 1; readonly messageExpiryInterval: 2; readonly contentType: 3; readonly responseTopic: 8; readonly correlationData: 9; readonly subscriptionIdentifier: 11; readonly subscriptionIdentifiers: 255; readonly sessionExpiryInterval: 17; readonly assignedClientIdentifier: 18; readonly serverKeepAlive: 19; readonly authenticationMethod: 21; readonly authenticationData: 22; readonly requestProblemInformation: 23; readonly willDelayInterval: 24; readonly requestResponseInformation: 25; readonly responseInformation: 26; readonly serverReference: 28; readonly reasonString: 31; readonly receiveMaximum: 33; readonly topicAliasMaximum: 34; readonly topicAlias: 35; readonly maximumQos: 36; readonly retainAvailable: 37; readonly userProperty: 38; readonly maximumPacketSize: 39; readonly wildcardSubscriptionAvailable: 40; readonly subscriptionIdentifierAvailable: 41; readonly sharedSubscriptionAvailable: 42; }; type PropertyNames = keyof typeof propertyToId; export declare const propertyToKind: { readonly 1: 0; readonly 2: 3; readonly 3: 6; readonly 8: 6; readonly 9: 5; readonly 11: 4; readonly 255: 8; readonly 17: 3; readonly 18: 6; readonly 19: 2; readonly 21: 6; readonly 22: 5; readonly 23: 0; readonly 24: 3; readonly 25: 0; readonly 26: 6; readonly 28: 6; readonly 31: 6; readonly 33: 2; readonly 34: 2; readonly 35: 2; readonly 36: 1; readonly 37: 0; readonly 38: 7; readonly 39: 3; readonly 40: 0; readonly 41: 0; readonly 42: 0; }; export type UserPropertyType = Array; export type SubscriptionIdentifiersType = Array; type PropertyKindMap = { [propertyKind.boolean]: boolean; [propertyKind.byte]: number; [propertyKind.int16]: number; [propertyKind.int32]: number; [propertyKind.varInt]: number; [propertyKind.byteArray]: Uint8Array; [propertyKind.utf8string]: string; [propertyKind.utf8StringPairs]: UserPropertyType; [propertyKind.varIntArray]: SubscriptionIdentifiersType; }; type Mqttv5PropertyType = K extends keyof PropertyKindMap ? PropertyKindMap[K] : never; export type Mqttv5PropertyTypes = PropertyKindMap[keyof PropertyKindMap]; export type Mqttv5PropertyTypesNoUser = Exclude; export type ValidPropertyNumber = (typeof propertyToId)[keyof typeof propertyToId]; type AllMqttv5Properties = { [K in PropertyNames]?: Mqttv5PropertyType | undefined; }; type PropertyByNumberType = InvertRecord; export declare const propertyByNumber: PropertyByNumberType; export declare const PropertyByPropertySetType: { readonly 0: readonly []; readonly 1: readonly [17, 21, 22, 23, 25, 33, 34, 38, 39]; readonly 2: readonly [17, 18, 19, 21, 22, 26, 28, 31, 33, 34, 36, 37, 38, 39, 40, 41, 42]; readonly 3: readonly [1, 2, 3, 8, 9, 255, 35, 38]; readonly 8: readonly [11, 38]; readonly 10: readonly [38]; readonly 14: readonly [17, 28, 31, 38]; readonly 15: readonly [21, 22, 31, 38]; readonly 4: readonly [31, 38]; readonly 5: readonly [31, 38]; readonly 6: readonly [31, 38]; readonly 7: readonly [31, 38]; readonly 9: readonly [31, 38]; readonly 11: readonly [31, 38]; readonly 12: readonly []; readonly 13: readonly []; readonly 100: readonly [1, 2, 3, 8, 9, 24, 38]; }; type PropertyIdsToKeys = { [K in T[number]]: (typeof propertyByNumber)[K]; }[T[number]]; type GeneratePacketTypeProperties = Pick>; export type PropsByPacketSetType = { [K in PropertySetType]: GeneratePacketTypeProperties; }; export type ConnectProperties = PropsByPacketSetType[typeof PropertySetType.connect]; export type ConnackProperties = PropsByPacketSetType[typeof PropertySetType.connack]; export type PublishProperties = PropsByPacketSetType[typeof PropertySetType.publish]; export type PubackProperties = PropsByPacketSetType[typeof PropertySetType.puback]; export type PubrecProperties = PropsByPacketSetType[typeof PropertySetType.pubrec]; export type PubrelProperties = PropsByPacketSetType[typeof PropertySetType.pubrel]; export type PubcompProperties = PropsByPacketSetType[typeof PropertySetType.pubcomp]; export type SubscribeProperties = PropsByPacketSetType[typeof PropertySetType.subscribe]; export type SubackProperties = PropsByPacketSetType[typeof PropertySetType.suback]; export type UnsubscribeProperties = PropsByPacketSetType[typeof PropertySetType.unsubscribe]; export type UnsubackProperties = PropsByPacketSetType[typeof PropertySetType.unsuback]; export type DisconnectProperties = PropsByPacketSetType[typeof PropertySetType.disconnect]; export type AuthProperties = PropsByPacketSetType[typeof PropertySetType.auth]; export type WillProperties = PropsByPacketSetType[typeof PropertySetType.will]; export {}; //# sourceMappingURL=Properties.d.ts.map