import { ConversationQueueType, MqttSensorQueue, QueueCallback, QueueHeader } from "@leftshiftone/gaia-sdk/dist";
import { IBehaviour, IRenderer } from "../api";
import { IEventPayload } from "../api/IEvent";
export declare class Subscription {
    type: ConversationQueueType;
    header: QueueHeader;
    callback: QueueCallback;
    mqttSensorQueue: MqttSensorQueue;
    renderer: IRenderer;
    private readonly behaviourBind;
    constructor(type: ConversationQueueType, header: QueueHeader, callback: QueueCallback, mqttSensorQueue: MqttSensorQueue, renderer: IRenderer);
    /**
     * Unsubscribes from the queue
     */
    unsubscribe(): void;
    /**
     * Sends the given message
     *
     * @param payload the payload
     */
    publish: (payload: IEventPayload) => void;
    /**
     * Initial request to make the system aware that the user is listening.
     */
    reception(attributes: object): void;
    onMessage(message: object): void;
    /**
     * Binds the given IBehaviour to the Subscription.
     *
     * @param behaviour
     */
    bind(behaviour: IBehaviour): void;
    private getTopic;
}
