///
import { Resolvable } from './mqtt.types';
import { ConnectResponsePacket, PingResponsePacket, PublishAckPacket, PublishCompletePacket, PublishReceivedPacket, PublishReleasePacket, PublishRequestPacket, SubscribeResponsePacket, UnsubscribeResponsePacket } from './packets';
import { PacketType } from './mqtt.constants';
export declare function matchTopic(baseTopic: string, incomingTopic: string): boolean;
export declare function expectRemainingLength(length: number, expected?: number): void;
export declare function removeUntil(input: string, char: string): string;
export declare function extractParams(template: string, topic: string): Record;
export interface Resolvers {
resolve: (value: T) => void;
reject: (error: Error) => void;
}
export declare const nullOrUndefined: (input: unknown) => boolean;
export declare const isConnAck: (target: unknown) => target is ConnectResponsePacket;
export declare const isPublish: (target: unknown) => target is PublishRequestPacket;
export declare const isPubAck: (target: unknown) => target is PublishAckPacket;
export declare const isPubRec: (target: unknown) => target is PublishReceivedPacket;
export declare const isPubRel: (target: unknown) => target is PublishReleasePacket;
export declare const isPubComp: (target: unknown) => target is PublishCompletePacket;
export declare const isSubAck: (target: unknown) => target is SubscribeResponsePacket;
export declare const isUnsubAck: (target: unknown) => target is UnsubscribeResponsePacket;
export declare const isPingResp: (target: unknown) => target is PingResponsePacket;
export declare function resolve>(resolvable: Resolvable): Promise;
export declare function notUndefined(value: T | undefined): value is T;
export declare function toBuffer(value: Buffer | string): Buffer;
export declare function toMqttTopicFilter(paramString: string): [string, string?];
export declare function createDefaultPacketLogger(debug: (data: string) => void): (packetType: PacketType, packetInfo: Record) => void;
export declare function stringifyObject(obj: Record): string;
export declare function createFlowCounter(): {
next(): number;
} | {
next(): bigint;
};