import { ConversationQueueType, MqttSensorQueue, QueueCallback, QueueHeader } from "@leftshiftone/gaia-sdk/dist";
import { IBehaviour } from "../api";
import { IEventPayload } from "../api/IEvent";
export declare class Subscription {
    type: ConversationQueueType;
    header: QueueHeader;
    callback: QueueCallback;
    mqttSensorQueue: MqttSensorQueue;
    behaviourBind: Array<IBehaviour>;
    constructor(type: ConversationQueueType, header: QueueHeader, callback: QueueCallback, mqttSensorQueue: MqttSensorQueue);
    /**
     * Unsubscribes from the queue
     */
    unsubscribe(): void;
    /**
     * Sends the given message
     *
     * @param payload the payload
     */
    publish: (payload: IEventPayload) => void;
    /**
     * Binds the given IBehaviour to the Subscription.
     *
     * @param behaviour
     */
    bind(behaviour: IBehaviour): void;
    onMessage(message: object): void;
    getTopic: () => string;
}
