import { mqtt } from 'aws-iot-device-sdk-v2';
import { IoTMessage } from './models/iot-message';
export declare enum ConnectionState {
    Disconnected = 0,
    Connecting = 1,
    Connected = 2,
    Error = 3,
    Interrupted = 4,
    Closed = 5
}
export type MessageHandler = (topic: string, message: IoTMessage, dup: boolean, qos: mqtt.QoS, retain: boolean) => Promise<void>;
export type Subscriber = (onMessage: MessageHandler, subsciptionTopic: string, subscriptionQos?: mqtt.QoS) => Promise<void>;
export type Publisher = (topic: string, message: IoTMessage, qos?: mqtt.QoS, retain?: boolean) => Promise<void>;
export interface IoTHandler {
    onConnected?: (resumed: boolean) => void;
    onError?: <TError = unknown>(data: {
        error: TError;
    }) => void;
    onConnectionFailure?: <TError = unknown>(data: {
        error: TError;
    }) => void;
    onConnectionSuccess?: (data: {
        session_present: boolean;
    }) => void;
    onMessage: (topic: string, payload: ArrayBuffer, dup: boolean, qos: mqtt.QoS, retain: boolean) => void;
}
//# sourceMappingURL=iot.handler.d.ts.map